HSP 自機狙い
こんにちは。HSPでSTGを制作しております
まず「自機狙い」を作ることに成功しました
ですが2つ弾を用意した場合、エラーが出てしまいます(異なる形を持つ配列変数に代入しました)
原因を探ってみたのですがいまいちわからない状態です
ちなみに「ene(0)」「ene(1)」となっているのは後でまとめるからです。
何故まとめるかというと、「ene」「ene1」「ene2」・・・と単純に張り付けするとソースが大きくなるからです。
どこの何が原因でこのようなエラーが出るのかわかる方いましたら教えてください
--ソース--
screen 0,380,450
buffer 1
picload "自機.bmp"
gsel 0,1
buffer 3
picload "でかい妖精2.bmp"
gsel 0
buffer 4
picload "青色.bmp"
gsel 0
;自機座標
myx = 150 : myy = 200
;敵
ene(0) = 0 ;フラグ
enex(0) = 0 : eney(0) = 0 ;座標
ene(1) = 0 ;フラグ
enex(1) = 0 : eney(1) = 0 ;座標
;敵弾
TM(0) = 0 ;フラグ
TMX(0) = 0 : TMY(0) = 0 ;座標
TM(1) = 0 ;フラグ
TMX(1) = 0 : TMY(1) = 0 ;座標
;****************メインループ***********
*メイン
redraw 0 : color 20,20,20 : boxf
;自機
gosub *敵弾処理
;敵
gosub *敵
;自機
pos myx,myy : gmode 4,29,42,255 : gcopy 1,1,0
;敵
if ene(0) = 1 : pos enex(0),eney(0) : gmode 4,58,45,255 : gcopy 3,0,0
if ene(1) = 1 : pos enex(1),eney(1) : gmode 4,58,45,255 : gcopy 3,0,0
;敵弾
if TM(0) = 1 : pos TMX(0),TMY(0) : gmode 4,15,15,255 : gcopy 4,0,0
if TM(1) = 1 : pos TMX(1),TMY(1) : gmode 4,15,15,255 : gcopy 4,0,0
redraw 1 : await 1
goto *メイン
;*************敵弾処理******************
*敵弾処理
if TM(0) = 0 { ;敵弾フラグ
TMS = 2 ;敵弾速さ
;敵X座高
ENX(0) = 15
;敵Y座高
ENY(0) = 150
r = atan(myy-30 - ENY(0) , myx-13 - ENX(0))
DKxv(0) = cos(r) * TMS ;敵弾x移動量(2)
DKyv(0) = sin(r) * TMS ;敵弾y移動量(2)
TMX(0) = ENX(0)+20 : TMY(0) = ENY(0)+40 ;敵弾初期座標
TM(0) = 1 ;敵弾フラグ
}
if TM(0) = 1 { ;敵弾フラグ
TMX(0) = DKxv(0) + TMX(0) ;敵弾x軸座標指定
TMY(0) = DKyv(0) + TMY(0) ;敵弾x軸座標指定
if TMX(0) > 380 : TM(0) = 0
if TMX(0) < 0 : TM(0) = 0
if TMY(0) > 450 : TM(0) = 0
if TMY(0) < 0 : TM(0) = 0
;当たり判定
dx = myx+0 - TMX(0)
dy = myy+10 - TMY(0)
dx*=dx
dy*=dy
if(dx + dy <= 49){
TM(0) = 0 : HIT += 1
}
}
お礼
回答ありがとうございました。 おかげで、プログラムが、動くようになりました。
補足
回答ありがとうございます。 残っているなら、画像を大きく写すか文章にするか、してくれませんか? できるならでいいです。お願いします。