コンテキスト: 私は人気ゲームのバージョンを作成しています。そして、私がヘビの部分の同じ場所で食べ物の出現を避けようとするとき、私はいくつかの問題に遭遇する。スクリプトが実行されているときにGoogle Chromeがフリーズする
だから私は、フレームワークのフェイザーでこのコードを生成:
generateFood: function() {
var randomX, randomY;
var rightLocation = false;
var foodOnSnake = false;
while(rightLocation === false) {
randomX = Math.floor(Math.random() * (this.game.width/squareSize)) * squareSize;
randomY = Math.floor(Math.random() * (this.game.height/squareSize)) * squareSize;
foodOnSnake = false;
for (var i = 0; i < snake.length; i++) {
if (snake[i].x === food.x && snake[i].y === food.y) {
foodOnSnake = true;
break;
}
}
if(foodOnSnake === false) {
rightLocation = true;
}
}
food = this.game.add.sprite(randomX, randomY, 'snake', 15);
}
狙い、ゲーム上のいくつかのランダムな座標を作成することです。そして、蛇の部分(forループ)で食べ物が生成されている間に、私は他の座標を生成します。しかし、知られていない理由で、私のヘビが最初の食べ物を食べた後、ゲームがクラッシュし、Google Chromeのタブが反応しません。 ループの間違いがあると思うが、見つけられない。
ここには宣言されていないオブジェクト/変数があります。 –
さらに多くの定義、特にスネークを追加してください。 –
ここでは、 'food = this.game.add.sprite(randomX、randomY、 'snake'、15);に関係なく実行します。 。 –