2014-03-14 28 views
2

我正在搞一个简单的游戏。jQuery游戏 - 让飞行直升机更加流畅

我有一架直升机,用户可以上下飞行。

我已经得到了这个发生的基本代码工作正常(touchstart +举行直升机上升,释放它下降)。然而,这是非常“被动”的。如果你想让直升机沿直线前进,你需要快速点击屏幕,但是无论你的点击速度多快,直升机的移动速度都很快。

我需要一种运动方式来缓解上升和下降的开始,因此如果需要的话,直升机可以沿相当直线行进。

我的代码如下:

var speed = 1; 

function copter_touchstart(){ 
    clearInterval(fall); 
    fly = setInterval(start_fly, 2); 
} 

function copter_touchend(){ 
    clearInterval(fly); 
    fall = setInterval(start_fall, 2); 
} 

function start_fly(){ 
    var matrix = $helicopter.css('-webkit-transform').replace(/[^0-9\-.,]/g, '').split(','); 
    var y = matrix[5]; 
    var new_top = parseInt(y) - speed; 

    $helicopter.css('-webkit-transform', 'translate3d(0, '+ new_top +'px, 0)') 
} 

function start_fall(){ 
    var matrix = $helicopter.css('-webkit-transform').replace(/[^0-9\-.,]/g, '').split(','); 
    var y = matrix[5]; 
    var new_top = parseInt(y) + speed; 

    $helicopter.css('-webkit-transform', 'translate3d(0, '+ new_top +'px, 0)') 
} 

$body.on('touchstart', copter_touchstart).on('touchend', copter_touchend); 

JS FIDDLE:HERE

(鼠标事件触改变) 抽头屏幕反复 '悬停' 的块中,其反应性太强,但我不想要在正常飞行时降低速度

+0

你可以做一个小提琴。 – putvande

+0

我正在寻找相同的解决方案。然而,我所观察到的关于喷气背包兜风的是。当触摸/释放屏幕在开始时上升/下降非常缓慢并且速度随着时间逐渐增加(可能从0.00开始,以0.01(随时间)增加并且到最大允许速度1.0)。但我不确定如果这是正确的,我已经尝试了很多东西,但失败了,但让我们实施这件事,看看会发生什么。当你找到一些解决方案时,请让我知道。 –

+0

http://stackoverflow.com/questions/22442495/smooth-fly-movement-like-flappy-bird-or-jet-pack-joy-ride-with-gravity-and-accel/ 请看看,这对我来说很有用。如果您以其他方式达到此目的,请分享该内容。 –

回答

0

转场有不同类型的移动,默认为线性。看看这里:

CSS3 transitions

.object { 
    position: absolute; 
    transition: all 2s ease-in-out; 
    -webkit-transition: all 2s ease-in-out; /** Chrome & Safari **/ 
    -moz-transition: all 2s ease-in-out; /** Firefox **/ 
    -o-transition: all 2s ease-in-out; /** Opera **/ 
}