入門1

Last-modified: 2008-12-25 (木) 15:01:56

http://homepage2.nifty.com/kasayan/bindex.htm
上記ページを参考に DarkBASICに移植してみました。
 

Rem  UFO-GAME
rem  初期設定
sync on : sync rate 60
set display mode 640,480,16
set text font "MS ゴシック",128
set text size 16
rem イメージ読み込み
cls : print "-<T>-" :get image 1,0,0,42,16
cls : print "<UFO>" :get image 2,0,0,47,16
cls : print "I" :get image 3,0,0,5,16
cls : print "*" :get image 4,0,0,8,16
cls
x=300 : y=400 :` x、y 自機の座標 ・
m=0 :  `     ミサイル存在フラグ
mx=0 : my=0 ` mx、my ミサイル座標
randomize timer()
ex=20 : ey=int(rnd(300))+20 :` ex,ey 敵座標 
sprite 2,ex,ey,2
sprite 3,600,600,3
rem main loop   ゲームループ
do
 set cursor 0,0: print "KEY操作 ←左 →右 ↑ミサイル発射";"   自機 <T> を操り    敵 <UFO>を撃つゲーム"
 gosub _houdai
 if m=1 then gosub _tama   ` m=0 ミサイル未発射、ミサイル移動ルーチンにはいかない、 m=1 ミサイル発射中へ行へ  
 gosub _teki
 gosub _hantei
 sync          ` 同期 ここで一括して画面を描く。
loop
rem 以下サブルーチン
_houdai:  ` 自機の移動、ミサイル発射
 if leftkey()=1  and x>1   then x=x-1
 if rightkey()=1 and x<600 then x=x+1
 if upkey()=1  and m=0   then mx=x+20 : my=400 : m=1
 sprite 1,x,y,1
return
_tama:` ミサイル移動ルーチン
 my=my-1
 if my<2 then mx=600 : my=600 : m=0 : `上までいったらミサイル終了。m=0に戻す
 sprite 3,mx,my,3
return
_teki:  ` 敵移動ルーチン 
 ex=ex+1
 if ex>600 then ex=0 : ey=int(rnd(300))+20 `端までいったら新座標
 sprite 2,ex,ey,2
return
_hantei: `当たり判定 
 if sprite collision(3,2)=1 then gosub _theEnd : end :` 当たり判定
return
_theEnd: `当たりの時の処理
 sprite 4,mx,my,4
 set cursor 0,200
 print "大当たり THE END"
 print "HIT ANY KEY"
 sync
 wait key
return

 
なにかあれば どうぞ