Cocos2d Spritebuilder移动角色与地面碰撞

时间:2014-12-24 12:07:39

标签: ios cocos2d-iphone sprite spritebuilder

我一直在研究这个问题,但找不到解决办法,这是我的情况。

角色当前移动,用户应该能够触摸2个按钮以使角色向左或向右移动。 (右键和左键)这是我的代码:

- (void)touchBegan:(UITouch *)touch withEvent:(UIEvent *)event { 
    CGPoint touchLocation = [touch locationInNode: _contentNode];
    CGSize size = [[CCDirector sharedDirector] viewSize];

    id moveLeft = [CCActionMoveBy actionWithDuration:1.5 position:ccp(-size.width/1,5)];
    [moveLeft setTag:11];
    id moveRight = [CCActionMoveBy actionWithDuration:1.5 position:ccp(size.width/1,5)];
    [moveRight setTag:12];


    if(CGRectContainsPoint([_leftButton boundingBox], touchLocation)) {
        [_character runAction:moveLeft];
        NSLog(@"the left button was pressed");
    }

    if(CGRectContainsPoint([_rightButton boundingBox], touchLocation)) {  
        [_character  runAction:moveRight];
        NSLog(@"the right button was pressed");    
    }

}


- (void)touchEnded:(UITouch *)touch withEvent:(UIEvent *)event{

    [_character stopActionByTag:11];
    [_character stopActionByTag:12]; 
}

-(void) stopActionByTag:(NSInteger)tag {
    [_character stopActionByTag:tag];
}

现在的问题是,当我将地面设置为静态并运行游戏时,角色实际上可以穿透地面。即使创造静态地面,角色也可以在地面上移动。 我正在为IOS制作冒险游戏,这个功能对于关卡设计非常重要。 我需要地面是静止的,当它们之间发生碰撞时,角色应该停止。

任何帮助都会很有意义。

感谢

0 个答案:

没有答案