Ben bir oyun var ve bir duvara vurmak arabamı almaya çalışıyorum. Arama yapmayı denedim ve aşağıda göreceğiniz gibi birkaç şey denedim, neden işe yaramayacağımı bilmiyorum. Benim update
işlevinde SonraNeden çarpışma algılamam Phaser'da çalışmıyor? Kolaylık olması açısından
create: function() {
game.physics.startSystem(Phaser.Physics.ARCADE);
this.carSprite = game.add.sprite(game.world.centerX, game.world.centerY, 'car');
game.physics.arcade.enable(this.carSprite);
this.timer = game.time.events.loop(300,
this.addRoad, this);
}
:
update: function() {
game.physics.arcade.overlap(this.carSprite, this.wallSprite, this.scoring, null, this);
}
böyle wallSprite
oluşturma:
addOneRoadSection: function (x, y) {
this.scoreCalculator += 1;
if (this.scoreCalculator == 10) {
this.scoreCalculator = 0;
this.wallSprite = game.add.sprite(x + 100, y, 'wall');
game.physics.arcade.enable(this.wallSprite);
this.wallAnimation = this.wallSprite .animations.add('wallAnimation');
this.wallSprite.animations.play('wallAnimation', 30, true);
this.wallSprite.body.velocity.y = 100;
this.wallSprite.checkWorldBounds = true;
this.wallSprite.outOfBoundsKill = true;
}
}
Buradayım
benimcreate
işlevinde kodudur
addOneRoadSection
'u şu şekilde çağırıyor:
addRoad: function() {
this.addOneRoadSection(this.xValue, 0);
}
addRoad
this.timer
kullanılarak create
olarak adlandırılan edilmektedir.
Özetle, bunun ne yaptığı, scoreCalculator
on olduğu zaman, bir duvar eklemesidir. Bu iyi çalışıyor, duvar iyi animasyonlu, ancak çarpışma tespiti hiç çalışmıyor.
if
bildiriminin içindeki kodu create
işlevimin içine taşımayı denedim ve çakışma algılamasıyla iyi çalışıyor (ancak başka şeyler kırılıyor, böylece orayı orada tutamıyorum). Neyi yanlış yapıyorum? this.wallSprite
'u her saniyede bir araya geldiğimden beri, this.wallSprite
olarak eklenmiş olan yeni sprite tarafından üzerine yazıldığına şüphe duyuyorum ama bunun nasıl yapması gerektiğinden tam olarak emin değilim.