Cocos2d - Mac: проверить наличие событий клавиатуры? - PullRequest
6 голосов
/ 28 декабря 2010

Я использую Cocos2d, который является основой для создания игр для iPhone.Недавно они выпустили поддержку Mac, и я делаю простую игру для Mac.

Однако я не знаю, как проверить, нажата ли клавиша X на клавиатуре Mac.

Objective-C

Ответы [ 2 ]

9 голосов
/ 28 декабря 2010

Вы должны сделать:

self.isKeyboardEnabled = YES;

Вы можете затем использовать для получения сообщений для нажатия клавиш:

-(void) ccKeyUp:(NSEvent*)event;
-(void) ccKeyDown:(NSEvent*)event;

Это должно сделать это.

См. Здесь длядополнительная информация:

http://www.cocos2d -iphone.org / форум / тема / 11725

5 голосов
/ 29 ноября 2012

Вот пример:

-(id) init
{
    if( (self=[super init])) 
    {
        .
        .
        .

        self.isKeyboardEnabled = YES ;

        .
        .
        .
    }
}

- (void) ccKeyDown : (NSEvent*) KeyDownEvent
{
    NSString *str_1 = [KeyDownEvent characters];
    unichar ch = [str_1 characterAtIndex:0];

    if ( ch == 97)                  // if 'a' Button Pressed Down
    {
        if ( canMoveRight == NO)
        {
            canMoveLeft = YES ;
        }

    }
    else if ( ch == 100 )           // if 'd' Button Pressed Down
    {
        if ( canMoveLeft == NO)
        {
            canMoveRight = YES ;
        }
    }
}

- (void) ccKeyUp : (NSEvent*) KeyDownEvent
{

    NSString *str_1 = [KeyDownEvent characters];
    unichar ch = [str_1 characterAtIndex:0];

    if ( ch == 97)                  // if 'a' Button Released
    {
        canMoveLeft = NO ;
    }
    else if ( ch == 100 )           // if 'd' Button Released
    {
        canMoveRight = NO ;
    }
}

PS: код символа основан на их коде ASCII.

...