这几天我一直在看一本关于 ios5 的 cocos2d 框架的书,并开发了一个小游戏,该书会引导您完成。要控制游戏中的精灵,您可以使用加速度计:
-(void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
float deceleration = 0.4f;
float sensitivity = 6.0f;
float maxVelocity = 100;
// adjust velocity based on current accelerometer acceleration
playerVelocity.x = playerVelocity.x * deceleration + acceleration.x * sensitivity;
// we must limit the maximum velocity of the player sprite, in both directions (positive & negative values)
if (playerVelocity.x > maxVelocity)
{
playerVelocity.x = maxVelocity;
}
else if (playerVelocity.x < -maxVelocity)
{
playerVelocity.x = -maxVelocity;
}
// Alternatively, the above if/else if block can be rewritten using fminf and fmaxf more neatly like so:
// playerVelocity.x = fmaxf(fminf(playerVelocity.x, maxVelocity), -maxVelocity);
}
现在我想知道是否可以更改此代码以允许精灵仍沿 x 轴加速/减速,但使用触摸输入而不是加速度计,并且按住触摸的时间越长越快?因此,向右触摸会将精灵缓慢移动到该点,如果释放触摸,它将停止移动到该点。按住触摸的时间越长,精灵移动的越快。
框架中有什么东西可以让我实现一个旋转机制,让我的精灵旋转到触摸所在的位置,所以它看起来像是面向被触摸的点?