いつも似たパターンの挨拶ですいません。
っと本題本題。
STG製作もだいぶ落ち着いて新しく「ホーミング(追尾)弾の出し方」を追加しようかと
思ったのですが、思うように・・・いや、どのように作ればいいかさえわからりません。
ググッたり、調べてたらよさそうなページがありました。
http://hspdev-wiki.net/?%C4%C9%C0%D7%C3%C6
こちらにあります「homing.hsp」っというのが参考になり
改造すれば使えそうな気がします。
しかし見たことがない宣言ばかりでわかりずらかったです・・・
(コメつけたりとか、改造して理解に勤めて中)
一応ホーミングの作り方を自分なりに考えてみました。
・敵と弾の 距離を測る
・その距離をマイナスしていく
・ぶつかったら当たり
こんな感じです・・・
どうやったら「ホーミング(追尾)弾」を作れますでしょうか?
それではよろしく願いします。
あがいてサンプルプログラム書いてみる。
(; 22行からのコメントのところは「ホーミング(追尾)弾」追加しようとしているところ。
--プログラム---
screen 0,320,400 myx = 100 : myy = 330 ;自機の座標 mySpd = 2 ;自機のスピード mytm = 0 ;自機弾 0:発射していない 1:発射している mytmx = 0 : mytmy = 0 ;自機弾の座標 enemy = 0 ;敵の存在 0:いない 1:いる emx = 0 : emy = 0 ;敵の座標 ;****************メインループ************************* *main redraw 2 : color 20,20,20 : boxf gosub *KEYCHK ;自機の移動 gosub *TEKI ;敵機の処理 gosub *TMCHK ;弾の移動 gmode 2 pos myx,myy color 0,255,0 mes "自" ;自機の表示 if enemy : pos emx,emy : color 255,0,0 : mes"敵" ;敵の表示 if mytm=1 : pos mytmx,mytmy : color 0,255,255 : mes"弾" ;自機弾の表示 ;ホーミング(予定) ; dx = xt - tesu ;(相手-自分) (相手が自機,自分が弾) ; dy = yt - tesu ;(相手-自分) (相手が自機,自分が弾) ; if enemy = 0 : emx = x-7.0 : emy = 100.0 : enemy = 1 redraw :await 10 goto *main ;****************自機の移動*************************** *KEYCHK stick ky,15 if ky&1 : myx-=mySpd : if myx<0 : myx = 0 if ky&4 : myx+=mySpd : if myx>288 : myx = 288 if ky&2 : myy-=mySpd : if myy<0 : myy = 0 if ky&8 : myy+=mySpd : if myy>368 : myy = 368 return ;***************自機弾の移動************************** *TMCHK getkey key,90 ;キーチェック,Zキー if (key)&(mytm=0) : mytm = 1 : mytmx = myx : mytmy = myy-20 ;弾が出る場所 if mytm = 1 : mytmy-=10 ;進む方向と速さ if mytmy<-16 : mytm = 0 ;弾が端っこにいったら return ;****************敵の処理***************************** *TEKI if enemy = 0 : emx = 130 : emy = 0 : enemy = 1 if enemy : emy+=1 if emy>400 : emx = 0 : emy = 0 : enemy = 0 return