2014-01-21 41 views
1

我不能为我的生活找出为什么我的ball.x在每次调用动画函数时都不会增加0.2?我做了一个工作正常,只是自动增加,但我希望这个增加,当你按左或右。有任何想法吗??Javascript/jquery速度程序代码不会增加

<script> 
var canvas; 
var context; 
var canvasWidth; 
var canvasHeight; 
var ball = new Ball(); 
ball.radius = 15; 
var vx = 0; 
var ax = 0; 
var keyPressed; 

$(document).ready(function() { 
    canvas = $("#myCanvas"); 
    context = canvas.get(0).getContext("2d"); 
    canvasWidth = canvas.width(); 
    canvasHeight = canvas.height();  
    animate(); 
}); 

function checkKeys(e) { 
    keyPressed = e.keyCode; 
    console.log(keyPressed);  
    if(keyPressed == 37) 
    { 
     ax = -0.2; 
    } 
    if(keyPressed == 39) 
    { 
     ax = 0.2; 
    }  
} 



function animate() { 
    window.requestAnimationFrame(animate, canvas); 
    draw(); 
    //console.log(vx); 
}; 



function draw() { 
    context.clearRect(0,0,canvasWidth, canvasHeight); 
    ball.y = canvasHeight/2; 
    ball.x = canvasWidth/2; 
    vx = vx + ax; 
    ball.x = ball.x + vx; 
    console.log(ball.x);  
    ball.draw(context);        
} 


    </script> 
</head> 

+0

你必须在checkKeys函数中使用+ =和 - =,而不仅仅是“=”! – rikpg

+0

@rikpg编号引用BenParsons:这不相关,因为他在绘图函数中使用ax来影响vx。 – Stijn

回答

1

看来你是不是叫checkKeys() - 你在哪里希望这个从叫?

+0

当我按下键时,球对象向左或向右移动,它只停留在0.2,所以我不认为我必须在其他地方调用checkKeys()。 – user1180888