1ピクセルめり込んでいるとみなして押し戻すというふうにする。接しているかどうか判定するのは難しいけれど、重なっているかどうかなら簡単。坂道の当たり判定を作っています。舌の根の乾かぬうちにってやつですね。CPlayer::Moveから除けたいのは、あたり判定(を直接呼び出している)部分。現状、座標補正によって、当たり判定の範囲外に移動するため、フレームごとにCPlayer::GroundFlagのオン/オフが繰り返される状況。キャラの足元にブロックがあるあいだ、CPlayer::GroundFlagがオンのまま維持されて欲しい。たしかにそれは言えている...。たしかにそうなんですよね...。回デバッグは投げ捨てるものではない。今までの質問でこれは学んだこと。質問する時は、必ずちゃんと調べた上に問題をもとにした仕様書を作ってから質問すること。仕様書の大切さを改めて思い知った...。坂道の当たり判定を作っています。No.67に書きました。CPlayer::Moveから除けたいのは、あたり判定(を直接呼び出している)部分。カオス過ぎていますぐそれはできないので、少しずつ改善しようとしているところ、ことごとく先回りして改善の芽を潰す。ある意味keito94さんの才能かもしれませんね。これ、いますぐやっちゃダメって読めないですかね。わたしの文章がおかしいのかな。あと、不思議な文言があるのに気づきました。上下の当たり判定で、めり込んで左の壁まで行ってしまいます。「左右の当たり判定の部分は完成した」?コードは完成していて、動作は理想と違うというのがkeito94さんの最終形なのでしょう。少なくともkeito94さんの態度が改まらない限りそこから変化しないと思います。keito94さんとわたしでは世界線が違う。keito94さんとわたしがやり取りを続けても収束しません。わたしがここ数回オフトピで投稿しているのはわたしの世界線を収束させるためのものです。坂道の当たり判定を作っています。2年前オフトピック坂道に沿って上り下りするというのは、キャラを基準に移動するだけでなくプラスアルファが必要。坂道を下るのは、補正に頼るとキャラが浮いてしまったりしてうまくない。#逆にそれが活きるデザインもあるが。坂道の上り下りの際は、キャラを主体ではなく客体とする。いうことかと言うと...・坂に入ったら、キャラは見えない動く床に乗った状態になる・ユーザーの操作で動くのは見えない床で、キャラはその床に対して位置を保ちつつ、その場で足踏み・坂道の端を超えて移動するあるいは途中でジャンプするなど坂道を離れたら、見えない動く床は消滅し、キャラは通常運転に戻るという具合。これも方法の一つに過ぎず正解というものではない。坂道の当たり判定を作っています。2年前すいませんでした...。正確には当たり判定のコード自体は完成していたのですが、なかなか理想通りの動きになりません...。したら、理想通りの動き(地上にいるときだけGroundFlagがtrueになったまま)になるのでしょうか?デバッグは投げ捨てるものではない。今までの質問でこれは学んだこと。質問する時は、必ずちゃんと調べた上に問題をもとにした仕様書を作ってから質問すること。仕様書の大切さを改めて思い知った...。坂道の当たり判定を作っています。0.1f);}block.xは、左端のブロックを0番目として右へ何個目かという数値が入ってます。*myxは、キャラの中心のX座標がピクセル単位で入ってます。理想通りの動きになりません...。したら、理想通りの動き(地上にいるときだけGroundFlagがtrueになったまま)になるのでしょうか?どうすればいいか(あるいはそのためのヒント)は既にNo.98,No.101に(さらにそれ以降も)書きました。したらkeito94さんが理解できるかはわたしには分かりません。坂道の当たり判定を作っています。2年前ISLeさんのご指摘を受けて、ブロックの単位ではなく、座標で判定して見るようにしてみました。新たなバグが発生してしまいました...。実行すると、着地せずに画面外に落下します。回デバッグは投げ捨てるものではない。今までの質問でこれは学んだこと。質問する時は、必ずちゃんと調べた上に問題をもとにした仕様書を作ってから質問すること。仕様書の大切さを改めて思い知った...。坂道の当たり判定を作っています。ISLeさんのご指摘を受けて、ブロックの単位ではなく、座標で判定して見るようにしてみました。新たなバグが発生してしまいました...。実行すると、着地せずに画面外に落下します。デバッグすれば、CCollision::GetXPositionでもCCollision::GetYPositionでも、ifの条件が両方同時に成立していることが確認できるはずですが。このコードでは、画面外に消えるのが正常。keito94さんは、トピにしてもコードにしても見直すのがめんどうくさいのでしょうか。デバッグするのもめんどうくさいですか?もしそうなら、プログラミングが好きではないのでしょう。好きでもないのにプログラミングするのはつらいだけなのでやめたほうがいい。仕事でないならプログラミングできなくて困るわけでもないでしょう。あと、ゲームを好きでもないのにゲームを作ろうとするのもやめたほうがいい。キャラをどう動かしていいか分からない、のでなくて、そもそもキャラがどう動くか知らないでしょう。プログラミングできなくても既存ゲームをプレイして研究するとかはできますよね。ゲームをプレイするのはめんどうくさいですか?自分の作ってるゲームがどう動いているかにも興味ないですものね。坂道の当たり判定を作っています。2年前ブロックの座標で当たり判定を実装しようとしています。現在考えているのは、衝突したら一ブロックずらした座標で判定するということです。(キャラの座標が中央基準なので...。)ですが、地上に着地せずにめり込んで左に移動してしまいます。左右の判定は一応完成しました。回デバッグは投げ捨てるものではない。今までの質問でこれは学んだこと。質問する時は、必ずちゃんと調べた上に問題をもとにした仕様書を作ってから質問すること。仕様書の大切さを改めて思い知った...。坂道の当たり判定を作っています。現在考えているのは、衝突したら一ブロックずらした座標で判定するということです。(キャラの座標が中央基準なので...。)ですが、地上に着地せずにめり込んで左に移動してしまいます。ブロックが等間隔に並んでいることが前提条件になりますよね。ブロックが等間隔に並んでいないといけなくするメリットって何でしょう。オフトピックむしろ、坂道を実装するには邪魔になりそうな前提条件は排除していきたいが。そもそも、衝突したブロックの左にあるブロックがキャラより左にあって、衝突したブロックの右にあるブロックがキャラより右にある、というのは当たり前。こちらも同時に成立する条件。あいだにelseを入れたので、前回は常に右へ下へだったのが、今回は常に左へ上へとなった。本質的に何も変わってない。左右の判定は一応完成しました。