HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
1210
スーパー正男壁の当たり判定6未解決


スーパー正男

リンク

2012/12/10(Mon) 19:15:20|NO.51080

壁の当たり判定のやり方教えてください
毎ループ位置座標を記録して、当たり判定が出たら座標を記録したものに戻す、
というほうほうで試したんですが、それだと複数キー入力しているときも動かなくなってしまいます。

壁や由佳の当たり判定を書くときの定石教えてください



この記事に返信する


ppr

リンク

2012/12/10(Mon) 20:31:03|NO.51081

dim data,x,y ←?



KA

リンク

2012/12/10(Mon) 20:39:07|NO.51082

>>複数キー入力しているときも動かなくなってしまいます

複数押さなければ解決?



フワット・ベベ

リンク

2012/12/10(Mon) 23:33:09|NO.51085

 解答とは違いますが、私は違う当たり判定にしてるのでコメントします。
 私自身は、まだHSPを勉強中の身ですが・・・。

◇マップ型アクションゲームのオリジナルを作っているのですが、キャラの
周辺座標を、常に調べる変数を用意しています。止まっている時も有効にし
ています。
◆キャラを正方形としたら、正方形の『外』の上下左右に当たり判定となる
変数を作ります。 そこの変数が壁だったら、その方向には移動しない様に
しています。
 常に当たり判定用の変数を用意しているので、キャラが止まっている時も
有効です。その分、プログラム自体はちょっと増えるかもしれませんが・・・。



GENKI

リンク

2012/12/10(Mon) 23:34:09|NO.51086

> 毎ループ位置座標を記録して、当たり判定が出たら座標を記録したものに戻す、

これだけ聞くとおおむね問題ないような気がします。
問題はこのとおりにちゃんと実装できているか、じゃないかなという気がします。
このへん確認は変数の値を「衝突する少し前から衝突後少し後まで」地道に追いかけていくと原因が分かります。
・変数の内容をきちんと書きだして残していく。
・座標データは図を書いて点を打っていき動きを追いかける。
・先入観なしでちゃんと数字を追いかける。(「絶対ミスしてる」と思ってやるとなおよし。)
とかするとよく分かります。



> というほうほうで試したんですが、それだと複数キー入力しているときも動かなくなってしまいます。

すみません。状況がよく理解できませんでした。
もう少しわかりやすく説明いただけないでしょうか。


> 壁や由佳の当たり判定を書くときの定石教えてください

まずどの人が由佳さんなのか判別するところから…いやいや「床」ですよね。
定石は状況によっていろいろですが、「衝突を検出したら衝突しないところ(あるいは方向)に移動する」がほぼ共通したところだと思います。
具体的には状況によっていろいろな手法があります。
スーパー正男さんが作ろうとしている物がどんな状況なのか分からないのでオススメを選ぶのが難しい状態です。



ppr

リンク

2012/12/11(Tue) 21:37:42|NO.51091




@key

リンク

2012/12/12(Wed) 17:32:06|NO.51099

自分の経験で分けて説明してみる

1,pprさんのような、マップごとに動く
 これは>>毎ループ位置座標を記録して、当たり判定が出たら座標を記録したものに戻す
 の方法をちゃんと書けば大丈夫です(pprさんのソースは2の方法だと思います)

2,シューティングのような、マップに縛られず速度が整数で座標も整数の場合
 これは基本的にフワット・べべさんの方法が定石だと思っています

3,マリオのような、重力とか左右加速度とかを使う、速度や座標も字数の場合
 これはかなり面倒くさいです
 基本はフワット・べべさんの方法なのですが、簡単に作ると床にあたった時ピタっととまらずカクっと落ちます
 これは実際作って初めてわかります・・・自分もかなり予想外の壁でした
 しっかり着地するには下加速度の切り上げでループしてドットごとに判定を行う方法を使っています



ONION software Copyright 1997-2023(c) All rights reserved.