Cocos2d - фреймворк для создание 2д игр, изначально Cocos2d был написан на Python, но так как он приобрел большую популярность, своею открытостью, его портировали на другие платформы.
Cocos2d-iPhone был написан на Objective-C, работает на iOS системах, то есть, на данный момент это iPhone, iPod, iPad.
Требование
Все что вам нужно:
Hello World
Теперь займемся самим Кокосом.
Запускате Xcode
Нажмите на кнопку "Create a new Xcode Project" в сайд-баре должна был появится вкладка cocos2d под iOS.
Создайте новый cocos2d проект.
В поле "Product Name" введите на английском название приложение, я напишу "HelloWorld".
Когда проект загрузится, вы можете запустить приложение на симуляторе.
По идее вы должны получить вот такое:
Давайте разберем код, все что на нужно, это
В принципе все.
Cocos2d-iPhone был написан на Objective-C, работает на iOS системах, то есть, на данный момент это iPhone, iPod, iPad.
Требование
Все что вам нужно:
- Mac с Mac OS X свыше версии чем 10.4
- Базовые знание Objective-C
- Установленный Xcode 3,4 с iOS SDK
Давайте, начнем!
Cocos2d-iPhone
Заходим на сайт, кликаем на таб с надписью "download", скачать надо стабильную версию 1.0.1.
Разархивируйте архив в любую папку например в "Загрузки".
Обязательно нужно установить шаблоны для Cocos2d, что б установить нужно запустить файл install-templates.sh .
Устанавливаем через Терминал, нужно ввести в Терминале путь install-templates.sh с флагом -u.
Вот пример:
Разархивируйте архив в любую папку например в "Загрузки".
Обязательно нужно установить шаблоны для Cocos2d, что б установить нужно запустить файл install-templates.sh .
Устанавливаем через Терминал, нужно ввести в Терминале путь install-templates.sh с флагом -u.
Вот пример:
/Users/evgeny/Downloads/cocos2d-iphone-1.0.1/install-templates.sh -uТаким образом вы установите Cocos2d.
Hello World
Теперь займемся самим Кокосом.
Запускате Xcode
Нажмите на кнопку "Create a new Xcode Project" в сайд-баре должна был появится вкладка cocos2d под iOS.
Создайте новый cocos2d проект.
В поле "Product Name" введите на английском название приложение, я напишу "HelloWorld".
Когда проект загрузится, вы можете запустить приложение на симуляторе.
По идее вы должны получить вот такое:
Давайте разберем код, все что на нужно, это
- HelloWorldLayer.h .m
- AppDelegate.m
- (void) applicationDidFinishLaunching:(UIApplication*)application
{
// Создание Окна
window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Использование CADisplayLink в директоре
// Если без успешно (SDK < 3.1) использовать Таймер
if( ! [CCDirector setDirectorType:kCCDirectorTypeDisplayLink] )
[CCDirector setDirectorType:kCCDirectorTypeDefault];
CCDirector *director = [CCDirector sharedDirector];
// Создание Главного Представления
viewController = [[RootViewController alloc] initWithNibName:nil bundle:nil];
viewController.wantsFullScreenLayout = YES;
//
// Загрузка EAGLView
// 1. Создание RGB565 формата. Альтернатива: RGBA8
// 2. глубина формата 0 бита. Используйте 16 или 24 битов для 3d эффектов, как CCPageTurnTransition
//
//
EAGLView *glView = [EAGLView viewWithFrame:[window bounds]
pixelFormat:kEAGLColorFormatRGB565 // kEAGLColorFormatRGBA8
depthFormat:0 // GL_DEPTH_COMPONENT16_OES
];
// Прикрепить openglView к директору
[director setOpenGLView:glView];
// // Разрешить высокое разрешение (Retina дисплей) на iPhone 4 и поддержка низкое разрешение на всех старых устройств
// if( ! [director enableRetinaDisplay:YES] )
// CCLOG(@"Retina Display Not supported");
//
// Очень Важно:
// Если повороты будут контролироватся под руководством UIViewController
// Тогда ориентация устройства должен быть "Портретном".
//
// Важно:
// По умолчание, этот шаблон только поддерживает в Горизонтальном положение.
// Отредактируй RootViewController.m что б изменить Ориентацию.
//
#if GAME_AUTOROTATION == kGameAutorotationUIViewController
[director setDeviceOrientation:kCCDeviceOrientationPortrait];
#else
[director setDeviceOrientation:kCCDeviceOrientationLandscapeLeft];
#endif
[director setAnimationInterval:1.0/60];
[director setDisplayFPS:YES];
// Назначить OpenGLView дочерним классом контролера представления
[viewController setView:glView];
// Назначить ViewController дочерним классом окна
[window addSubview: viewController.view];
[window makeKeyAndVisible];
// По умолчанию поддерживаются PNG/BMP/TIFF/JPEG/GIF изображения
// Они могут быть RGBA8888, RGBA4444, RGB5_A1, RGB565
// Вы можете изменить в любое время.
[CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888];
// Загрузить HelloWorldLayer
[[CCDirector sharedDirector] runWithScene: [HelloWorldLayer scene]];
}
Дальше:
#import "cocos2d.h"
// .h
// Интерфейс HelloWorldLayer
@interface HelloWorldLayer : CCLayer
{
}
// Создание сцены для Директоры
+(CCScene *) scene;
@end
// .m
// Импорт Интерфейса
#import "HelloWorldLayer.h"
// Реализация HelloWorldLayer
@implementation HelloWorldLayer
+(CCScene *) scene
{
// 'scene' авто освобождающийся объект.
CCScene *scene = [CCScene node];
// 'layer' авто освобождающийся объект.
HelloWorldLayer *layer = [HelloWorldLayer node];
// Добавляем 'layer' (слой) к сцене как дочерний элемент
[scene addChild: layer];
// Возвращаем объект сцены
return scene;
}
// на "init" вам нужно инициировать экземпляры
-(id) init
{
// всегда на init вызывайте "super"
if( (self=[super init])) {
// создаем и инициируем надпись
CCLabelTTF *label = [CCLabelTTF labelWithString:@"Hello World" fontName:@"Marker Felt" fontSize:64];
// запрашиваем у директора, размер окна
CGSize size = [[CCDirector sharedDirector] winSize];
// ставим надпись в центр
label.position = ccp( size.width /2 , size.height/2 );
// добавляем надпись в наш 'layer' (слой)
[self addChild: label];
}
return self;
}
// на "dealloc" вам нужно удалить из памяти объекты (кроме autorealese объектов)
- (void) dealloc
{
// в случае если нужно удалить что-нибудь из памяти, удаляйте в этом методе
// в этом примере никого не требуется удалять.
// cocos2d автоматически удалит дочерние элементы (Надпись)
// не забудьте вызвать "super dealloc"
[super dealloc];
}
@end
В принципе все.
























