我有一艘帆船的太空飛船。它有速度,ship.vx
和ship.vy
。當距離畫布邊框30px時,我將ship.vx
& ship.vy
設置爲0
,並將背景對象沿船舶的相反方向移動。此時該船被困在一個點上。這很好。現在,如果我嘗試它不因爲它是停留在vx
& vy
設置爲0
點移動它左右(stuck at top/bottom
)或自頂向下(stuck at left/right
)。運動超越的對象,帆布
如果我加速到相反的方向,它需要5秒來選擇它的速度(2左右),所以它基本上在同一點上持續5秒。
我試圖在x軸之外不設置vy
到0
,反之亦然,但是船在另一個軸上保持緩慢移動。
所以我試圖實現的是ship'll卡住時,它是從邊界30像素,但如果我嘗試移動或加速在其他3個方向它會假裝,如果它沒有卡住。
你們誰都知道任何機制?
謝謝。
function stuckShip(){
if(
(ship.x - ship.width < 0) ||
(ship.x + ship.width > w) ||
(ship.y + ship.height > h) ||
(ship.y - ship.height < 0))
{
ship.vx = 0;
ship.vy = 0;
}
}
function againAndAgain(){
var angle = ship.rotation;
var x = Math.cos(angle);
var y = Math.sin(angle);
var ax = x*thrust,
ay = y*thrust;
ship.vx += ax;
ship.vy += ay;
stuckShip();
ship.draw(context);
}
document.addEventListener('keydown', function(e){
switch(e.keyCode){
case 38:
thrust = 0.35;
break;
case 37:
ship.rotation -= 3;
break;
case 39:
ship.rotation += 3;
break;
}
}
我認爲沒有看到處理'ship.vx'和'ship.vy'的代碼,而是轉而移動背景對象,並且處理響應矢量變化的問題,人們將無法幫助您。 – 2013-03-25 07:58:47