ズブの初心者がゲーム作れるまで勉強するスレ
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
01/11/07 20:26ID:PFtlmWD9ズブの初心者以外お断りです。
なおアドバイス等はプロのかたでも結構です。
初心者は聞く耳を持ちプロもわかりやすく教えてやってください。
0887名前は開発中のものです。
2006/03/22(水) 08:54:51ID:4wbvXuWa#define cspeed 8 //自機移動速度
#define EBULLET_MAX 50 //敵弾数最大
//初期化
gosub *Boot_Initialize
gosub *Play_Initialize
*Start
repeat
//裏画面を作る
gsel 2,-1
cls 4
await 1
//自機
stick keyboard,15,1
if keyboard & 1 {
cx=cx-cspeed
if cx<0 : cx=0
}
if keyboard & 4 {
cx=cx+cspeed
if cx>639-32 : cx=639-32
}
if keyboard & 64 {
if benable=0 {
benable=1
bx=cx+16
0888名前は開発中のものです。
2006/03/22(水) 08:55:38ID:4wbvXuWa}
}
pos cx,cy: gcopy 3, 0,0
//自機弾
if benable=1 {
by=by-8
if by<0 : benable=0
color 255,255,255
line bx, by, bx, by-16
}
//敵機
ndir=dir
repeat MAX
if tl.cnt.0 = 1 {
pos tl.cnt.2,tl.cnt.3:gcopy 4, 0,0,32,32
tl.cnt.2 = tl.cnt.2+dir
if (tl.cnt.2 <= 0) : ndir=1
if (tl.cnt.2 >= 602) : ndir=-1
0889名前は開発中のものです。
2006/03/22(水) 08:56:09ID:4wbvXuWaif benable and tl.cnt.2<bx and tl.cnt.2+32>bx and tl.cnt.3<by and tl.cnt.3+32>by {
tl.cnt.0 = 0
Score = Score + 10
Teki_Rest = Teki_Rest - 1
gosub *Enemy_Fire
}
//敵が接地したか
if tl.cnt.3 > 448 : invasion = 1
}
loop
if dir!ndir {
repeat MAX
tl.cnt.3=tl.cnt.3+4
loop
}
dir=ndir
0890名前は開発中のものです。
2006/03/22(水) 10:49:46ID:4wbvXuWarepeat EBULLET_MAX
color 255,255,255
if bl.cnt.0 = 1 {
line bl.cnt.2, bl.cnt.3, bl.cnt.2, bl.cnt.3 + 16 //描画
bl.cnt.3 = bl.cnt.3 + 8 //移動
if bl.cnt.3 > 480 : bl.cnt.0 = 0 //画面外なら使用終了
if bl.cnt.2 > cx and bl.cnt.2 < cx + 32 and bl.cnt.3 > cy and bl.cnt.3 < cy+32 : Dead = 1 //自機との当たり判定
}
loop
Color 255, 255, 255
pos 200,0 : mes "Score : " + Score
if Score > HighScore : HighScore = Score
pos 0,0 : mes "High-Score : " + HighScore
//表画面へコピー
gsel 0,1
pos 0,0: gcopy 2,0,0,640,480
if Teki_Rest=0 : gosub *Stage_Initialize
if invasion=1 or Dead = 1 : gosub *Play_Initialize
loop
0891名前は開発中のものです。
2006/03/22(水) 13:19:37ID:DEs7YkunCの半分くらいの時間でソース書けるんだが
短すぎて書いた気がしない
0892名前は開発中のものです。
2006/03/22(水) 16:53:56ID:4wbvXuWa*Stage_Initialize
Stage_Num = Stage_Num + 1
Dim tl, MAX, 3 //敵
Dim bl, EBULLET_MAX, 3 //敵の弾
repeat MAX
tl.cnt.0 = 1 //利用中(0=否)
tl.cnt.1 = 0 //呼び出すサブルーチン(未使用)
tl.cnt.2 = ( cnt * 64 ) \ 640 //X座標
tl.cnt.3 = ( cnt * 64 ) / 640 * 64 //Y座標
loop
cx=320
cy=440
benable=0
Teki_Rest=MAX
invasion = 0
Dead = 0
cls 4
Color 255, 255, 255
pos 280,240 : mes "Stage " + Stage_Num
AWait 1000
return
0893名前は開発中のものです。
2006/03/22(水) 16:54:27ID:4wbvXuWa*Play_Initialize
Stage_Num=0
Score=0
gosub *Stage_Initialize
return
//起動時の初期化
*Boot_Initialize
HighScore=74
Score=0
//裏画面
buffer 2,640,480
//自機
buffer 3,32,32
picload "jiki.bmp"
//敵機
buffer 4,32,32
picload "teki.bmp"
screen 0,640,480
cls 4
return
0894名前は開発中のものです。
2006/03/22(水) 16:54:57ID:4wbvXuWa*Enemy_Fire
// bl.cnt.0 //使用中かどうか
// bl.cnt.1 //弾道サブルーチン(未使用)
// bl.cnt.2 //X座標
// bl.cnt.3 //Y座標
teki_num=cnt
repeat EBULLET_MAX
if bl.cnt.0 = 0 {
bl.cnt.0 = 1
bl.cnt.2 = tl.teki_num.2+16
bl.cnt.3 = tl.teki_num.3
break
}
loop
return
■ このスレッドは過去ログ倉庫に格納されています