Ios 让精灵只跳一次
使用Xcode、Spritebuilder和Cocos2d,我试图让玩家只跳一次sprite。因此,当玩家轻触屏幕时,精灵会跳跃,只有当它落地时,玩家才能再次跳跃。到目前为止,我还没有找到任何明确的解释,因此我提出了这个问题 这是我的密码 编辑以使代码仅允许精灵跳跃一次:Ios 让精灵只跳一次,ios,cocos2d-iphone,spritebuilder,Ios,Cocos2d Iphone,Spritebuilder,使用Xcode、Spritebuilder和Cocos2d,我试图让玩家只跳一次sprite。因此,当玩家轻触屏幕时,精灵会跳跃,只有当它落地时,玩家才能再次跳跃。到目前为止,我还没有找到任何明确的解释,因此我提出了这个问题 这是我的密码 编辑以使代码仅允许精灵跳跃一次: 你可以用枪。以下是我的触屏跳转代码: BOOL isInAir;//Make this global. -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)eve
你可以用枪。以下是我的触屏跳转代码:
BOOL isInAir;//Make this global.
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
/* Called when a touch begins */
UITouch *touch = [touches anyObject];
SKSpriteNode *node = [self nodesAtPoint:[touch locationInNode:self]];
if (isInAir == NO)
{
CGFloat impulseX = 0.0f;
CGFloat impulseY = 600.0f;
[node.physicsBody applyImpulse:CGVectorMake(impulseX, impulseY) atPoint:node.position];
isInAir = YES;
//other stuff
}
}
然后,当您接触地面时,将isInAir设置为NO
BOOL isInAir;//Make this global.
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
/* Called when a touch begins */
UITouch *touch = [touches anyObject];
SKSpriteNode *node = [self nodesAtPoint:[touch locationInNode:self]];
if (isInAir == NO)
{
CGFloat impulseX = 0.0f;
CGFloat impulseY = 600.0f;
[node.physicsBody applyImpulse:CGVectorMake(impulseX, impulseY) atPoint:node.position];
isInAir = YES;
//other stuff
}
}