トップページgamedev
986コメント314KB

ゲームプログラミング相談室

■ このスレッドは過去ログ倉庫に格納されています
0001プチ9627m01/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/
0124名前は開発中のものです。01/12/15 18:42ID:???
おれポインタ渡しなんて極力使わないようにしてるよ。できるかぎり参照ですませてる。
012511601/12/15 23:19ID:???
>>119
>残り半分は気まずさであると信じたい。

9割くらい気まずいです(笑
ただのダジャレだったのに。
0126名前は開発中のものです。01/12/15 23:43ID:zSSwxmsK
>>121
別に参照もポインタも安全性はかわらんよ。
NULLポインタの可能性がないとしても、NULL参照の可能性はある。

int& GetRef()
{
int* n = NULL;
return *n;
}

こっちの方が余計厄介
0127名前は開発中のものです。01/12/15 23:54ID:???
どっちがよりありえる状況か?
って問題でしょ。
0128名前は開発中のものです。01/12/16 01:25ID:???
よくあるのとたまにあるのはどっちが問題かは難しい。
個人的にはたまにあるほうがはまると思う。
0129名前は開発中のものです。01/12/16 01:29ID:???
>>123
>でも参照って配列渡せないでしょ。

じゃあ参照で何を渡すことができるのか小一時間問い詰めたい
0130名前は開発中のものです。01/12/16 01:41ID:???
関数の引数にしか参照使わないなぁ・・・。
しかも、
関数側がパラメータを書き換える場合はポインタ、
関数側がパラメータを書き換えない場合は const 参照、
みたいな、教科書的使い方しかしてない。
0131あぼーんNGNG
あぼーん
0132_01/12/16 02:36ID:Ar8VngeJ
まあ、山椒言うぐらいだから、山椒に使ってれば、いいんじゃ?
だから、constで。
俺は、ネストがうざくないなら、ポインタで済ますけどね。
0133名前は開発中のものです。01/12/16 03:58ID:???
>>126
そのコードは結局ポインタの問題であると思うがいかがであろう。
プログラム板向けな話題だが……。
0134名前は開発中のものです。01/12/16 07:07ID:???
>131
なんて書いてあったか気になる・・・
0135名前は開発中のものです。01/12/16 07:33ID:+KES3Ub0
windowsの画面の設定で大きいフォントにしていると
表示が破綻するのですが、なにか回避作はないのでしょうか。
0136名前は開発中のものです。01/12/16 11:55ID:???
山椒は結局ポインタでしょ。
0137名前は開発中のものです。01/12/16 12:45ID:???
>>135
フォントの大きさを固定する。
0138 01/12/16 16:46ID:???
FDDドライブにフロッピーが入ってなかったfalseを返すように
するにはどうしたらいいですかヽ(;´Д`)ノ?
0139名前は開発中のものです。01/12/16 17:25ID:???
>>138
nazo
0140名前は開発中のものです。01/12/16 17:42ID:aHuW4LrA
んー、FDDに特定のファイルがなかったら。でもいいのですが・・・
0141 01/12/16 18:19ID:???
>>140

割とFAQなんだがな。検索したか?
0142名前は開発中のものです。01/12/16 21:18ID:daAjOz/U
>>138
SetErrorMode(SEM_FAILCRITICALERRORS)して
GetVolumeInformation()すれば?
FD入ってなければエラーが返るよ。
0143名前は開発中のものです。01/12/24 16:40ID:TT6cQF5s
あがります。ドキドキ
0144名前は開発中のものです。01/12/24 23:02ID:q2IMbhtW
射影行列から視点って求められますかねぇ?
0145名前は開発中のものです。01/12/25 06:00ID:???
それは、コーヒーにミルクと砂糖を混ぜたあとで
砂糖だけ取り出すようなものではありますまいか。
0146名前は開発中のものです。01/12/25 21:55ID:???
>>145
つまり、かな〜り難しいということですね。
どうもありがとう。
視点は別でとっておきます。
0147名前は開発中のものです。01/12/26 11:46ID:???
行列の逆変換を行うんだっけ?
はっきり覚えていない
0148-02/01/08 23:20ID:yU2HT0bl
好き好きはあると思いますがゲームを作るのに最も適している言語って何だとおもいます?
0149名前は開発中のものです。02/01/08 23:28ID:???
>>148
英語
0150名前は開発中のものです。02/01/08 23:36ID:???
>>149
日本語使おうぜ。日本人なら。
0151名前は開発中のものです。02/01/09 00:10ID:???
10 カケ "コンニチハ"
0152名前は開発中のものです。02/01/09 00:28ID:???
>>148
C++使っておけば馬鹿にされない。
0153名前は開発中のものです。02/01/09 00:44ID:???
>>148
pygameは?
誰も使ったことなさそうだ。
0154名前は開発中のものです。02/01/09 08:37ID:???
>>153
それをもっとも適した言語というのはどうかと(w

まあ、くやしいがC/C++じゃないかな
0155-02/01/09 22:11ID:???
やっぱりC/C++ってことになるのかぁ
0156名前は開発中のものです。02/01/09 23:51ID:???
あと、アセンブラもたまに必要。
フルアセンブラでなくても、インラインアセンブラぐらい書けたら
たまーに重宝する事があるんだが…。
0157名前は開発中のものです。02/01/10 02:04ID:???
sinとcosの値が同時に欲しい時とか。
0158名前は開発中のものです。02/01/10 14:53ID:4z5AnKwA
BGMを作るのに使える簡単な作曲ソフト教えてくれませんか?
0159名前は開発中のものです。02/01/10 15:23ID:???
「簡単な」ものがあれば漏れも知りたい。
0160名前は開発中のものです。02/01/10 21:58ID:s/3jCGLI
>>158
http://hello.to/dtm/
自動作曲ツール
0161名前は開発中のものです。02/01/11 14:37ID:JxPmum3m
ブロックくずしの跳ね返る方向って
どうやって決まるんだろう。
止まっている時の跳ね返りはなんとなく
分かるんだけど…
0162名前は開発中のものです。02/01/11 15:08ID:???
>>148
C でしょ。ゲームによるけど C++ はあまりお薦めしないなぁ。アセンブラは
使い方が分かる程度に勉強しておくと役に立つかも。
0163名前は開発中のものです。02/01/12 00:44ID:qF5Awb+F
>>161
大雑把に処理するなら、停止時の弾の跳ね返り速度に、
ブロックの移動速度を足す。

つーか、摩擦やら跳ね返り係数やらを考慮しても良いのだが、
労力に見合うとは思えん。ま、ヒマならやってみ。
0164名前は開発中のものです。02/01/12 00:48ID:???
>>158
最近のシーケンスソフトについてくるオートバッキング機能は結構
便利だよ。漏れはYAMAHA派なのでXGWorksなんだが、てけとーなフ
レーズを打ち込んどいてオートアレンジャーで伴奏つけてから、元
のフレーズを消して、あらためてひらめいた音を入れる、というア
フォな手法を使ってます。
0165名前は開発中のものです。02/01/12 11:50ID:WQq5T0Hz
>>163
よく考えたら、摩擦は関係ないような・・・
0166名前は開発中のものです。02/01/12 12:58ID:2GJZajHz
>>165
パドルの動きに対してどんだけボールが粘着するかの係数
0167名前は開発中のものです。02/01/13 00:33ID:ssMqoitn
>>166
あと、慣性モーメントだな
0168名前は開発中のものです。02/01/13 02:14ID:LBqywreg
>>158
cherryも使える。検索しよう!
0169名前は開発中のものです。02/01/13 03:31ID:???
>>161
多少ランダムな要素も含まれている気がする。

>>166
キャラクタの材質の設定もあるわけでちゅかい?
0170名前は開発中のものです。02/01/13 03:54ID:???
>>169
元々163が振ったネタだよ。
0171名前は開発中のものです。02/01/13 03:56ID:???
そうでした
0172名前は開発中のものです。02/01/13 03:59ID:???
この手の joke がワカラン奴の「ゲーム屋」としての適正を少々
疑ってしまう俺。言い過ぎか?
0173名前は開発中のものです。02/01/13 04:10ID:08Lp1+qJ
http://mpulip.hoops.ne.jp/gametips/gametips.htm
flip使っちゃいけませんか
0174名前は開発中のものです。02/01/13 04:12ID:???
おれもジョークまじりなつもりだったのだがつまらなかったな
0175名前は開発中のものです。02/01/13 04:25ID:???
>640x480フルカラーのゲームを作るとする。60FPSのゲームを作る場合、1秒に転送するデータ量はどのくらいだろうか。
>52.7MB/sである。

にはついワロタ。世の中っていろんな人がいるんだなぁ。。。
ていうか読めば読むほど素晴らしい洞察に長けた文章が漫才なん
だが(笑
筆者は相当なネタ師とお見受けする。
0176名前は開発中のものです。02/01/13 04:34ID:???
>>161-170でどれがjokeか分からない自分は逝ってよし?
>>165-167あたり?
0177名前は開発中のものです。02/01/13 10:34ID:???
>175
DIB作って毎回転送してやればそのぐらいになるんでは?
DirectDrawを解像度の切り替えぐらいしか使ってないけど

まぁ、そんな事しているとは到底思えないんだが…
0178名前は開発中のものです。02/01/13 12:02ID:???
>>177
それなら55Mくらいじゃないかな?
0179名前は開発中のものです。02/01/13 14:34ID:???
>>175
何が笑えるのかよくわからんのは俺だけかね?
# いやまあ、データ隠蔽のあたりは笑えなくはないが
暇だったら説明きぼんぬ。
0180名前は開発中のものです。02/01/13 14:37ID:???
俺も何が笑えるのか分からん。
>>175に400字詰め原稿用紙10枚ほどで説明してもらいたい。
0181名前は開発中のものです。02/01/13 18:47ID:Hyzb8Prh
161です。
レスありがとうございます。
何かヒントがつかめたような気がします。
しかし今時ブロック崩しもないよなぁ・・・
0182名前は開発中のものです。02/01/13 19:07ID:???
>>175じゃないけど、「今時リフレッシュレート60ってあまりいないぞ」には疑問かも。
0183名前は開発中のものです。02/01/13 19:38ID:???
>>182
今時も何もFPS固定派には多いというか、それしかないような。
0184名前は開発中のものです。02/01/13 21:12ID:???
とりあえず 52.7MB/s ってどこから出たんだ?
3バイトとしても微妙に違わね?
0185名前は開発中のものです。02/01/13 21:22ID:???
>184
640(pix)*480(pix)*24(bpp)*60(fps)/1024(K)/1024(M)=421.875(Mbps)
8で割って52.734375MBytes/s。
なんか変か?
0186名前は開発中のものです。02/01/13 21:23ID:???
>>179-180
ひょっとして書いた本人か?w
0187名前は開発中のものです。02/01/13 21:25ID:???
とりあえず、ごく最近この道に入った奴には、あの内容では笑う
しかないのでは? ヴィデオメモリとメインメモリの違いも理解
してなさそうだし。
0188名前は開発中のものです。02/01/13 22:54ID:???
なんつーか、滅茶苦茶というか…強いて言うなら苦笑いか?
とりあえず、メモリの違いとか全部転送するのかとかはおいておくとしても、
自分で60fpsで固定するなとか抜かしてるのに、計算式は60固定かよ、みたいな。
いくらでもつっこめそうですな。
0189名前は開発中のものです。02/01/14 02:19ID:???
>>187
8年位前のPCでDOSエクステンダが云々、VESA BIOSが云々、といってた時代なら正しいんだけどね。
実際にPCIの帯域がこれこれだから、理論値は…という話題も合ったし。
0190名前は開発中のものです。02/01/14 02:40ID:???
>186
ちげーよ。
>189
ああ、そういう意味か。まあ確かにAGPなら
55MB/s程度の風速は屁でもないわな。
0191haruka02/01/18 02:42ID:???
>>161
アルカノイドだと、バウス(自機)にボールがあたったときの跳ね返り方向は、
バウスのどの部分に当たったかで決まってますが、
ブロック崩しってなんか特別なのがあるんでしょうか?

>>175が書いてるやつってさ、
普通オフスクリーン間の転送の方がずっと大きいので
オフスクリーンからプライマリに転送するところだけ計算することに
何の意味があるのかよくわからないです。
0192名前は開発中のものです。02/01/18 13:15ID:???
>>191 それはアルカノイドが特殊なだけ、それに準ずるかどうかは設計者次第
0193名前は開発中のものです。02/01/19 11:20ID:l0apz3Qd
要するにゲームデザインの問題と。
個人的には、律儀に正しく反射するだけのブロック崩しは
なかなか最後の数ブロックに玉が当たらなかったりして
クソゲー化してるのをよく見かける気がする。ついでにage
0194名前は開発中のものです。02/01/19 15:39ID:???
>>191
昔は画面への転送が遅かったからあながち>175のは意味が無かったわけじゃない。
0195名前は開発中のものです。02/01/19 16:42ID:???
>>185 175の人は
「1秒の転送量(MB) < ビデオカード(MB)じゃなきゃ駄目」
のようなこと質問者が考えてるか想像してワラタのかも。
0196名前は開発中のものです。02/01/20 10:33ID:???
全くのプログラム初心者でいきなりJavaとか不可能?
0197名前は開発中のものです。02/01/20 11:27ID:???
>>196 本人の努力次第
0198名前は開発中のものです。02/01/20 12:11ID:???
>>196
アメリカの情報系学部ではJavaからプログラムを始めさせるらしい。
0199超怒級素人02/01/20 14:30ID:???
Cでゲームを作る、って、どうやって?
Windowsで出来る?
0200名前は開発中のものです。02/01/20 14:34ID:???
作っていますが、何か?
0201名前は開発中のものです。02/01/20 14:49ID:???
>>199
Cでもできます。
じゃんけんゲームとかなんでもできます。

グラフィカルな市販されているゲームをつくりたいのであればWin32APIを利用して作るのですよ。
0202超怒級素人02/01/20 15:00ID:???
Win32APIって、Cでも使えるんですか?
使うとしたら、どの処理系で?
たとえば、マインスイーパー程度のゲームであれば、
Cだけで作れます?
0203超怒級素人02/01/20 15:00ID:???
処理系っていうのは、開発環境のことです。
0204名前は開発中のものです。02/01/20 15:24ID:???
>>202
>Win32APIって、Cでも使えるんですか?
使えます
>使うとしたら、どの処理系で?
VC++, Borland C++ (Builder), IntelC, cygwin, mingw32, digitalmars, watcom, lcc-win32 など
>たとえば、マインスイーパー程度のゲームであれば、
>Cだけで作れます?
作れます
0205名前は開発中のものです。02/01/20 22:59ID:???
>>202
Cだけで作れます? というが、むしろ
複数の言語を使ってゲームを組む方が難しくないか?
0206haruka02/01/21 08:29ID:???
>>198
日本でも最初Javaっていうところは多いと思うよ。

>>204
簡単なゲームならCだけでいいけど、
がんばってC++で作った方がいいような気がするんだけど、
そんなことないですか?

0207名前は開発中のものです。02/01/21 10:57ID:???
>>204
まずCからやってみそ。いきなりC++やっても死ぬだけだ
0208名前は開発中のものです。02/01/21 10:57ID:???
>>206
0209名前は開発中のものです。02/01/25 18:01ID:TpNdaRO3
シューティングで敵を出すプログラミングはどんなのがあるんですか?
0210名前は開発中のものです。02/01/25 18:11ID:???
こんなの

bool Teki = true;

プロの間じゃもう常識。
0211名前は開発中のものです。02/01/25 18:44ID:TpNdaRO3
それだけ。
じゃ、一定の期間で敵を出すプログラムはどんなのがありますか?
0212名前は開発中のものです。02/01/25 19:00ID:JabPi9JG
enum TekiStatus tekiIkimasu = GOGOGO;
unsigned tekiNhun_gamubare = 3;

これ常識。

0213名前は開発中のものです。02/01/26 00:05ID:???
sleep(1000);
printf("(●`ー´●)");
0214名前は開発中のものです。02/01/26 13:00ID:???
while(1){
  MessageBox(0,"敵","敵",0);
  Sleep(3000);
}
一定間隔で敵がでます。
0215名前は開発中のものです。02/01/26 20:15ID:???
よかったネ
0216名前は開発中のものです。02/01/26 20:46ID:BXZOAbm3
>>209,>>211

簡単なもので良ければ、うpしようか?
021720902/01/26 22:16ID:???
>>216
いや、遠慮する。
0218名前は開発中のものです。02/01/27 16:02ID:nDy60XnE
m×nマスが定義されていてキャラAがb個のマスを移動する
というアルゴリズムだれか作って!ちなみにVB。
b=3のとき、こんな感じ
□=空きマス ◆=キャラA ■=移動可能マス ◇=障害物

□□□□■■■□□□
□□□■■■■■□□
□□□◇■◆■■■□
□□□■■■■■□□
□□□□■■■□□□
□□□□□■□□□□
0219名前は開発中のものです。02/01/27 16:11ID:???
>>218
っていうか全検索しる!
0220名前は開発中のものです。02/01/27 16:39ID:???
>>218
初歩的すぎるが、暇なので擬似コード書いてみた。

すべてのマスに対応する移動可能残量ワークを用意。ゼロ初期化。
でスタート

関数(位置, 移動可能残量)
{
 位置が障害物なら何もしないでリターン
 移動可能残量でその位置に入れないのならリターン

 移動可能残量 -= このマスに入るのに必要な消費量

 その位置のワークにすでに移動可能残量以上の値が入っていたらリターン

 その位置のワークに移動可能残量を記入

 if ( 移動可能残量がまだある ) {
  関数(上, 移動可能残量)
  関数(下, 移動可能残量)
  関数(左, 移動可能残量)
  関数(右, 移動可能残量)
 }
}

これで
関数(Aの位置, B)した結果のワークが0でないところが移動可能範囲として描画できる。

たどるべき最短ルートは、任意のポイントのワークの数字を読んで
その隣の数字が大きくなる方向をたどっていけばAまで到達できる。
0221名前は開発中のものです。 02/01/27 16:40ID:???
>>218
http://www.basicmagazine.net/

はい、次の人。
0222名前は開発中のものです。02/01/27 17:02ID:???
足裏が臭くなってきたな、このスレも。
022321802/01/27 17:24ID:nDy60XnE
>>220
すべてのマスに対応する移動可能残量ワークってどういう意味ですか・・?
すいません、初心者で。
■ このスレッドは過去ログ倉庫に格納されています