ゲームプログラミング相談室
■ このスレッドは過去ログ倉庫に格納されています
0001プチ9627m
01/11/06 18:47ID:G6Fk/ND/駄スレ立てる前にココで聞きましょう。
■旧スレ(プログラミング技術板より)
○パート1
http://piza.2ch.net/tech/kako/969/969984472.html
○パート2
http://pc.2ch.net/test/read.cgi/tech/985540361
○パート3
http://pc.2ch.net/test/read.cgi/tech/1002894129/
0574名前は開発中のものです。
02/09/23 15:29ID:???571
<#`Д´>パ、パカニスルナ
0575名前は開発中のものです。
02/09/23 16:30ID:???厨に変なツッコミいれられるから
0576名前は開発中のものです。
02/09/23 16:52ID:???575=厨
0577名前は開発中のものです。
02/09/23 16:58ID:???とりあえず誰か>>571の解説を頼む。
正直、俺には読解不能。
0578名前は開発中のものです。
02/09/24 23:47ID:???やねうライブラリでは、2D しか対応してないって事では?
0579名前は開発中のものです。
02/09/25 00:30ID:???0580578
02/09/25 02:18ID:???今時の PC でゲーム作るって言ったら、
3D に対応してるライブラリのほうが、作るのが簡単で良いんじゃない?
無理に 2D に落として仕様を考えるよりも、素直にアイデアを出せるし、
三世代くらい前のカードでも、充分速かったと思うよ。
0581名前は開発中のものです。
02/09/25 02:31ID:???ん?
3Dの世界を構築するエンジンじゃなくて、
3Dハードを使うって事か?
0582名前は開発中のものです。
02/09/25 08:22ID:???0583名前は開発中のものです。
02/09/25 08:52ID:???0584名前は開発中のものです。
02/09/25 17:49ID:???権威を失うから駄目なんだよ。←2Dなら深い質問も大丈夫です、かかってきなさい
という意味と思われ
0585名前は開発中のものです。
02/09/25 20:08ID:???また可能ならどういった方法がありますか?
テキストとバイナリを交互に書き込んでみたのですがテキストが化けました
Delphi、Windowsです
0586名前は開発中のものです。
02/09/25 20:14ID:???テキストをバイナリとして扱えばいいんでねーの?
0587名前は開発中のものです。
02/09/25 20:39ID:???なるほど、その手がありましたか!!
ありがとうございました
0588名前は開発中のものです。
02/09/25 21:07ID:???0589名前は開発中のものです。
02/09/25 21:23ID:???>>585を再度質問させていただきます
よろしこ
0590名前は開発中のものです。
02/09/25 21:37ID:???漢文を訳すより難解なり
0591名前は開発中のものです。
02/09/25 21:40ID:???ヘッダだけテキストにしてそれ以降をバイナリ
もしくは全部テキストにしたければバイナリをbase64にでも変換すれば?
0592名前は開発中のものです。
02/09/25 21:54ID:???>ヘッダだけテキストにしてそれ以降をバイナリ
Delphiでどうすればできるのか教えて欲しいです
Cではできますた
0593名前は開発中のものです。
02/09/25 22:14ID:???同じようにしる!!
その手の作業に関しては、
DelphiでできてCでできないのはわかる(VCL使っているとか)が、
CでできてDelphiでできないというのはよくわからない。
0594名前は開発中のものです。
02/09/25 22:16ID:???こたえられるかもしれんよ。
0595名前は開発中のものです。
02/09/25 23:00ID:???テキストバイナリ混成データ送ろうとして
四苦八苦した思い出があるなぁ
けど、もうどうやったのか忘れた(藁
0596名前は開発中のものです。
02/09/25 23:38ID:???0597名前は開発中のものです。
02/09/25 23:41ID:???Personalでやったから苦労したんだよ!
ちなみにパケット越しじゃなくて
パケットに詰めて、だな
0598名前は開発中のものです。
02/09/25 23:57ID:???シリアライズとデシリアライズのコードを対になるように書けばそれで
終わりっしょ?DelphiもCも関係ないと思うんだが・・・
0599名前は開発中のものです。
02/09/26 01:34ID:???アホですか?
そのシリアライズがうまくいかないって話なんだけど?
てか思い出したけど
サーバC++/クライアントDelphiでやってて
コネクションまで確認できたのに結局データのやりとりはうまくいかなくて
クライアントもC++で組み直したんだった
もちろんDirectPlay使ってたとかいうオチじゃなくてWinSockでやってた
0600名前は開発中のものです。
02/09/26 01:36ID:???非PersonalだとコンパイラやIDEが勝手にプログラマの無知を補間してくれるんですか?
0601名前は開発中のものです。
02/09/26 06:31ID:???ゲームアプリ開発に及ぼすってことなのかね。
あまり考えられないよな。
・・・・DB関連のことなのか。
0602名前は開発中のものです。
02/09/26 06:32ID:???○ 影響を及ぼす
0603名前は開発中のものです。
02/09/26 06:57ID:???0604名前は開発中のものです。
02/09/26 12:44ID:???0605名前は開発中のものです。
02/09/26 15:00ID:???0606名前は開発中のものです。
02/09/26 15:20ID:???0607名前は開発中のものです。
02/09/26 22:13ID:???> そのシリアライズがうまくいかないって話なんだけど?
自分がアホであることを晒してどうするよ?
0608名前は開発中のものです。
02/09/26 22:33ID:???ソケットもファイルも書き込んだ/送出したデータをありのままの姿で返すだけだし、
をれが言語によって変わることも*ありえない*と言うことが理解できてないようだから。
化けたとしたらそれは書き込んだデータと書き込んだつもりのデータが違うだけ
0609名前は開発中のものです。
02/09/26 22:40ID:???素人は何でも一度にやりたがるからダメだ
0610名前は開発中のものです。
02/09/27 08:45ID:???0611名前は開発中のものです。
02/09/27 11:30ID:u5LECmtB敵キャラの抽象クラスを作って、キャラごとに派生クラスをつくりました。
そこで、出てくる敵キャラすべてを格納しておくキューを作りたいのですが、
Javaみたいな、すべてのクラスを格納できるキューが作れなくて困っています。
何か案はありませんか?
0612名前は開発中のものです。
02/09/27 12:38ID:???その抽象クラスのポインタを、コンテナに入れれば?
0613
02/09/27 15:01ID:uiQG1iKW0614名前は開発中のものです。
02/09/27 15:39ID:???… C++ の基本から勉強し直した方が良いような。
struct Base {
virtual ~Base() {}
...
};
class Deriv : public Base {...};
using boost::shared_ptr;
using std::queue;
queue<shared_ptr<Base> > q;
q.push(shared_ptr<Base>(new Deriv);
0615名前は開発中のものです。
02/09/27 18:07ID:???Internet Direct。
主要なインターネットプロトコルに対応したオープンソース形式のライブラリ。
BSDライセンスとMPLのデュアルライセンスで都合のよい方を選ぶことができる。
Delphi, C++Builder, Kylix用。
http://www.nevrona.com/Indy/
# なぜか今つながらない。
0616名前は開発中のものです。
02/09/27 21:17ID:???C++をあまり知らないヤシに説明するのに
当然のごとくboostを使ってるお前がウザイと思うのは俺だけか
0617名前は開発中のものです。
02/09/27 22:33ID:???きみだけ。
0618名前は開発中のものです。
02/09/28 03:01ID:???boost なんて、もう標準も同然じゃん。
0619名前は開発中のものです。
02/09/28 03:02ID:???ていうか、boost 無しでは生きていけません。
0620名前は開発中のものです。
02/09/28 03:07ID:???入門書ではまずboostを扱わないし、
ウチの会社も導入を許可してくれない。
初心者に説明するときは、極力非標準は排除して話すべきだと思うんだが。
0621名前は開発中のものです。
02/09/28 03:13ID:???0622名前は開発中のものです。
02/09/28 04:27ID:???かと言って、生ポインタでもかわいそうな気が……
0623622
02/09/28 04:29ID:???0624名前は開発中のものです。
02/09/28 04:31ID:???頭に何か沸いてる人間も出ているわけで、
boostくらい見逃すのがいいのかもしれないな
0625名前は開発中のものです。
02/09/28 09:03ID:???0626名前は開発中のものです。
02/09/28 16:00ID:???問題ない。
0627名前は開発中のものです。
02/09/28 18:02ID:???> ウチの会社も導入を許可してくれない。
lambda あたりはともかくとして、shared_ptr さえ使えないような会社なら
転職を考えた方が…。
0628名前は開発中のものです。
02/09/28 18:13ID:???0629名前は開発中のものです。
02/09/28 19:40ID:???0630名前は開発中のものです。
02/09/28 20:19ID:???導入したければ、自分のプライベートを裂いてコード検証をして、
各クラス毎の関連と、使用可不可のチェックリストを作らないと許可が下りない。
大体、まともなところならshared_ptrに変わる物はすでに作られてる筈だから
対して問題にならないと思うが。
0631名前は開発中のものです。
02/09/28 20:30ID:ThgTmq4W俺は不安なのでfloatとか使ってるんだけど、実はintでもいい?
0632名前は開発中のものです。
02/09/28 20:33ID:???0633名前は開発中のものです。
02/09/28 20:52ID:???なんかIDがカコイイから特別に教えてやる。
表現したい座標の性質により変える。
0634名前は開発中のものです。
02/09/28 21:01ID:???仕事に使う道具を検証するのに「プライベート」な時間を要求するのか。
終わっとるな。
0635名前は開発中のものです。
02/09/28 21:02ID:???意味不明。
「不安」、「いい?」とは具体的に何。
>>632
必要なければそれでいい。
気にすることはない。
0636名前は開発中のものです。
02/09/28 21:04ID:???検証する時間を与えられるかどうか微妙だなあ。
検証する時間をクレとリーダーに交渉する時間は
仕事中であってもいいと思うが、そこでダメといわれたら
プライベートでやるしかないな
0637631
02/09/28 21:08ID:???スクリーンの左上を(0, 0)、右下を(800, 600)などとして
オブジェクトを配置していくわけです。
移動してくオブジェクトの座標には、今までfloat型を使って表現
していたのですが、これって意味のないことですか?
0638名前は開発中のものです。
02/09/28 21:16ID:???0639名前は開発中のものです。
02/09/28 21:19ID:???スクリーンに表示だけならint型だけでもいいんでないの。
ただし、その値を計算する時に、float型程度の精度が無いと
計算出来ないんじゃない?
計算様の別型の値を持って、それで計算、intにキャストして表示って馬鹿らしい。
だから、漏れは初めからfloat型でいっていますが。
0640名前は開発中のものです。
02/09/28 21:25ID:???オブジェクトが小数点以下の数値をとる可能性があるなら無駄じゃないよ。
0641名前は開発中のものです。
02/09/28 21:35ID:???アプリの内部変数の型の話をしてるなら
意味がないかどうかはアプリによるだろう。ちゃんと設計しる。
一方、一般的な3DAPIに渡される座標値の型指定がfloat値であることの
意味を問うているなら、それはちゃんと意味があるという答えになる。
試しに320x240程度の画面モードにすれば肉眼で確認できるだろう。
0642641
02/09/28 21:40ID:???「ゲームの中のシーン座標」と「スクリーン座標」はそれぞれ別物として
定義するのが普通だぞ。2Dの場合は、依存関係を持たせないと苦しいケースも
ある。
0643初心者
02/09/29 00:07ID:???どうやったらいいんでしょうか?
実際にギターなどでは作ったことがあるんですが、、、
シンセサイザーに挑戦します。
友達とチームを組んで活動します。
シンセサイザーのことはまるで分からないので、アドバイスください。
0644名前は開発中のものです。
02/09/29 00:19ID:???MIDIデータを作ることから始めてみてはどうか
まったく知らなければDTM板でも覗いてみるとか
0645名前は開発中のものです。
02/09/29 15:07ID:RRwSPMiU8ビットCPUのフルアセンブラでしか経験ないけど、16bit整数+8bit小数の24bit
で、管理してました。
0.5ドットの移動とかやりますし。
0646名前は開発中のものです。
02/09/29 19:19ID:???0647名前は開発中のものです。
02/09/30 01:38ID:???0648名前は開発中のものです。
02/10/01 20:56ID:???0649名前は開発中のものです。
02/10/02 12:32ID:???あのゲームの場合、装備品にカードが刺せて、装備品やカードによっていろいろとパラメーターが変わります。あるカードを刺せば攻撃力 += 10; とか、あるカードをさすと敵の属性によって追加ダメージ15%等‥‥
で、私の頭ではいちいち、いちいち武器やカードの効果を攻撃力計算関数内に全部書き込む方法しかおもいつきません。
こんなの↓
func 攻撃力()
{
全装備品のカードスロットを走査、カード枚数[カードID] の配列を作成
基本能力値読み込み
if (カード枚数[100] > 0) { .. }. // 修正能力値の計算
if (カード枚数[200] > 0) { ... }
修正能力値による基本攻撃力の計算
if (カード枚数[150] > 0) { .. }.
if (カード枚数[250] > 0) { ... }
ほげほげほげほげ
if (カード枚数[50] > 0) { ... }
以下繰り返し
return 最終攻撃力
}
でも、この方法は私としてはすごい汚いとおもうんですね。ミスを誘いやすいし、メンテもしにくい‥‥
というわけで、こういうのを効率よく処理する方法について教えてください。
0650名前は開発中のものです。
02/10/02 13:27ID:???オブジェクト「思考」せよ
なんのためにJava使ってるんだ(藁
0651名前は開発中のものです。
02/10/02 13:33ID:???他の者は解法を書くのをしばし待て。
0652649
02/10/02 13:56ID:???一応、考えてみたんですが、
function Card(〜〜〜, effect) {
...
this.effect = (effect == null || effect == undefined) ? null : function () {};
return this;
}
function Equipe(〜〜〜, numcards, effect) {
...
this.Cards = (numcards == 0 || numcards == null || numcards == undefined) ? null : new Array (numcards);
this.effect = (effect == null || effect == undefined) ? null : function () {};
return this
}
function ComputeAttack() {
基本能力値読み込み
for (e = 0; e < EquipSlot.length; e++) {
E = EquipeSlot[e];
E.effect();
if (E.Cards == null) continue;
for (c = 0; c < E.Cards.length; c++) {
E.Cards[c].effect();
}
}
繰り返し
}
というのを考えては見たのですが、(続く)
0653649
02/10/02 14:02ID:???あ、上のコードで effect っていうのは、カード効果とか装備品の効果です。
で、上のように考えては見たんですが、
ものによって
a += 5; --- @
とか、
a = 0; --- A
とかあるんですね。
詳しく実装が解明されているわけではないのですが、Aの効果があったら@の効果はキャンセルされるし
@A@@とか、配列にきてたらどうしよう?とか非常に困ってしまったのです。
0654名前は開発中のものです。
02/10/02 14:05ID:???class 武器 {
public:
int 攻撃力();
ステータス構造体 ステータス修正();
private:
int 基本攻撃力;
ステータス構造体 ステータス修正値;
カード; //複数枚装着できるなら配列化
};
int 武器::攻撃力() {
return 基本攻撃力 + カード->攻撃力修正();
}
ステータス構造体 武器::ステータス修正() {
return (*this)->ステータス修正値 + カード->ステータス修正値;
}
入りきらないので次↓
0655名前は開発中のものです。
02/10/02 14:05ID:???public:
int 攻撃力修正();
ステータス構造体 ステータス修正();
private:
int 攻撃力修正値;
ステータス構造体 ステータス修正値;
};
あとは必要な武器とカードをデータベースからインスタンス化するだけだと思われ
カードを複数枚装着できるなら、各計算関数内で繰り返してやるだけ
ステータス構造体は、ゲームに出てくるステータスを静的メンバに持つクラスで実装して
+演算子や+=演算子を定義してやる
てか、攻撃力もステータス構造体に含めて問題なさそうだな
「全ての効果打ち消し」とかは配列をソートすれば良いだけでは?
0656名前は開発中のものです。
02/10/05 04:23ID:???エラー処理は例外に頼ってるのに、例外安全なんか知らんわボケっていうのも、イッテヨシ でつか?
もまいら、どうしてますか?
0657名前は開発中のものです。
02/10/05 10:19ID:???> もまいら、どうしてますか?
case by case
っつかクリティカルな部分以外は速度なんか気にしないし、クリティカルな部分も
メモリアロケータに手を入れれば幸せになったりする。
0658名前は開発中のものです。
02/10/07 17:51ID:???スレ立ててもかまわないですかね?
ちなみにプログラミング経験は無しです・・・
言語はHSPかDelphiのどっちかで勉強しながらやろうと思います。
0659658
02/10/07 18:00ID:???0660名前は開発中のものです。
02/10/07 19:06ID:???作ってから立てた方が叩かれないかと。
0661名前は開発中のものです。
02/10/07 19:37ID:???まずはHSPかDelphiのスレで質問しながら作り、
最低限のモノを作ってからスレ立てれば、
叩かれる可能性はかなり減るかと。
0662名前は開発中のものです。
02/10/07 22:53ID:???この板は「カタチの無い企画スレ」は徹底して終了厨に荒らされる傾向があるので
まず一通りカタチにしてからスレ建てた方が良いでしょう
0663名前は開発中のものです。
02/10/07 23:02ID:???0664名前は開発中のものです。
02/10/07 23:03ID:WME4JpPc0665名前は開発中のものです。
02/10/07 23:03ID:???0666名前は開発中のものです。
02/10/07 23:09ID:???出来る香具師ですら完成しねーんだからよ。
0668名前は開発中のものです。
02/10/07 23:16ID:???「形のない企画スレ」には3Dレースゲースレも含まれるのかい?
0669名前は開発中のものです。
02/10/07 23:19ID:???この板の歴史に名を刻んでしまったね。
0670名前は開発中のものです。
02/10/07 23:23ID:???(成功の十分条件ではない)ということを、あのスレは教えてくれた。
0671名前は開発中のものです。
02/10/07 23:31ID:???作者が名前伏せて反論してたから削除人も相手にしてくれなかった
0672名前は開発中のものです。
02/10/07 23:32ID:???■ このスレッドは過去ログ倉庫に格納されています