コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
キングスライム ◆eiufRL1MMe2M
2018/12/30 12:06
質問
格闘ゲーム
プチコンについて、
CPUの行動パターンを作成中なのですが、二段ジャンプなどある一定の動作をさせたい場合はどうすれば良いでしょうか?spanimでは単純な動作しかできないでふ。あと、ミーバースがなくなってからみなさんはここに避難していらっしゃったのですね。

コメント

アバター
こういち 2018/12/30 13:42 ◆ou0jbJnEJ0Kb
単純な動作しか出来ない代わりに爆速なSPANIMに対して
そこそこ高速で、複雑な動きが出来るSPFUNCってのがあってだな。
(よく分かってない)
アバター
キングスライム 2018/12/30 14:04 ◆eiufRL1MMe2M
なるほど、SPFUNCですかー。
ちょっと試してみます。
アバター
たんじぇ 2019/1/1 13:28 ◆WDmFkVwZ4yMl
その辺になるともうプチコンの機能ではなくてプログラムの作りとか流れとかになっちゃうかも?

キャラ移動開始時にSPANIM で移動処理のぜんぶを指定して、SPANIMが終わる時間をSPANIMに指定した時間の値かSPCHKでチェックしてそうな感じなので、SPANIMを途中でやめたいならSPSTOPで止めてからSPOFS sp OUT x,y で止めた場所の座標を取得することはできます。

ジャンプみたいな放物線は SPANIMで指定はできないので、ジャンプをアニメーションしたい場合は、自分でアニメーション処理を書いた方が良いです。

コマンド入力完了時やCPU行動開始時にキャラ移動処理としてSPANIMだけを実行していて、1フレームごとのアニメーション用の処理がまだ無い場合、まずは1フレームごとにキャラを移動してアニメーションする処理を作る必要があります。

SPANIMに指定している横移動量と、ジャンプ用の速度変数や重力加速度定数などを用意して、アニメーション処理でジャンプ用の速度変数に重力加速度を加算して縦座標に速度変数を加算して位置を計算してSPOFSをする感じになります。

なお、SPFUNCを使うとたくさんのスプライトに同じ処理をしたり、スプライトの処理をメインの処理とは別に書けるので見やすくなったり書いたプログラムがわかりやすくなったりはします。
1キャラだけで使うとしても、キャラの状態変数や速度や移動量など変数を設定して、CALL SPRITEで呼び出されたらその変数の通りに移動だけする処理みたいなのにも使えます。


ちなみに、二段ジャンプの場合、通常ジャンプ処理で上方向の速度変数を初期化していますが、二段ジャンプ目にさらに速度変数をジャンプ開始時の値で初期化すれば、二段ジャンプになります。

CPU行動中に相手の行動をみて二段ジャンプするかどうかは、CPUロジックの作り方次第になっちゃうので、CPUがジャンプ中に相手が行動した場合、相手までの距離に応じて二段ジャンプ開始したりしなかったりとかになったりします。
アバター
キルル2 2019/1/21 23:26 ◆rGE712Ruejv7
spanim に取って代わる関数を自作するのが簡単な方法だと思います
spfuncは直接的な解決にならないかと

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -