C言語でアクションゲームが作りたい
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
02/05/03 18:22ID:jHGxuzaQ0123名前は開発中のものです。
04/03/10 19:12ID:VROF09alてかこの板さ、過疎のせいで生きてるスレが分かりにく杉
allage進行でもいい位(´_ゝ`)
0124名前は開発中のものです。
04/03/10 23:02ID:V51Y5dwKタイマ(WM_TIMER)は不安定なので普通ゲームには使わないぞ。
↓ここの1.4.1みたいに処理すべし。
http://www.microsoft.com/japan/msdn/academic/Articles/DirectX/01/
このままだとCPU100%使っちゃうから、elseブロックの中にSleepとかいれて
適当にウェイトを入れる。Sleepに食わせる値でFPS調節なんかもする。
調節の仕方はあちこちのページにかかれているので、検索してみるべし。
0125121
04/03/10 23:48ID:pC7cF3IRレスありがとうございます。こんな感じにしたらできました。
void anime() {
static int count = 0; static DWORD fps_keep = 0;
if (GetTickCount() < fps_keep + 300) return;
fps_keep = GetTickCount(); 背景で塗りつぶし;
switch (count) {
case 0: 描画; count = 1; break;
case 1: 描画; count = 0; break;
}
}
CPUも100%にならなくなりました。教えて下さってありがとうございました。
0126デフォルトの名無しさん
04/03/11 07:26ID:vbhBEofdいやまだ望みはあります。
描画関数は一つ(数個)でしょう?
フラグをセットして、セットして有れば画面に書かないで
戻るようにすればいいのです。これならプログラムの100カ所
から描画関数を呼んでても大丈夫だと思うけど。
0127名前は開発中のものです。
04/11/14 00:45:18ID:x9zK3qma0128名前は開発中のものです。
04/11/16 18:06:12ID:tsSmGNTS0129名前は開発中のものです。
04/11/16 20:56:59ID:fcqxyC5lC言語プログラミングの流れ
テキストエディタなどでプログラムコードを書く→ソースファイル
ソースファイルをコンパイラを通してバイナリファイルを作成→オブジェクトファイル
複数のオブジェクトファイルをリンカで一つの実行可能なファイルにする→実行可能ファイル
ツール
つまりC言語でプログラムを作るのに必要なツールは
エディタ、コンパイラ、リンカ
コンパイラとリンカはほとんどセットになっているので、両方あわせてコンパイラと呼ぶことも多い
他にもデバッグを支援してくれるデバッガというツールもある
エディタ、コンパイラ、リンカ、デバッガ、その他の支援ツールを一つにまとめた統合開発環境(IDE)といわれるものもある
コンパイラ
Windowsアプリケーションを作るとすれば
無料コンパイラ:Mingw,BCC,Microsoft Visual C++ Toolkit 2003などなど
有料IDE(コンパイラ込み):VisualC++.NET2003,Borland C++ Builderなど
LinuxやFreeBSDなどのUNIX系ならコンパイラは迷うことなくGCC
0130名前は開発中のものです。
04/11/16 20:57:26ID:fcqxyC5l無料コンパイラについて
無料コンパイラは基本的にコマンドラインからの使用が前提なので最低限のDOSコマンドは使える必要があるが
フリーのGUIツールがある場合もある
ほかにもmakefileというコンパイルの手順を記述するファイルの記述方法を覚える必要のものもある
C言語の学習以前に覚えなければいけないものが結構多いので、そんな苦労は最小限にしたい香具師はやめとけ
VisualC++.NET2003
略してVCという
初心者にはVCがお勧め
最初からGUI環境での開発ができる
オールインワンなので必要なツールなどで悩む必要がない
ライブラリ
Windows上で動作するゲームを作る為にはWindowsアプリケーション作成用のライブラリが必要
もちろんVCは最初から何も考えなくてもついてるし、使える
DirectXやOpenGLなどを使ったプログラムを作る為には、そのためのライブラリを入手し、
コンパイラごとにそれぞれ設定する必要がある
ゲーム用のフレームワークを提供するライブラリも存在する
以上のことを踏まえたうえでもチンプンカンプンな香具師はVC買っとけ
0131名前は開発中のものです。
04/11/16 22:31:06ID:fHoL40sIIDE,エディタ:BccDev
コンパイラ,リンカ:Boland C++ Compiler
デバッガ:Turbo Debugger
0132名前は開発中のものです。
04/11/17 18:35:18ID:uDybUtmYありがとう。ありがとう。
0133名前は開発中のものです。
04/12/25 21:49:29ID:F3Xgd3GW0134名前は開発中のものです。
04/12/25 21:54:48ID:F3Xgd3GW0135名前は開発中のものです。
05/01/06 15:18:55ID:xxaj5Xlz学生の場合はコレを1つ買えばCでゲームを作ることができますか?
0136名前は開発中のものです。
05/01/06 16:03:52ID:aURBdGiOおk
0137名前は開発中のものです。
05/01/06 19:00:33ID:DH17e0iN0138名前は開発中のものです。
05/01/07 12:09:07ID:Xb185jAaんだ。
書籍は金がかかるので、最低限をそろえて、
情報源はもっぱらインターネッツ。
英語を覚えりゃ収集できる情報量が増える。
0139名前は開発中のものです。
05/01/24 01:54:46ID:AjUERDun「キー連打」と「一定時間以上キー押しっぱなし」
を区別したいのですが、どうすればよいでしょうか?
kbhit()とgetch()を使ってキー入力を判断しているのですが、
私には今のところ、区別できません。
だれか教えてください。
よろしくお願いします。
0140名前は開発中のものです。
05/01/24 19:31:50ID:XUv8bTeOいまは、まだコンソール?
もし、そうならもう少し勉強を進めることに専念したほうがいいよ。
違うなら、その辺のWin32SDKの情報をあされば出てくると思う。
0141139
05/01/25 01:05:34ID:iPLtjYiUOSはWindowsで、
言語はC言語です。
コマンドプロンプト上に'■'とかを出力して、
テトリスを作りました。(コンソールゲームというのですか?)
0142名前は開発中のものです。
05/01/30 23:04:05ID:xPAo914a釣りか?
釣りじゃないとしたら>>140をもう一回嫁。
分かりやすく言えば使おうとしてる関数がそもそも間違ってる。
DirectXやゲーム用ラッパーをまず探せ
0143名前は開発中のものです。
05/01/31 00:05:35ID:cTfpobPf始めて初めて分かるこの苦労。
今は2Dアクション作ってて3Dは全く触ってないんだが・・・
2Dとはやっぱり別物みたいだな。
2Dが理解できても3Dが理解できん。
つーか、サンプル見ても3Dはよく分からん。
流体力学研究所っつーサイトが結構面白かったが、
あのレベルになるまでにはどのくらいかかるのかねぇ。
0144名前は開発中のものです。
05/01/31 01:04:28ID:dk4MRPJZ定番
一生(ry
0145名前は開発中のものです。
05/01/31 01:23:46ID:r9nuMyDUキー連打と押しっぱなしを区別するには、変数を使って前回の状態を記憶し、
前回の状態が押してなくて、今回は押してたのなら、連打したことになる…、
というふうにする。
面倒くさいと思うかもしれないけど、みんなこうやってるのだよ
0146名前は開発中のものです。
05/01/31 01:30:31ID:nsgwyZ8/0147名前は開発中のものです。
2005/03/24(木) 18:22:58ID:6s5fO40x0148名前は開発中のものです。
2005/03/24(木) 18:24:20ID:KlKHFtG1きっと、だれでも得意なことや不得意なことがあるはずです。
だから…たぶんゲームには向いていなかったのでしょう^^
0149名前は開発中のものです。
2005/03/24(木) 19:58:13ID:6s5fO40x0150名前は開発中のものです。
2005/11/04(金) 18:12:41ID:TRxG7fOu0151名前は開発中のものです。
2005/11/05(土) 23:33:58ID:O8Q9EzMN0152名前は開発中のものです。
2005/11/06(日) 13:01:45ID:ahB8bn+L0153名前は開発中のものです。
2005/11/06(日) 13:19:25ID:wdl0eUTl0154名前は開発中のものです。
2005/11/06(日) 13:20:25ID:wdl0eUTl0155名前は開発中のものです。
2005/11/06(日) 13:22:53ID:wdl0eUTl0156名前は開発中のものです。
2005/11/06(日) 16:31:58ID:2Jf1lcDI0157名前は開発中のものです。
2005/11/07(月) 00:03:16ID:SXdAN7QW0158名前は開発中のものです。
2005/11/07(月) 05:33:20ID:asEGnyQY0159名前は開発中のものです。
2005/11/07(月) 19:46:38ID:2gRWCoRh手続きが糞面倒いけどな
0160名前は開発中のものです。
2005/11/07(月) 22:06:54ID:bxsN/QFE一年ほど遅い横レスだがマジでthx
無茶苦茶助かる。
こういう情報が1番欲しい割りには1番探しにくい。
メーカーサイトみてもわけのわからん謳い文句ばっかで
その製品で何ができるのかさっぱりわからんかった。
なにから手をつけていいのか見当もつかなかったんで
ありがと
0161名前は開発中のものです。
2005/11/08(火) 15:43:04ID:5sKvU1wFこう言っちゃ何なんだけど、
その程度の情報自分で集められない&勉強出来ない時点で
プログラムには向いてない気ガス。
0162名前は開発中のものです。
2005/11/08(火) 16:19:47ID:LsRBzfpu0163名前は開発中のものです。
2005/11/08(火) 17:05:27ID:qvd6Nhwx0164名前は開発中のものです。
2005/11/08(火) 19:12:47ID:NsoRYc4P0165名前は開発中のものです。
2005/11/09(水) 23:42:07ID:EwnTVsdI0166名前は開発中のものです。
2005/11/11(金) 21:58:57ID:GCIYcnGs0167名前は開発中のものです。
2005/11/14(月) 00:53:07ID:aU3971Di0168名前は開発中のものです。
2005/11/14(月) 23:07:34ID:aU3971Di0169名前は開発中のものです。
2005/11/14(月) 23:08:03ID:aU3971Di0170名前は開発中のものです。
2005/11/16(水) 06:13:02ID:bP8OZfvZ//配列dirにランダムで値を入れて敵キャラの移動方向を決める
dir[0] = rand()%5;
switch(dir[0]){
case 0 : //UP
座標移動など;
break;
case 1 : //DOWN
座標移動など;
break;
case 2 : //RIGHT
座標移動など;
break;
case 3 : //LEFT
座標移動など;
break;
default;
break;
}
ズレるかもしれない
0171名前は開発中のものです。
2005/11/20(日) 00:24:42ID:9sRgGKZA0172名前は開発中のものです。
2006/06/17(土) 00:12:18ID:spkZow+nたぶんそうだな。
0173名前は開発中のものです。
2006/09/22(金) 21:23:28ID:iYNT4fJm0174名前は開発中のものです。
2006/10/09(月) 15:45:40ID:BLAr7l820175親父
2006/10/16(月) 06:54:24ID:rXTAsiwN作りたいんですが、まずはどうすればいいですか?
0176名前は開発中のものです。
2006/10/16(月) 08:50:51ID:ETvWxTDe0177親父
2006/10/16(月) 10:47:00ID:977vydNH取り合えずやってみる
0178名前は開発中のものです。
2006/10/17(火) 06:11:10ID:Ci2KLVBp0179名前は開発中のものです。
2006/10/17(火) 10:20:06ID:CFzZkzeRDXライブラリを知ってから、超簡単に2Dゲームプログラミングができるようになった。(ヘタレだが)
>>178にもお勧めしとく。
C言語っつーかDirectXだな。
スプライトは無いけど、普通の画像(BMP等)をスプライトと同様に扱える。
0180名前は開発中のものです。
2006/10/26(木) 21:04:59ID:ssyUOzflCなら、適当なメモリ領域をビットマップに見立てて自力で抜き色以外をピクセル転送。
Win32APIを使うとそのメモリ領域をDIBとして直接表示できる。
速度も32*32程度で数十個とか100個程度のパターンを表示するなら十分実用的。
0181名前は開発中のものです。
2006/11/05(日) 00:03:28ID:7chgMelj0182名前は開発中のものです。
2006/11/06(月) 20:37:31ID:Yz3dksL2ttp://www.amazon.co.jp/gp/product/4899771517/sr=8-1/qid=1162812879/ref=sr_1_1/503-3710014-7096713?ie=UTF8&s=books
『14歳からはじめるC言語わくわくゲームプログラミング教室 Windows98/2000/Me/XP対応』
中級者以上の人にはあんまり評判が良くないけど、とっかかりを作る上ではいいと思うの
0183名前は開発中のものです。
2006/12/06(水) 00:06:35ID:KflH77tyttp://www.amazon.co.jp/gp/product/B000CSRIZ0/sr=1-1/qid=1165330998/ref=sr_1_1/503-7339295-7035903?ie=UTF8&s=software
か。
確か>>135のはプロダクトキーが期限切れになってるはずだし。
0184名前は開発中のものです。
2006/12/07(木) 21:52:16ID:SXyPw4fF2005で作ったの2003で読み込めるないんだよね・・
0185名前は開発中のものです。
2006/12/10(日) 05:04:22ID:aJXqrfUl根本の仕組みが知りたいんだよね。
スプライトって、背景+窓というのを擬似的に表現しているだけで、
実際は単なるドットの集まりだよね。
でさ、例えばキャラが1ドット上に移動したとするじゃん。すると、
>キャラを1ドット上に表示+キャラの下にできた1ドットの隙間に背景表示
って処理をしなきゃならないと思うんだけど、
これって実際やってみるとすんげー重いのよ。
なんで昔のファミコンとかで、こんな重い処理ができたのか不思議でしょうがない。
キャラがなんであんなに素早く動くのかな〜。
根本をたどれば、ドット単位で表示ONOFFしてるだけのはずなのに、
スプライトとか魔法みたいなことができるのはおかしい。
おれはこれがいつまでもわからなくて、挫折をした。
0186名前は開発中のものです。
2006/12/10(日) 05:15:37ID:kEK2MzKm0187名前は開発中のものです。
2006/12/10(日) 10:09:20ID:xCPbM3oZユーの言うスプライトは擬似的なものでPC98とかの世界だな。
2D系のゲームやX68kはスプライトを書き込む領域があり、
それらの表示位置を設定することも出来る。
これらを画面更新時に表示している。
毎フレーム指定色で画面を塗りつぶし、
しかるべき順番でポリゴンを描画している。
DirectXにスプライトは無く、DirectX上で動くスプライトは、
このポリゴンにテクスチャーを設定して擬似的に表現している。
一聞効率的な方法じゃ無いように聞こえるが、
グラフィックボードはそのような処理に最適なように設計されてるので問題無い。
ポリゴンに適した設計にする事が最優先で、
スプライト云々は主眼じゃない。
ここまで適当にレスできる俺は天才だと思う。
0188名前は開発中のものです。
2006/12/10(日) 10:10:43ID:xCPbM3oZ0189185
2006/12/10(日) 21:13:19ID:aJXqrfUl>これらを画面更新時に表示している。
キャラが動くごとに、背景を全描写してるってことだろうけど、それがとてつもなく重そうなんだよね。。
なんでファミコンで表現できたのか不思議。しかもキャラはたくさんいるし。
ダイレクトX使わずに、VC++のMFCでピクチャ表示機能使って
無理矢理キャラの動作をさせてみたことあるんだけど、やっぱ無理ありますな・・・
0190名前は開発中のものです。
2006/12/10(日) 21:40:39ID:gmCAHMuv寝言は実際DirectXを使ってからほざけ。
0191名前は開発中のものです。
2006/12/10(日) 21:43:14ID:Kl/z74Auいや、だから……ハード的にそういう機能を持ってるんだよ。
ついでに言うと、背景を全描写といっても、
ファミコンとかの場合、ドット単位じゃなくて8*8(だっけ?)のチップ単位。
だからチップパターンにそった背景しか描けない。けどメモリも少なくて済むし、データ書き換えも早い。
さらに言うと、背景が変わりでもしない限り、データを書き換える必要もない。
表示座標を変えるだけでスクロールする。
0192名前は開発中のものです。
2006/12/17(日) 16:41:27ID:HQUKYlRtグラフィック画面で全部まかなっているというのは、既出の通り。
そんな今のパソコンでは、ダブルバッファリングという技法が必須だよ。
実際には表示しない、裏の描画用画面のことで、
キャラクターたちを、まずその裏画面上に描く。
一通り全部描き終えたら、その裏画面の内容を
全部まとめて、BltやFlipなどで一気に表示画面上に表示する。
0193名前は開発中のものです。
2006/12/17(日) 16:58:27ID:gEtDPOSLと思ったが、今のPCの性能じゃそんな事する必要もないかw
0194名前は開発中のものです。
2006/12/17(日) 20:30:35ID:pCyciy5N背景描画時に、1ピクセルの行ごとに
ずらしながら裏画面に描くのかねぇ・・・?
それで、どれだけの速度を保てるかは
さすがにやったことないな。
0195名前は開発中のものです。
2007/12/31(月) 01:08:01ID:DW0nBc61fhdfhdf
tsdtsd
hcvhcvxcxc
xzgfzxg
0196名前は開発中のものです。
2007/12/31(月) 06:05:54ID:nIWs4m/L0197名前は開発中のものです。
2008/03/05(水) 14:21:54ID:i3A4b+mI/  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
/ このスレは無事に /
/ 終了いたしました /
/ ありがとうございました /
/ /
/ モララーより /
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
∧_∧ / /∧_∧
( ・∀・) / /(・∀・ )
( )つ ⊂( )
| | | | | |
(__)_) (_(__)
0198名前は開発中のものです。
2008/03/05(水) 14:40:00ID:qwYlHq/j0199名前は開発中のものです。
2008/03/05(水) 15:35:58ID:bokJt+04-''":::::::::::::`''> ゆっくりしていってね!!! <
ヽ::::::::::::::::::::: ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
|::::::;ノ´ ̄\:::::::::::\_,. -‐ァ __ _____ ______
|::::ノ ヽ、ヽr-r'"´ (.__ ,´ _,, '-´ ̄ ̄`-ゝ 、_ イ、
_,.!イ_ _,.ヘーァ'二ハ二ヽ、へ,_7 'r ´ ヽ、ン、
::::::rー''7コ-‐'"´ ; ', `ヽ/`7 ,'==─- -─==', i
r-'ァ'"´/ /! ハ ハ ! iヾ_ノ i イ iゝ、イ人レ/_ルヽイ i |
!イ´ ,' | /__,.!/ V 、!__ハ ,' ,ゝ レリイi (ヒ_] ヒ_ン ).| .|、i .||
`! !/レi' (ヒ_] ヒ_ン レ'i ノ !Y!"" ,___, "" 「 !ノ i |
,' ノ !'" ,___, "' i .レ' L.',. ヽ _ン L」 ノ| .|
( ,ハ ヽ _ン 人! | ||ヽ、 ,イ| ||イ| /
,.ヘ,)、 )>,、 _____, ,.イ ハ レ ル` ー--─ ´ルレ レ´
0200名前は開発中のものです。
2008/03/14(金) 10:33:18ID:a+sbD+vf-''":::::::::::::`''> ゆっくりしていくね!!! <
ヽ::::::::::::::::::::: ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
|::::::;ノ´ ̄\:::::::::::\_,. -‐ァ __ _____ ______
|::::ノ ヽ、ヽr-r'"´ (.__ ,´ _,, '-´ ̄ ̄`-ゝ 、_ イ、
_,.!イ_ _,.ヘーァ'二ハ二ヽ、へ,_7 'r ´ ヽ、ン、
::::::rー''7コ-‐'"´ ; ', `ヽ/`7 ,'==─- -─==', i
r-'ァ'"´/ /! ハ ハ ! iヾ_ノ i イ iゝ、イ人レ/_ルヽイ i |
!イ´ ,' | /__,.!/ V 、!__ハ ,' ,ゝ レリイi (ヒ_] ヒ_ン ).| .|、i .||
`! !/レi' (ヒ_] ヒ_ン レ'i ノ !Y!"" ,___, "" 「 !ノ i |
,' ノ !'" ,___, "' i .レ' L.',. ヽ _ン L」 ノ| .|
( ,ハ ヽ _ン 人! | ||ヽ、 ,イ| ||イ| /
,.ヘ,)、 )>,、 _____, ,.イ ハ レ ル` ー--─ ´ルレ レ´
0201名前は開発中のものです。
2008/03/18(火) 10:54:23ID:olLbUKca0202名前は開発中のものです。
2008/03/19(水) 11:55:05ID:DVv4kD760203名前は開発中のものです。
2008/03/23(日) 05:08:10ID:mWO5t8G1-''":::::::::::::`''> ゆっくりしていってね!!! <
ヽ::::::::::::::::::::: ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
|::::::;ノ´ ̄\:::::::::::\_,. -‐ァ __ _____ ______
|::::ノ ヽ、ヽr-r'"´ (.__ ,´ _,, '-´ ̄ ̄`-ゝ 、_ イ、
_,.!イ_ _,.ヘーァ'二ハ二ヽ、へ,_7 'r ´ ヽ、ン、
::::::rー''7コ-‐'"´ ; ', `ヽ/`7 ,'==─- -─==', i
r-'ァ'"´/ /! ハ ハ ! iヾ_ノ i イ iゝ、イ人レ/_ルヽイ i |
!イ´ ,' | /__,.!/ V 、!__ハ ,' ,ゝ レリイi (ヒ_] ヒ_ン ).| .|、i .||
`! !/レi' (ヒ_] ヒ_ン レ'i ノ !Y!"" ,___, "" 「 !ノ i |
,' ノ !'" ,___, "' i .レ' L.',. ヽ _ン L」 ノ| .|
( ,ハ ヽ _ン 人! | ||ヽ、 ,イ| ||イ| /
,.ヘ,)、 )>,、 _____, ,.イ ハ レ ル` ー--─ ´ルレ レ´
0204名前は開発中のものです。
2008/03/27(木) 13:57:01ID:6aFlAzKU0205名前は開発中のものです。
2008/03/27(木) 15:02:50ID:vXrdy63U-''":::::::::::::`''
ヽ::::::::::::::::::::::::::`::..、
|::::::;ノ´ ̄\:::::::::::\_,. -‐ァ
|::::ノ ヽ、ヽr-r'"´ (.__
_,.!イ_ _,.ヘーァ'二ハ二ヽ、へ,_7
::::::rー''7コ-‐'"´ ; ', `ヽ/`7
r-'ァ'"´/ /! ハ ハ ! iヾ_ノ
!イ´ ,' | /__,.!/ V 、!__ハ ,' ,ゝ
`! !/レi' (ヒ_] ヒ_ン レ'i ノ
,' ノ !'" ,___, "' i .レ'
( ,ハ ヽ _ン 人! 本当にゆっくりしたい気持ちで…
,.ヘ,)、 )>,、 _____, ,.イ ハ 胸がいっぱいなら…!
/l ̄ '-~三~-'  ̄h
. / | レ兮y′/ l どこであれゆっくりできる…!
〈 く ∨ l/ ,イ |
\_,.>、 /,L..]]_ たとえそれが…
. 0ニニニ)而}ニニニニニ),リリニニ)
. L| |_____|____| | 肉焦がし… 骨焼く…
l | |._______| | ,:
, l \ヽ l | , '/ ;' 鉄板の上でもっ………!
:, ____l_|_|_;_|_|___|_|__ ;
|\゙;三三゙';三三三,;゙三三\ ;'
|\\三三゙三ジジ三三,''三;'\,;' ;'
|、 \\三゙;三三ジジ・'三三三;\ ;
0ト、\\\;'三三;'三三三;''三三,;'\
\\\| 炎炎炎炎炎炎炎炎炎 |
\\| 二I二二I二二I二二I二 |
\LI二二I二二I二二I二二]]
0]] 0]]
0206名前は開発中のものです。
2008/04/07(月) 12:30:25ID:GXjnIAO60207名前は開発中のものです。
2008/04/21(月) 20:42:44ID:dRtpsJPd0208名前は開発中のものです。
2008/08/16(土) 23:56:41ID:TeL18Qemロックマンのイメージでお願いします。
1.地面
平らならわかりやすい。
Y軸が任意の値になったらそこが地面。
しかし、凹凸がある。
自機が当たったら、前に進めないし、
弾が当たったら、弾は消えなければいけない。
この地面(凹凸)のデータを
どうやって持てばいいのか悩み中です。
みなさんどうやってますか?
0209名前は開発中のものです。
2008/08/17(日) 00:01:34ID:3Mm4zQJB接触してもダメージを受けない敵を配置して地面を作るとか。
0210208
2008/08/17(日) 00:28:31ID:1DXwyodUありがとうございます
地面もオブジェクトですか
・スクロールと同時にオブジェクトを移動
・地面グラフィックはオブジェクトもち
・地面データもオブジェクト出現だけに絞れる
自機に着地オブジェクト情報をもたせて・・・
・着地オブジェがなかったら全オブジェと着地判定
・着地オブジェがあったらそれと判定
→乗っていたらそのまま
→離れていたら着地オブジェを解除して、全オブジェと着地判定
こ、こんな感じですか
0211名前は開発中のものです。
2008/08/17(日) 01:49:07ID:I7r3iinj0212208
2008/08/17(日) 12:20:41ID:1DXwyodUキャラがチップ単位で動くような場合はいいのですが、
今回、移動不可チップの場所(座標)を特定する方法がよくわからないのです。
0213名前は開発中のものです。
2008/08/17(日) 12:28:02ID:UMrLfjjO0214名前は開発中のものです。
2008/08/17(日) 12:34:23ID:UMrLfjjOこれを10人ずつの班に分けます。
0〜9番を0班、10〜19番を1班というように、9班まで作ります。
さて、X番の子は何班になるでしょう。
0215名前は開発中のものです。
2008/08/17(日) 12:49:07ID:d7xV658j10分のX班(小数点以下切捨て)
0216208
2008/08/17(日) 13:01:37ID:1DXwyodU!?
ありがとうございます。
「チップ内でどこにいるか」を持てば、いけそうですか。
1.全オブジェ(自機、弾、敵)
・「どこのチップにいるか」情報を持つ
・「チップ内でどこにいるか」情報を持つ
・移動した場合、チップ移動判定をする
チップごとにオブジェリストを持っていて、
当たり判定は、同チップ内のオブジェ同士でだけよい
・・・いや、チップをまたがっている場合があるので、
「どのチップにいるか」は2個持たねば。
ちょっとどちらの方法がいいかテストしてみます。
0217名前は開発中のものです。
2008/08/17(日) 22:23:17ID:d7xV658j画面に表示するときだけワールド座標をスクリーン座標に変換するとか。
0218名前は開発中のものです。
2008/08/18(月) 16:02:07ID:V92q0CRDOBJ用のVRAM領域のあるような環境を想像してしまう
(ゲーム内オブジェクトとはまた意味が違うけど)
0219名前は開発中のものです。
2008/08/18(月) 20:59:41ID:ZRBjOITm仮想座標(0,0)からぴっちり敷き詰めるように並べるとする。
マップデータ自体は2次元配列で持てばよい。
チップの番号に対して,あらかじめ当たり判定があるかなど属性を定義しておく。
仮想座標上のあるキャラ(例えば矩形領域で(x1,y1)-(x2,y2)とする)が
どのチップ上にいるかどうかは (x1/16, y1/16)-(x2/16, y2/16) の
マップチップ座標(マップデータ配列)上の矩形領域を調べればよい。
チップ内でも詳細に当たり判定が必要な場合(坂道などを実現する場合?)には
チップ番号から適切な判定ルーチンを呼び出すテーブルなど作る。
キャラ同士の当たり判定はマップチップ当たり判定とは別の処理で行う。
こんな感じ?かなりいいかげんだが。
0220^−^
2008/11/07(金) 21:44:34ID:/Qi4r6QU0221名前は開発中のものです。
2009/06/21(日) 21:21:46ID:sjkKH3pT0222名前は開発中のものです。
2009/06/28(日) 15:36:21ID:lrktbDqt■ このスレッドは過去ログ倉庫に格納されています