2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

C言語でアクションゲームが作りたい

1 :名前は開発中のものです。:02/05/03 18:22 ID:jHGxuzaQ.net


71 :名前は開発中のものです。:02/08/11 02:55 ID:???.net
>>70
http://game.2ch.net/test/read.cgi/gamedev/1028266779/119-120n

72 :_:02/08/11 19:46 ID:???.net
>>64
天才プリグラマ

73 :_:02/08/11 20:03 ID:???.net
二次元のマップって普通1次元配列でするよね?

X方向120、Y方向100のマップがあったら

$define MAPX 120
$define MAPY 100
$define MAP_SIZE MAPX*MAPY

int main(void) {

int map[MAP_SIZE];
int x=0,Y=0;

for(i=0;i<MAP_SIZE;i++) map[i]=0;
// もし X:54 Y:33 の位置に1を代入したければ
x=54; y=33;
map[x+(y*MAPX)]=1;





}

でいいんだよね??
2次元使ったほうがいいかいな?

74 :名前は開発中のものです。:02/08/11 20:08 ID:???.net
1マス1オブジェクトなんてどうだろう?

75 :名前は開発中のものです。:02/08/11 20:12 ID:???.net
>>73
うんいいよ。

76 :名前は開発中のものです。:02/08/11 23:35 ID:YyqnVN0I.net
>>73
サイズが大きかったり可変長だったりすると配列ではなくalloc系で取得する
ことになるだろうし、1次元のほうがいいとおもう。

77 :名前は開発中のものです。:02/08/12 14:35 ID:???.net
>>76
callocだと0クリアしてくれるから便利だよな

78 :名前は開発中のものです。:02/08/12 15:07 ID:???.net
MAP面積がX:120 Y:100、ビュー面積(表示される面積)がX:16 Y:16。
map配列内には山や海などのイメージ番号が収納されている。
1ブロックの大きさが16*16ドットとするとブロック単位での全方向スクロールの処理は

$define MAPX 120
$define MAPY 100
$define VIEWX 16
$define VIEWY 16
$define MAP_SIZE MAPX*MAPY

int main(void) {
int i,m=0,x=0,y=0,map[MAP_SIZE]; // x,y変数はビューの左上を指す
while(1) {
m=key(); // key関数はテンキーからの入力を返す
if(m!=0) mapdraw(x,y,m); }
m=0; }

void mapdraw(int x,int y,int m) {
int nn;
if(m==8) y--;
if(m==6) x++;
if(m==2) y++;
if(m==4) x--;
for(i=0;i<VIEWY;i++) {
for(j=0;j<VIEWX;j++) {
nn=map[(x+j)+(y+(i*MAPX)];
put(img[nn],x+(j*16),y+(i*16)); // put関数はブロックを書く
} } }
でいいんじゃないかな?それよりもはよ、アクションゲーム作れや。1よ。

79 :作れ:02/08/12 15:17 ID:1r6GcreU.net

1どっと単位でスクロールしたければ
ビュー画面より少し大きめのバックバッファ(裏画面)を作り、そこへブロックを配置する。
ようするにVIEWXとVIEWYの大きさをバックバッファ用に大きくしてやるだけ。
あとは元のビュー画面の大きさでクロップして表画面に出せば、はいおしまい。
楽勝だろ? さっさと作れ

80 :作れ:02/08/12 15:20 ID:1r6GcreU.net
ちなみにエラールーチン入れとけよ(藁
X,Yが負なったり、(x+VIEWX)がMAPXをこえないようにするとか。

総レス数 268
70 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★