スクリプト/汎用関数/自機狙い弾

最終投稿者:Cdv30200 aoi icon mini aoihikawa 更新:2011/08/30 09:45:55
自機狙い弾
(ご自由にご利用ください)

------------------------------

敵機から自機に向けて発射される弾の
X/Y方向の弾速を算出します。

自機と敵機を入れ替えることで
自機から指定ポイントへ発射する弾にも
応用可能です。

------------------------------

引数 自機X/Y座標・敵機X/Y座標・弾速
戻り値 X/Y方向の弾速

def jikinerai_tama(char_x, char_y, ememy_x, ememy_y, speed)
    r = 0; x = 0; y = 0
    if char_x == ememy_x
        if char_y > ememy_y
            y = (speed * (-1))
        elsif char_y < ememy_y
            y = speed
        end
    else
        r = (atan2((ememy_y - char_y), (ememy_x - char_x)))
        x = floor(cos(r) * speed)
        y = floor(sin(r) * speed)
    end
    ret_data = createArray()
    ret_data[0] = x
    ret_data[1] = y
    return ret_data
end


使用例
#自機の座標
char_x = 150
char_y = 250

#敵機の座標
ememy_x = 450
ememy_y = 350

#弾速
speed = 20

#X/Y方向の弾速の算出
ret_data = jikinerai_tama(char_x, char_y, ememy_x, ememy_y, speed)

#戻り値の展開
speed_x = ret_data[0]
speed_y = ret_data[1]


ご意見やご質問などありましたら
こちらのブログ記事まで。

コメントする

コメントするには、ログインする必要があります。

コメント一覧

コメントはありません。