Cocos2d 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 ответов

Другие вопросы по тегам