0

シンプルなフラッシュゲームを作っています。今のところ、キャラクターのコントロールをコーディングしています。地面と壁との衝突をキャラクターに追加しましたが、天井との衝突をうまく追加できず、キャラクターが天井を飛び越えます。私を手伝ってくれますか?ありがとうございました。

これがコードの一部です。私が試したことは次のとおりです。

      if(space){
                            if(myCollisionsList.checkCollisions().length > 0) {
                                if (hitTestPoint(hero.x + 28, hero.y, true)){
/////////////////////////////////////////////////////////////////////////////////////
                            //here I need to add any code for character's collision with the ceiling.
/////////////////////////////////////////////////////////////////////////////////////

Hero.y_speed = 0; // これは役に立たない

                        }else{
                            Hero.y_speed = -jumpspeed;
   }

すべてのステージ、キャラクターとの衝突のための壁を保持する myCollisionsList を作成しました。このメソッドは、キャラクターが壁に触れたときにキャラクターの x_speed を「0」に設定しただけなので、キャラクターが右または左に移動しているときに衝突に対して機能します。しかし、天井に触れたときにどうすればそれを止めることができますか? キャラクターの y_speed を「0」に設定しても役に立ちません。

画像は現在何が起こっているかを説明しています: ジャンピング

4

1 に答える 1

0

衝突のために、キャラクターを長方形に置き換え、この長方形と myCollisionsList 内のすべてとの間の距離をテストします。これは非常に単純な解決策ですが、長方形の場合は完璧です。速度が遅い場合は、ピクセル パーフェクト コリジョンを使用できます。たとえば、http ://www.freeactionscript.com/2011/08/as3-pixel-perfect-collision-detection/ を確認してください。

于 2013-09-16T15:31:25.020 に答える