SneakyInput, ортогональные карты тайлов, обнаружение коллизий и cocos-2d - PullRequest
1 голос
/ 04 марта 2012

Не могу найти где-нибудь особой помощи по этому вопросу - я застрял, пытаясь понять, как реализовать виртуальный D-Pad на ортогональной карте тайлов для имитации движения, как это видно в играх про покемонов / зельду GBA.

У кого-нибудь есть хороший учебник, на который мне стоит взглянуть?Если нет, я был бы признателен также за пример кода.

1 Ответ

2 голосов
/ 04 марта 2012

SneakyInput - это то, что я использовал для своей D-Pad в своей игре, классы можно найти на https://github.com/sneakyness/SneakyInput.

#import "SneakyJoystick.h" 
#import "SneakyButton.h"
#import "SneakyButtonSkinnedBase.h"
#import "SneakyJoystickSkinnedBase.h"

@interface GameplayLayer : CCLayer 
{ 
    SneakyJoystick *leftJoystick; 
    SneakyButton *jumpButton; 
    SneakyButton *attackButton;
}
@end

Затем вы объявляете размеры каждой из кнопок и их положения на экране:

-(void)initJoystickAndButtons 
{
    CGSize screenSize = [CCDirector sharedDirector].winSize;
    CGRect joystickBaseDimensions = CGRectMake(0, 0, 128.0f, 128.0f);
    CGRect jumpButtonDimensions = CGRectMake(0, 0, 64.0f, 64.0f);
    CGRect attackButtonDimensions = CGRectMake(0, 0, 64.0f, 64.0f);
    CGPoint joystickBasePosition;
    CGPoint jumpButtonPosition;
    CGPoint attackButtonPosition;

    joystickBasePosition = ccp(screenSize.width*0.0625f, screenSize.height*0.052f);
    jumpButtonPosition = ccp(screenSize.width*0.946f, screenSize.height*0.052f);
    attackButtonPosition = ccp(screenSize.width*0.947f, screenSize.height*0.169f);
}

Если вам нужен полный блок кода, я могу вам помочь, но он длинный, и я не хочу здесь все это печатать. Надеюсь, это поможет.

...