初めての戦闘アニメ
これもふと思い立ち、初めて自作戦闘アニメに手を出してみることに。
どんな戦闘アニメかと聞かれれば、某金ピカことギルのゲートオブバビロンっぽいのを作ってます。
具体的に言えば、ユニットの背後にランダムで武器を並べ、それを射出するというもの。アーチャーや士郎にも使えます。
いまのところ単体用とMAP用の二種類を製作中。どちらも準備はできてます。
やっぱこういうのは楽しまなきゃ駄目ですよね。
で、これも完成したらインクルリズムに丸投げします。
ついでに試作品を晒しときます。そのままじゃ動かないのでそこらへんはご注意を。
以下、ソース。
戦闘アニメ_刀剣掃射準備: Local i exi j temp # 自分を中心とした相手の位置を角度で返す deg = getDegree(対象ユニットID, 相手ユニットID) # 対象ユニットの使用武器を取得 Local weapon = 対象ユニット使用武器 # 連の属性レベルを取得 Local num = Info("ユニット", 対象ユニットID, "武器", weapon, "属性レベル", "連") # 連が無ければ最大射程で代用 If num = 0 Then num = Info("ユニット", 対象ユニットID, "武器", weapon, "最大射程") Endif # ユニット間の角度を取得 Local deg = getDegree(対象ユニットID, 相手ユニットID) # 刀剣展開範囲を取得 Local range range[1] = IIf((deg + 90) > 359, (deg - 270), (deg + 90)) range[2] = IIf((deg - 90) < 0, (deg + 270), (deg - 90)) # 表示する武器画像名と表示位置を決定する Local ShowList coun deg2 DisX DisY coun = 0 For i = 1 to num # 対象ユニットを中心とした武器表示位置の角度を算出 deg2 = 180 / (num + 1) * i + range[1] deg2 = 3.141592 * deg2 / 180 DisX = Cos(deg2) * 32 DisY = Sin(deg2) * -32 temp = AppPath & "Bitmap\Anime\Weapon\" & 表示武器ランダム決定() ShowList[i] = List(temp, DisX, DisY) Next # 表示位置を決定 Local BX BY BX = WX() BY = WY() # 基準点を修正 BaseX = BaseX + BX BaseY = BaseY + BY # 武器を一斉に出現させる Local rad = -135 + deg PlaySound "BeamSaber.wav" For i = -1 to 1 ClearPicture Wait Start For j = 1 to num temp = ShowList[j] PaintPicture LIndex(temp, 1) (LIndex(temp, 2) + Abs(i)) (LIndex(temp, 3) + Abs(i)) 32 32 - - "左回転" rad "透過" Next Refresh Wait Until 0.5 Next Wait Click Wait 5 # 基準点を修正 BaseX = BaseX - BX BaseY = BaseY - BY Return "KEEP"