SneakyInput, ортогональные карты тайлов, обнаружение коллизий и cocos-2d
На самом деле я не мог найти много помощи по этому вопросу - я застрял, пытаясь понять, как реализовать виртуальный D-Pad на ортогональной карте тайлов, чтобы имитировать движение, как это видно в играх про покемонов / зельду GBA.
У кого-нибудь есть хороший учебник, на который я должен смотреть? Если нет, я был бы признателен также за пример кода.
1 ответ
Решение
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);
}
Если вам нужен полный блок кода, я могу вам помочь, но он длинный, и я не хочу здесь все это печатать. Надеюсь это поможет.