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

アバター
Bunzo ◆HsAxFaeHQrUC
2019/8/5 15:29
質問
敵を逆方向から出現させる方法が思いつかない…
買うだけ買ってずっと遊ぶ専門だった私ですが、ようやくプログラムを書いてみようと決心。
ネット上に公開されている講座をほぼ丸写しという形で打ち込み、右からランダムな速度とタイミングで現れる敵をジャンプで躱すゲームプログラムを作る事が出来ました。
折角なので一定時間経過後に雰囲気を変えようと思い、
「30秒経過時点でBGMと背景色を変える」という事には成功したのですが、
「30秒経過時点で左からも敵を出現させる」という事の表現をどうしたものか、悩んで詰まってしまいました。

元プログラムはDIM命令でEX,EY,ESと配列変数を指定し、それぞれ敵のX座標、Y座標、移動速度の管理に充てています。
同時に敵の最大数を管理する変数EMXを指定し、これをEMX=FLOOR(CNT/500)
IF EMX>7 THEN EMX=7
FOR I=0 TO EMX
とする事で、時間経過に伴って出現数を増やし、また7体までに留めているご様子です。

…という事までは解るのですが、これに30秒経過後に逆方向から敵を出現させようと考えると、どうしていいかが分からなくなります。
EX,EY,ESをそのまま引用して負の数値にするだけでは全部が左から流れるようになるだけだろうし、文法エラーも発生してしまったので間違いだと言うのは解りますが、どうすればいいのかがわかりません。
左から出てくる敵用に新しく関数を用意するべきなのでしょうか?
分かりにくい質問で申し訳ありませんが、ご助力いただければ幸いです。

コメント

アバター
初心者 2019/8/5 16:08 ◆ULvuffpmw1rp
とりあえず公開キー下さい。
アバター
あんちもん 2019/8/5 16:18 ◆8qCJSJ1bKTIQ
敵の向きを決める変数を作って、左向きならEX=EX-ES、右向きなら出現位置を画面左外にしてEX=EX+ESというのはいかがでしょう

http://damedamepg3q.web.fc2.com/petSta_sp2.html
参考にされたのはこちらの講座かな?
アバター
RU-RA 2019/8/5 16:29 ◆WXDJqyOv9yBK
3号か4かを教えてください。もし3号だったらお手伝いできるかも、、、
アバター
高原のな 2019/8/5 17:03 ◆bY8RViwvoODw
プログラム全文を見ることができないので、そのプログラムの中身を推測しつつ……

敵が新たに右から登場するとき、初期値的なものとしてEX[?]に画面右端を示す値と、ES[?]に適当な値が設定されていると思います。これによって「最初は右端にいて、そのあと左に指定速度で移動する」ということが実現されていると推測します。
そこで、新たに左から登場させるときは、EX[?]に画面左端を示す値と、ES[?]に右端から登場させる時とはプラスマイナスを逆転させた値を入れてみたらどうでしょうか。これによって「最初は画面左端にいて、そのあと右(左の逆方向)に指定速度で移動する」ということが実現できそうです。また、このアプローチで実装すると、敵を移動させる部分や当たり判定の部分などは今まであった左に敵がやってくるコードの流用にできると思われます。

また、プログラムを表示した画面を撮影したものでもいいので実際のプログラムがあるといろんな方が答えやすくなると思うので、あると非常に助かります。
アバター
あきと 2019/8/5 17:22 ◆Q/mp.qcMuPYu
書いてる内容がかぶってますが…

配列を理解してEX,EY,ESという変数を操作するという所まで分かっているのであれば、まずは右から出現する敵が全部左から出現するように変更してみましょう。
敵が出現するタイミングでEX,EYに初期位置が、ESに進行方向が入るはずです。
EX,EYは右端の座標が入っていて、ESには左側に移動するためのマイナススピード値が入るはずです(EX=EX-ESかもしれないですが)

これを左から敵が来るようにするためにはEX,EYの初期位置を画面左の座標を入れるようにして、ESにはプラスのスピードを入れてあげることになります。
見た目も気にするのであれば敵の向きもSPCHRで変えてあげた方がいいですね。

そしてこの改造をする時には右から敵が出現する処理も「'」でコメントアウトして残しておきましょう。

全部の敵が左から出現するようになったら、最後にコメントアウトしていた右から敵がでる処理を戻しましょう。そして「何らかの方法」で左右バラバラに出現する敵を制御できればBunzoさんがやりたがっている出現方法になりますよ。

コメントを書く

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

- WEB PATIO -