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

アバター
ニシサン ◆/gedPXYDcLpb
2018/3/29 13:16 ネタバレ
質問
だれか弾幕シューティングの作り方を最短で教えてケロ()
なんでもしませんから

コメント

アバター
キルル2 2018/3/29 17:41 ◆rGE712Ruejv7
いいよー
・入力を受け付けるのは1フレームにつき必ず1回
まずはこれだね
ループを作って、その中に
stickとbuttonを置こう
・スプライトを出す
次にこれ、最初はプレイヤーキャラを出すよ
さっき作ったループの上にspsetだ
さらに、ループの中にこれを置こう
spofs プレイヤー管理番号、X、Y
あとは入力に応じてXとYの値を変えるんだ
そしたらspcolをしよう
弾幕シューティングだから、あたり判定は小さめがいいよね(多分)
さあ次に敵を出すよ
spsetとspcolをしよう
これはループ内に書いた方がいいね
いっぱい出すんだもんね
ここでspfuncを使おう
なんたって敵は1体じゃない
敵が1体だとしても、飛び交う弾は明らかに1つじゃないので、spfuncが便利なんだ
ヘルプには上級者向けとか書いてあるけど、動きが分かれば誰だって使えるよ
これは言ってみれば、スプライトに「動きを覚えさせる」命令だ
具体的な使い方は
def 名前
動き
end
というプログラムをどこかに書いておいて、spfunc 管理番号、名前(文字列)
とするだけ
spfuncで覚えさせた動きは、ループ内にcall spriteと書くことで使える。これを忘れないこと
さて動きの部分に何を書くかというと、まずは
変数=callidx
だ。callidxはシステム変数であって、普段は-1だけど、call spriteをしたときだけ中身が変わるんだ。スプライト自身の管理番号が入っているよ
さらにspofs 管理番号 out で位置を取得しよう
例えば左に行くなら、x座標を引き算するだけでいいよね
現在地から(現在地+移動量)の位置まで毎フレーム動くというのが基本だ
行き過ぎたら消す処理も忘れずにね
というわけで次に敵が弾を撃つ処理だよ
敵の動きと同じ要領で、弾の動きを作ろう
とりあえずプレイヤーに向かって撃つだけにしとこう
ここでatan,sin,cosの3つの関数を使う
説明のためにプレイヤーの位置を(plx,ply)敵の位置を(x,y)とさせてもらうよ
まず変数=atan(ply-y,plx-x)と書くんだ
こうすることで敵からプレイヤーへの角度がラジアン値で取得できる。意味は理解できなくてもいい
ここで、予め用意していた2つの配列変数に、cos(変数)とsin(変数)を格納する
あとはspfuncしよう
また、弾の初期位置に注意
ちゃんと(x,y)の位置に移動しとこうね
アバター
キルル2 2018/3/29 17:44 ◆rGE712Ruejv7
これで弾を撃つ処理は完成
最後にあたり判定だ、sphitspでスプライト同士の衝突を判定できる
プレイヤー管理番号をpとすると
変数=sphitsp(p)でオッケーだ
この変数が-1じゃないときが衝突している(当たっている)ときだよ
簡単にゲームオーバーとか表示すれば良いね
ここまでで一連の流れは終わり
タイトル画面とかは無い
公開キーは【N3YDXEM3】
今回は敵が右から出てくるだけのものができたけど、ボスとの戦闘も欲しかったかな?
どんどん作って、改造して、自分だけのオリジナルを目指そう!

コメントを書く

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

- WEB PATIO -