二十八歩目 あたり判定

 
     では今回は あたり判定をしたいと思います
     あたり判定とは 画面上で何かと何かが あたったかどうか
     確かめることです シューティングゲームなんかでは
     ミサイルと敵があたったかどうか あたり判定を使ってるよ

〜あたり判定〜
     あたり判定は命令じゃないんだ ifを使って作るんだ
     ちょっとやってみましょう

	
	repeat			;繰り返し
	color 255,255,255:boxf	;白色で画面を塗りつぶす
	color 0,0,0		;描画色を黒にする
	pos cnt,0		;X座標cntY座標0に
	print "あ"		;あ と表示
	if cnt>100:stop		;cntが100より大きかったらストップ
	wait 1			;待つ
	loop			;repeatヘ戻る

     これを実行すると あ という文字がだんだん右に動いて行って
     しばらくしたら動かなくなると思います
     さぁ説明しましょそうしましょ
     まずrepeatで繰り返しのはじめだ
     次にcolor 255,255,255:boxfでは最初にcolor 255,255,255で描画色を白色にして
     それからboxfで画面を描画色 つまりこの場合白色で塗りつぶします
     別に

color 255,255,255

boxf

     でも同じ事です 僕は一行にまとめただけなので
     次にcolor 0,0,0で描画色を黒にしています もしこれがなかったら
     描画色は白のままで あ と言う文字も白のままになってしまうので
     描画色を黒にしています
     pos cnt,0 これは文字の位置を横はcnt 縦は0の位置にするって事だけど
     cntって何か覚えてる?これは繰り返し(repeatloop)が行われた
     回数がはいってるシステム変数だったよね(思い出せない人はココを見よ)
     だから繰り返された数が入るんだからだんだん 0・・・1・・・2・・・
     と増えてくね つまりpos cnt,0では だんだん繰り返されるたびに
     文字(あ)が 右へ動いてくんだ
     print "あ"では あ と言う文字を表示する
     if cnt>100:stopでは cntが100より大きくなったら
     その右側の命令 つまりstopが実行されるんだ
     だから100回以上繰り返しが行われたらstopが実行されて
     あ と言う文字が動かなくなるんだ
     wait 1loopはおなじみだね
 
     とこんな感じだよ これがあたり判定さ
     つまり あ という文字と100とのあたり判定さ
     でもなんか当たったって感じがしないなぁ・・・
     それに あ と言う文字もぱちぱちするので 改良---

	
	screen 0,200,200	;ウインドウ0の大きさを変更
	repeat			;繰り返し
	redraw 2		;画面には何も描かない
	color 255,255,255:boxf	;白色で画面を塗りつぶす
	color 0,255,0:boxf 100,0,200,200	;緑の壁を作る
	color 0,0,0		;描画色を黒にする
	pos cnt,0		;X座標cntY座標0に
	print "あ"		;あ と表示
	if cnt>100:stop		;cntが100より大きかったらストップ
	redraw 1		;一気に描画
	wait 1			;待つ
	loop			;repeatヘ戻る

 
     今度は さっきのやつに緑色の壁(?)を作って
     あ が壁に当たると止まるというプログラムです(あ もパチパチしません)
     説明
     screen 0,200,200はウインドウを横200縦200の大きさにしたのです
     redraw 2 と redraw 1 は恒例(こうれい)のやつだな(パチパチ防止策じゃ)
     color 0,255,0:boxf 100,0,200,200 は まずcolor 0,255,0は描画色を緑色にします
     それからboxf 100,0,200,200で四角の左上が100の0で
     右下が200の200まで描画色(今は緑)で四角く塗りつぶしてくれます
     
     実行すると こうなりまあす 
     ほらね ちゃんと壁ができてるでしょ 
     でもって あ が右へ動いて壁にぶつかると止まりまーす
     でも問題が・・・posでの文字の位置は その文字の左上の座標なんだ
     だから つまり文字(あ)の左側が緑色の壁に入る
        所で止まっちゃうんだ
     
     こんな感じに
      まぁちょっと多めに見てね(;;;;^^;;;;;)
     何なら自分でプログラムを書き換えてみてね
 

戻る コウザへ ホームへ 次へ