プチコン3号 SmileBASIC コミュニティ投稿マネマネ KASURR2015/01/19 18:37:13この、4~6行目のミイラのスプライトに、7~9行目の赤色の人が当たったら、@ラベルを使って戦闘シーンに入る...そんなプログラムは、どうやるんですか??2そうだね 3返信プレイ済み2017/11/04 00:09:45に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿まーくん MARK65022015/1/19 18:57衝突判定ですね。 ミイラがスプライト1、勇者がスプライト0の様ですが、 一つは、各々の位置を変数で持つことになると思うので、その位置にスプライトのサイズ分のエリア同士が重なったかどうかをプログラムで判断する方法。 もう一つは、SPHITというスプライトの判定命令を使う方法があります。 それをWHILEループの移動処理の中に入れることになります。 またプログラムでは毎回スプライトの位置を読みだして書き換えていますが、SPANIMでスプライトの自動移動をしなければ、座標は変わらないので、読みださずに、セットだけしてやればよいです。1そうだね プレイ済み2017/11/04 00:09:45に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿マネマネ KASURR2015/1/19 19:44初心者なので、あまり意味がわかりません。もうすこし詳しくお願いします!!( ~行目に~~~~を入れる などと、やっていただくと嬉しいです)2そうだね プレイ済み2017/11/04 00:09:45に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿まーくん MARK65022015/1/22 19:45回答が遅くなりました。 IF文で各々の領域が重なっていることを判定するのは考えていただくとして、SPRITEの衝突を検出する手順を簡単に書いておきます。 9行目の下に SPCOL 0,0,0,16,16,1 と言うように、勇者のSPRITEに対する衝突範囲の定義をしておきます。 WHILEループの最後に、 IF SPHITSP(0,1) THEN @SENTO と言うように記述してやると、SPRITE 0と1が衝突検出されると@SENTOに制御が移ります。 1そうだね プレイ済み2017/11/04 00:09:45に取得