我想知道如何使用移相器进行双跳。
this.jumpCount = 0;
this.jumpkey = game.input.keyboard.addKey(Phaser.Keyboard.UP);
this.jumpkey.onDown.add(jumpCheck, this);
jumpCheck = function(){
if (player.jumpCount < 2){
player.jump();
player.jumpCount ++;
}
}
我已经尝试过了,但它没有用,我也不太明白this.
这个词的含义。
这是我的新代码。它可以双跳,但我的玩家可以&#34;飞&#34;有三倍,四倍等跳跃,我真的不知道为什么。 你能帮帮我吗?
//jump
var jumpCount = 0;
var jumpKey = game.input.keyboard.addKey(Phaser.Keyboard.UP);
jumpKey.onDown.add(jumpCheck);
function jumpCheck() {
if((jumpCount < 1) && (player.body.touching.down)){
jump1();
console.log("jumpCount =" + jumpCount);
console.log("Vitesse ="+ player.body.velocity.y);
// attention, remettre jumpCount à zéro si on touche le sol
// if(player.body.touching.down){
// jumpCount = 0;
// }
}
//double jump
if((jumpCount < 2) && (!player.body.touching.down)){
jump2();
console.log("jumpCount =" + jumpCount);
console.log("Vitesse ="+ player.body.velocity.y);
}
}
function jump1(){
console.log("jump1");
jumpCount ++;
player.body.velocity.y = -250;
}
function jump2(){
console.log("jump2");
jumpCount ++;
player.body.velocity.y = -150;
}
chrome控制台总是向我发送jumpCount = 1。
答案 0 :(得分:0)
如果您没有将函数称为函数或将var置于其前面,则不会真正创建函数。这意味着你至少可以改变它:
var jumpCheck = function() { /*jumping code*/ };
然后解释'这个'。 '这个'有点难以解释,通过使用它来开始理解它更容易。它在您的情况下(和大多数情况下)引用对象内的变量。假设我们有这个代码:
var x, y;
function Location(x, y) {
this.x = x;
this.y = y;
};
我刚刚创建的是两个全局变量和一个函数,我们可以使用它们简单地变成一个对象:
var point = new Location(100, 100);
//and I will change the global variables as well.
x = 200; y = 150;
这就是显示的地方,我想改变点的x。但是,我们刚刚更改了全局x,那么怎么做呢?很简单,通过从对象内部调用它,这确保它只在该对象内部发生变化。
point.x = 150;
//this makes sure that x = 200; point.x = 150;
如果我要制作更多的物品
var point2 = new Location(300, 200);
不更改点对象内的变量x。 那么在你的例子中它做了什么?它将jumpCount绑定到播放器对象,这意味着它只能通过专门调用player.jumpCount来更改。正如我所说,这很难理解,但至少应该确保你知道这个的基础知识。
答案 1 :(得分:0)
以下是Double Jump
的示例程序