HSP あたり判定
こんにちは初めまして。
現在「HSP」でSTG(シューテングゲーム)を作っております。
当たり判定がいまいち反応が悪くって困っております。
原因がわかる方いましたらよろしくお願いいたします。
●解決したいこと【当たり判定がちゃんと綺麗に処理される】
プログラム
--------------------------------------------------
screen 0,380,450
buffer 1
// picload "自機.bmp"
gsel 0,1
buffer 2
// picload "敵.bmp"
gsel 0,1
myx = 150 : myy = 350 ;自機の座標
mySpd = 5 ;自機スピード
;←弾
TM_SPD(0) = 5 ;自機弾のスピード(5)
TM_CO(0) = 0 ;自機弾のカウンターの初期化(連射間隔を調整)
TM_WAIT(0) = 10 ;連射間隔(10)
;→弾
TM_SPD(1) = 5 ;自機弾のスピード(5)
TM_CO(1) = 0 ;自機弾のカウンターの初期化(連射間隔を調整)
TM_WAIT(1) = 10 ;連射間隔(10)
MYTMMAX = 7 ;自機弾の最大数
repeat MYTMMAX ;自機弾の最大数(7)
;←弾
mytm.cnt = 0 ;自機弾フラグ
mytmx.cnt = 0 : mytmy.cnt = 0 ;自機弾の座標
;→弾
mytm2.cnt = 0 ;自機弾フラグ
mytmx2.cnt = 0 : mytmy2.cnt = 0 ;自機弾の座標
loop
;敵
TKMAX = 7 ;敵の最大数
repeat TKMAX ;敵の最大数(7)
enemy.cnt= 0 ;敵フラグ
emx.cnt = 0 : emy.cnt = 0 ;敵の座標
loop
;****************メインループ*************************
*メイン
redraw 2 : color 20,20,20 : boxf
;敵
gosub *敵機の処理
;自機
gosub *自機の移動
gosub *自機の←弾
gosub *自機の→弾
;当たり判定
gosub *敵VS弾
;自機
pos myx,myy : gmode 2,29,42,255 : gcopy 1,1,0
;敵
repeat TKMAX ;敵の最大数(7)
if enemy.cnt = 1 : pos emx.cnt,emy.cnt : gmode 2,26,22,255 : gcopy 2,1,1
loop
;自機弾
repeat MYTMMAX ;自機弾の最大数(7)
;←弾
if mytm.cnt = 1 {
pos mytmx.cnt,mytmy.cnt
gmode 2,9,8,255 : gcopy 1,1,43
}
;→弾
if mytm2.cnt = 1 {
pos mytmx2.cnt,mytmy2.cnt
gmode 2,9,8,255 : gcopy 1,1,43
}loop
redraw : await 10
goto*メイン
お礼
平行四辺形ではなく回転した四角形です。 すいません私の説明不足でした。 でも参考サイトに回転した四角形同士の当たり判定についての説明があったので、そちらを読んで勉強できそうです。 どうもありがとうございました。