Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 让精灵只跳一次_Ios_Cocos2d Iphone_Spritebuilder - Fatal编程技术网

Ios 让精灵只跳一次

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

使用Xcode、Spritebuilder和Cocos2d,我试图让玩家只跳一次sprite。因此,当玩家轻触屏幕时,精灵会跳跃,只有当它落地时,玩家才能再次跳跃。到目前为止,我还没有找到任何明确的解释,因此我提出了这个问题

这是我的密码

编辑以使代码仅允许精灵跳跃一次:
你可以用枪。以下是我的触屏跳转代码:

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
                }
}