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

アバター
bはかせ ◆fgfPl6qLuzIU
2018/9/30 1:30
質問
段差を超えたい
グラフィック系命令を使った
アクションゲームを制作していて、
キャラクターの足下くらいの壁なら乗り越えられるよう
処理を考えてみたのですが、
なんとも良い方法が浮かばないので助けを借りたいです

公開キー:2D5438QV

コメント

アバター
bはかせ 2018/9/30 1:35 ◆fgfPl6qLuzIU
ちなみにキャラクターの当たり判定は
キャラクターの下と右と左、
それぞれ両端と真ん中の三点で取得しています。

GSPOITで1ドットずつ調べるしかないのですが、
乗り越えられる段差かどうかを調べる処理を考えてると
どうしても長ったらしいプログラムになってしまい
もっと短いのが組めないかなと思いました
アバター
bはかせ 2018/9/30 1:36 ◆fgfPl6qLuzIU
似通った変数とかを多用しているので
プログラムが読みにくいかもしれません
移動のところに、自分が段差を乗り越えるプログラムを
組もうとして途中でよくわかんなくなってやめた痕跡が
残っていますが消し忘れです

ちなみに高いところから落ちた時に流れてくる数字は
ダメージ表示なので気にしなくていいです
アバター
こういち 2018/9/30 9:12 ◆ou0jbJnEJ0Kb
段差以前に処理落ちが凄い…
高速化しなきゃ。(使命感)
IF R4+R5+R6==0 THEN

IF !(R4||R5||R6) THEN
の方が速い。
そもそもGCLSとGPUTCHARが重い。
画面外は描画しないとかGOFS使うとかの工夫が必要かもしれません。
アバター
bはかせ 2018/9/30 9:46 ◆fgfPl6qLuzIU
やっぱり処理落ちしてましたか...
new環境なので気付きませんでした。

GOFSってイマイチ使い方がわからないんですが
どういう風に使えばいいのでしょうか?
アバター
こういち 2018/9/30 10:03 ◆ou0jbJnEJ0Kb
グラフィック画面を400*240のスプライトみたいに見なしてグラフィック画面ごと移動させる感じです。
VAR GX,GY
VAR SX,SY
GFILL 0,0,-10,-10
WHILE 1
 WAIT 1
 STICK OUT SX,SY
 GX=GX+SX
 GY=GY-SY
 GOFS GX,GY
 GPSET 200,120
WEND
を実行すれば何となく分かるはず。
アバター
bはかせ 2018/9/30 12:00 ◆fgfPl6qLuzIU
多分画面外は表示しないようできたはずです
速くなっているでしょうか...?
公開キー:2D5438QV

画面から上にはみだした部分は
その分空READをしてとばすという荒業を使っているので
バグが発生してるかもしれませんね...
アバター
こういち 2018/9/30 15:03 ◆ou0jbJnEJ0Kb
多分大分速くなってますが、まだチカチカします。
アバター
キルル2 2018/10/3 20:52 ◆rGE712Ruejv7
ある程度の段差は越えたい
でも、ある程度以上の段差は越えたくない
であれば、右下左下の1点を調べ、壁だと分かった段階で「ある程度以上の段差なのか」調べる必要があります
それはつまり、ある1点から「ある程度」の長さだけ上に壁があるかないか連続で判定することに他なりません
判定すること自体はこれでいけるでしょう
簡単に、「指定した点から指定した長さだけ上に連続で壁があるか調べて、1か0を返す関数」を作るのが良さげ

高速化についてですが、予め
GCLIP 0,0,400,240を(1回だけ)やっておくとGCLSも速くなるし、画面外の描画も行われなくなるので多少は効果があるかと

コメントを書く

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

- WEB PATIO -