Ios 无论手指在屏幕上保持多长,触摸开始时只需注册一次点击?
我正在做一个平台游戏,以前有一个单一的新闻给一个静态的高度跳跃。我的跳跃代码都在触摸开始时:Ios 无论手指在屏幕上保持多长,触摸开始时只需注册一次点击?,ios,swift3,sprite-kit,Ios,Swift3,Sprite Kit,我正在做一个平台游戏,以前有一个单一的新闻给一个静态的高度跳跃。我的跳跃代码都在触摸开始时: let zero:CGFloat = 0 //added the if velocity greater == zero for the most part wont allow players to jump onless on ground if((Player.isPlayerOnGround) && (player.physicsBody?.veloci
let zero:CGFloat = 0
//added the if velocity greater == zero for the most part wont allow players to jump onless on ground
if((Player.isPlayerOnGround) && (player.physicsBody?.velocity.dy)! == zero) || Player.isPlayerOnPlatform {
player.physicsBody?.applyImpulse(CGVector(dx: 0, dy: jumpHeight))
Player.isPlayerOnGround = false
}
我找到了Ray Wenderlich提供的platformer教程,其中包含一段代码,允许玩家进行短距离跳跃,或者完全希望,具体取决于您是轻敲屏幕还是握住屏幕。Ray将此代码放在UPDATE方法中,但:
CGPoint jumpForce = ccp(0.0, 310.0);
float jumpCutoff = 150.0;
if (self.mightAsWellJump && self.onGround) {
self.velocity = ccpAdd(self.velocity, jumpForce);
} else if (!self.mightAsWellJump && self.velocity.y > jumpCutoff) {
self.velocity = ccp(self.velocity.x, jumpCutoff);
}
在我的更新方法中,我将他的方法应用到我自己的项目中,并且成功了。唯一的问题是,如果按下屏幕,玩家继续跳跃
我有一个布尔检查,如果球员不在地面上,不允许他跳跃,但是如果按住屏幕点击,那么球员跳跃并反复触碰地面,并且永远继续跳跃
考虑到这一点,我无法理解当我的角色在空中时,在触摸开始时关闭触摸识别的逻辑,并且直到我抬起手指并再次轻触时才重新打开触摸识别
任何建议都将不胜感激 有一个名为isJumping的布尔值,它在toucheStart时设置为true,在toucheSend时设置为False。在跳转方法内部检查此布尔值是否为真(表示手指仍处于打开状态),如果为真,请不要跳转!确保将此布尔值设置为触摸中的最后一行刚开始不退出第一次跳转 谢谢你,我试过了,但似乎没法用。我想,因为只要我把手指放在屏幕上,跳跃就等于真的,对吧?对不起,我的回答很快,因为我在工作,所以时间有限。很高兴它成功了:D!