From 9266be444b0511d68eccc5f64b283705267a55a8 Mon Sep 17 00:00:00 2001 From: Walzer Date: Sat, 11 Jun 2011 16:53:48 +0800 Subject: [PATCH] issue #398, add xcode4 templates, semi-finished. --- .../Resources/iTunesArtwork | Bin 0 -> 61982 bytes .../Classes/AppDelegate.cpp | 110 +++++++++++ .../Classes/AppDelegate.h | 51 +++++ .../Classes/HelloWorldScene.cpp | 187 ++++++++++++++++++ .../Classes/HelloWorldScene.h | 36 ++++ .../xcode4/cocos2d-x.xctemplate/Prefix.pch | 8 + .../cocos2d-x.xctemplate/TemplateIcon.icns | Bin 0 -> 53803 bytes .../cocos2d-x.xctemplate/ios/AppController.h | 14 ++ .../cocos2d-x.xctemplate/ios/AppController.mm | 99 ++++++++++ .../xcode4/cocos2d-x.xctemplate/ios/main.m | 16 ++ 10 files changed, 521 insertions(+) create mode 100644 template/xcode4/base_ios.xctemplate/Resources/iTunesArtwork create mode 100644 template/xcode4/cocos2d-x.xctemplate/Classes/AppDelegate.cpp create mode 100644 template/xcode4/cocos2d-x.xctemplate/Classes/AppDelegate.h create mode 100755 template/xcode4/cocos2d-x.xctemplate/Classes/HelloWorldScene.cpp create mode 100755 template/xcode4/cocos2d-x.xctemplate/Classes/HelloWorldScene.h create mode 100755 template/xcode4/cocos2d-x.xctemplate/Prefix.pch create mode 100644 template/xcode4/cocos2d-x.xctemplate/TemplateIcon.icns create mode 100644 template/xcode4/cocos2d-x.xctemplate/ios/AppController.h create mode 100644 template/xcode4/cocos2d-x.xctemplate/ios/AppController.mm create mode 100755 template/xcode4/cocos2d-x.xctemplate/ios/main.m diff --git a/template/xcode4/base_ios.xctemplate/Resources/iTunesArtwork b/template/xcode4/base_ios.xctemplate/Resources/iTunesArtwork new file mode 100644 index 0000000000000000000000000000000000000000..b1cc056ba575a346e1bfa3baa189c20efbfe496b GIT binary patch literal 61982 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 SlutY{?~w5D*Pu9-FCCu<>yh` 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 Hu0mjfpM?{b literal 0 HcmV?d00001 diff --git a/template/xcode4/cocos2d-x.xctemplate/Classes/AppDelegate.cpp b/template/xcode4/cocos2d-x.xctemplate/Classes/AppDelegate.cpp new file mode 100644 index 0000000000..fb9ffc4e46 --- /dev/null +++ b/template/xcode4/cocos2d-x.xctemplate/Classes/AppDelegate.cpp @@ -0,0 +1,110 @@ +// +// ___PROJECTNAMEASIDENTIFIER___AppDelegate.cpp +// ___PROJECTNAME___ +// +// Created by ___FULLUSERNAME___ on ___DATE___. +// Copyright ___ORGANIZATIONNAME___ ___YEAR___. All rights reserved. +// + +#include "AppDelegate.h" + +#include "cocos2d.h" +#include "HelloWorldScene.h" + +USING_NS_CC; + +AppDelegate::AppDelegate() +{ + +} + +AppDelegate::~AppDelegate() +{ +} + +bool AppDelegate::initInstance() +{ + bool bRet = false; + do + { +#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) + + // Initialize OpenGLView instance, that release by CCDirector when application terminate. + // The HelloWorld is designed as HVGA. + CCEGLView * pMainWnd = new CCEGLView(); + CC_BREAK_IF(! pMainWnd + || ! pMainWnd->Create(TEXT("cocos2d: Hello World"), 320, 480)); + +#endif // CC_PLATFORM_WIN32 + +#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) + // OpenGLView initialized in testsAppDelegate.mm on ios platform, nothing need to do here. +#endif // CC_PLATFORM_IOS + +#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) + // android does not do anything +#endif + +#if (CC_TARGET_PLATFORM == CC_PLATFORM_WOPHONE) + + // Initialize OpenGLView instance, that release by CCDirector when application terminate. + // The HelloWorld is designed as HVGA. + CCEGLView* pMainWnd = new CCEGLView(this); + CC_BREAK_IF(! pMainWnd || ! pMainWnd->Create(320,480)); + +#ifndef _TRANZDA_VM_ + // on wophone emulator, we copy resources files to Work7/TG3/APP/ folder instead of zip file + cocos2d::CCFileUtils::setResource("HelloWorld.zip"); +#endif + +#endif // CC_PLATFORM_WOPHONE + + bRet = true; + } while (0); + return bRet; +} + +bool AppDelegate::applicationDidFinishLaunching() +{ + // initialize director + CCDirector *pDirector = CCDirector::sharedDirector(); + pDirector->setOpenGLView(&CCEGLView::sharedOpenGLView()); + + // enable High Resource Mode(2x, such as iphone4) and maintains low resource on other devices. +// pDirector->enableRetinaDisplay(true); + + // sets landscape mode + pDirector->setDeviceOrientation(kCCDeviceOrientationLandscapeLeft); + + // turn on display FPS + pDirector->setDisplayFPS(true); + + // set FPS. the default value is 1.0/60 if you don't call this + pDirector->setAnimationInterval(1.0 / 60); + + // create a scene. it's an autorelease object + CCScene *pScene = HelloWorld::scene(); + + // run + pDirector->runWithScene(pScene); + + return true; +} + +// This function will be called when the app is inactive. When comes a phone call,it's be invoked too +void AppDelegate::applicationDidEnterBackground() +{ + CCDirector::sharedDirector()->pause(); + + // if you use SimpleAudioEngine, it must be pause + // SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic(); +} + +// this function will be called when the app is active again +void AppDelegate::applicationWillEnterForeground() +{ + CCDirector::sharedDirector()->resume(); + + // if you use SimpleAudioEngine, it must resume here + // SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic(); +} diff --git a/template/xcode4/cocos2d-x.xctemplate/Classes/AppDelegate.h b/template/xcode4/cocos2d-x.xctemplate/Classes/AppDelegate.h new file mode 100644 index 0000000000..3161a11d65 --- /dev/null +++ b/template/xcode4/cocos2d-x.xctemplate/Classes/AppDelegate.h @@ -0,0 +1,51 @@ +// +// ___PROJECTNAMEASIDENTIFIER___AppDelegate.h +// ___PROJECTNAME___ +// +// Created by ___FULLUSERNAME___ on ___DATE___. +// Copyright ___ORGANIZATIONNAME___ ___YEAR___. All rights reserved. +// + +#ifndef _APP_DELEGATE_H_ +#define _APP_DELEGATE_H_ + +#include "CCApplication.h" + +/** +@brief The cocos2d Application. + +The reason for implement as private inheritance is to hide some interface call by CCDirector. +*/ +class AppDelegate : private cocos2d::CCApplication +{ +public: + AppDelegate(); + virtual ~AppDelegate(); + + /** + @brief Implement for initialize OpenGL instance, set source path, etc... + */ + virtual bool initInstance(); + + /** + @brief Implement CCDirector and CCScene init code here. + @return true Initialize success, app continue. + @return false Initialize failed, app terminate. + */ + virtual bool applicationDidFinishLaunching(); + + /** + @brief The function be called when the application enter background + @param the pointer of the application + */ + virtual void applicationDidEnterBackground(); + + /** + @brief The function be called when the application enter foreground + @param the pointer of the application + */ + virtual void applicationWillEnterForeground(); +}; + +#endif // _APP_DELEGATE_H_ + diff --git a/template/xcode4/cocos2d-x.xctemplate/Classes/HelloWorldScene.cpp b/template/xcode4/cocos2d-x.xctemplate/Classes/HelloWorldScene.cpp new file mode 100755 index 0000000000..8a7419439d --- /dev/null +++ b/template/xcode4/cocos2d-x.xctemplate/Classes/HelloWorldScene.cpp @@ -0,0 +1,187 @@ +// +// HelloWorldScene.cpp +// ___PROJECTNAME___ +// +// Created by ___FULLUSERNAME___ on ___DATE___. +// Copyright ___ORGANIZATIONNAME___ ___YEAR___. All rights reserved. +// + + +#include "HelloWorldScene.h" + +using namespace cocos2d; + +enum { + kTagBatchNode = 1, +}; + +static void +eachShape(void *ptr, void* unused) +{ + cpShape *shape = (cpShape*) ptr; + CCSprite *sprite = (CCSprite*)shape->data; + if( sprite ) + { + cpBody *body = shape->body; + + // TIP: cocos2d and chipmunk uses the same struct to store it's position + // chipmunk uses: cpVect, and cocos2d uses CGPoint but in reality the are the same + // since v0.7.1 you can mix them if you want. + sprite->setPosition(CCPointMake(body->p.x, body->p.y)); + + sprite->setRotation((float) CC_RADIANS_TO_DEGREES( -body->a )); + } +} + +HelloWorld::HelloWorld() +{ +} + +HelloWorld::~HelloWorld() +{ +} + +CCScene* HelloWorld::scene() +{ + // 'scene' is an autorelease object. + CCScene *scene = CCScene::node(); + + // 'layer' is an autorelease object. + HelloWorld *layer = HelloWorld::node(); + + // add layer as a child to scene + scene->addChild(layer); + + // return the scene + return scene; +} + + +void HelloWorld::addNewSpriteX(float x, float y) +{ + int posx, posy; + + CCSpriteBatchNode *batch = (CCSpriteBatchNode*) getChildByTag(kTagBatchNode); + + posx = (CCRANDOM_0_1() * 200); + posy = (CCRANDOM_0_1() * 200); + + posx = (posx % 4) * 85; + posy = (posy % 3) * 121; + + CCSprite *sprite = CCSprite::spriteWithBatchNode(batch, CCRectMake(posx, posy, 85, 121)); + batch->addChild(sprite); + + sprite->setPosition(ccp(x, y)); + + int num = 4; + cpVect verts[] = { + cpv(-24,-54), + cpv(-24, 54), + cpv( 24, 54), + cpv( 24,-54), + }; + + cpBody *body = cpBodyNew(1.0f, cpMomentForPoly(1.0f, num, verts, cpv(0, 0))); + + // TIP: + // since v0.7.1 you can assign CGPoint to chipmunk instead of cpVect. + // cpVect == CGPoint + body->p = cpv(x, y); + cpSpaceAddBody(space, body); + + cpShape* shape = cpPolyShapeNew(body, num, verts, cpv(0, 0)); + shape->e = 0.5f; shape->u = 0.5f; + shape->data = sprite; + cpSpaceAddShape(space, shape); +} + +bool HelloWorld::init() +{ + bool ret = false; + + if (ret = CCLayer::init()) + { + setIsTouchEnabled(true); + + CCSize wins = CCDirector::sharedDirector()->getWinSize(); + cpInitChipmunk(); + + cpBody *staticBody = cpBodyNew(INFINITY, INFINITY); + space = cpSpaceNew(); + cpSpaceResizeStaticHash(space, 400.0f, 40); + cpSpaceResizeActiveHash(space, 100, 600); + + space->gravity = cpv(0, 0); + space->elasticIterations = space->iterations; + + cpShape *shape; + + // bottom + shape = cpSegmentShapeNew(staticBody, cpv(0,0), cpv(wins.width,0), 0.0f); + shape->e = 1.0f; shape->u = 1.0f; + cpSpaceAddStaticShape(space, shape); + + // top + shape = cpSegmentShapeNew(staticBody, cpv(0,wins.height), cpv(wins.width,wins.height), 0.0f); + shape->e = 1.0f; shape->u = 1.0f; + cpSpaceAddStaticShape(space, shape); + + // left + shape = cpSegmentShapeNew(staticBody, cpv(0,0), cpv(0,wins.height), 0.0f); + shape->e = 1.0f; shape->u = 1.0f; + cpSpaceAddStaticShape(space, shape); + + // right + shape = cpSegmentShapeNew(staticBody, cpv(wins.width,0), cpv(wins.width,wins.height), 0.0f); + shape->e = 1.0f; shape->u = 1.0f; + cpSpaceAddStaticShape(space, shape); + + CCSpriteBatchNode *batch = CCSpriteBatchNode::batchNodeWithFile("grossini_dance_atlas.png", 100); + addChild(batch, 0, kTagBatchNode); + + addNewSpriteX(200, 200); + + schedule(schedule_selector(HelloWorld::step)); + } + + return ret; +} + +void HelloWorld::onEnter() +{ + CCLayer::onEnter(); +} + +void HelloWorld::step(ccTime delta) +{ + int steps = 2; + CGFloat dt = delta/(CGFloat)steps; + + for(int i=0; iactiveShapes, &eachShape, NULL); + cpSpaceHashEach(space->staticShapes, &eachShape, NULL); +} + + +void HelloWorld::ccTouchesEnded(CCSet *touches, CCEvent *event) +{ + CCSetIterator it; + CCTouch *touch; + + for (it = touches->begin(); it != touches->end(); it++) { + touch = (CCTouch*)(*it); + + if (! touch) { + break; + } + + CCPoint location = touch->locationInView(touch->view()); + location = CCDirector::sharedDirector()->convertToGL(location); + addNewSpriteX(location.x, location.y); + } +} + diff --git a/template/xcode4/cocos2d-x.xctemplate/Classes/HelloWorldScene.h b/template/xcode4/cocos2d-x.xctemplate/Classes/HelloWorldScene.h new file mode 100755 index 0000000000..0c5cf16215 --- /dev/null +++ b/template/xcode4/cocos2d-x.xctemplate/Classes/HelloWorldScene.h @@ -0,0 +1,36 @@ +// +// HelloWorldScene.h +// ___PROJECTNAME___ +// +// Created by ___FULLUSERNAME___ on ___DATE___. +// Copyright ___ORGANIZATIONNAME___ ___YEAR___. All rights reserved. +// + +#ifndef __HELLOW_WORLD_H__ +#define __HELLOW_WORLD_H__ + +#include "cocos2d.h" + +// include Chipmunk headers +#include "chipmunk.h" + +// HelloWorld Layer +class HelloWorld : public cocos2d::CCLayer { +public: + HelloWorld(); + ~HelloWorld(); + + static cocos2d::CCScene* scene(); + void step(cocos2d::ccTime dt); + void addNewSpriteX(float x, float y); + virtual void onEnter(); + virtual void ccTouchesEnded(cocos2d::CCSet* touches, cocos2d::CCEvent *event); + + LAYER_NODE_FUNC(HelloWorld); + +private: + bool init(); + cpSpace *space; +}; + +#endif // __HELLOW_WORLD_H__ diff --git a/template/xcode4/cocos2d-x.xctemplate/Prefix.pch b/template/xcode4/cocos2d-x.xctemplate/Prefix.pch new file mode 100755 index 0000000000..aa3260079c --- /dev/null +++ b/template/xcode4/cocos2d-x.xctemplate/Prefix.pch @@ -0,0 +1,8 @@ +// +// Prefix header for all source files of the '___PROJECTNAME___' target in the '___PROJECTNAME___' project +// + +#ifdef __OBJC__ + #import + #import +#endif diff --git a/template/xcode4/cocos2d-x.xctemplate/TemplateIcon.icns b/template/xcode4/cocos2d-x.xctemplate/TemplateIcon.icns new file mode 100644 index 0000000000000000000000000000000000000000..b2997c4ec2c9dc803041c2676a6cebfd065aa955 GIT binary patch literal 53803 zcmeEvXIxcR_V%Xts$xaTy%)t;qp=s@Hmbc>>?lp7ThF}|yJ#$QktV%&X@V4MCX-~6 z$xJ5I*igYP<#OIerZ``vc7N1&vyKW?RoZGL4TaF zYsHf1Y%i;L{-RgGwk-+X9Xw%w8_V{-z;*W2=DoiDo|Z1Jas3(l@|L^zuE4-uOUYMk z&-1739m9a2y*@qx%Sj>I{p{dV_U@8B+t=^%+vq^z@r$SIlbzeowT6b=$frL)ecGc4 zTmMBn{Q=k z3k9=kZ?&{Gm6SBK+^85Y6grai6|LOQ*KT=@bGCDsN2Xo5-c(Z5RCnPMJA0AHeiBK& z*-(_pp& z;_}M5pEZ|e-~M{7Y3}7qX(hFXNiAEjkG(SI!7R}tob0k>`HB@w zSFOUomoIUd?BcP*)6;v)91owJUY_VM-Iv1GZYug~taYCOZ? zJMat7a|kZGIOI*V2;6_9<+E0*6lPo}I{E}pkw zv8`$2wUVsQZ_OjF3+K&{y3HbaY<>t^LngXOXH2md2?tw-%^>RsstHB*Q^wDlGxrl? zLWU5HX>;bx8b5mKWZU5;!*x~628|dqdFtq4qsET49c9Dk+l;auJ9gAC|LNYIgs5l_ zEbZ)7^!?M@Svs&39{%>9UKUs1{kgaEouBA!h=kw$qj>-N|L>naMDKlm-^Dq;KsL)^FQ+2}ZN)mPVPp2OqZb!yWeNGKDi6R_PQV7H^&6cYN* z<1$uoz-_;O0I-7sf>%4Z4kf?BXWl;D&i+XD`mfj>!~~8C2=;Jrnor6A-*;WXUcH$= z?x4pyzo5X~enCOI93=~e?qS&R^g1N#VQ-Peo8$gJRiKqlZ|(6*fc{yUZm9o@*!tU}TCieB$wZyR_A1_bWezc*l4aKM4huC9_r z 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 { + UIWindow *window; +} + +@end + diff --git a/template/xcode4/cocos2d-x.xctemplate/ios/AppController.mm b/template/xcode4/cocos2d-x.xctemplate/ios/AppController.mm new file mode 100644 index 0000000000..1966a57513 --- /dev/null +++ b/template/xcode4/cocos2d-x.xctemplate/ios/AppController.mm @@ -0,0 +1,99 @@ +// +// ___PROJECTNAMEASIDENTIFIER___AppController.mm +// ___PROJECTNAME___ +// +// Created by ___FULLUSERNAME___ on ___DATE___. +// Copyright ___ORGANIZATIONNAME___ ___YEAR___. All rights reserved. +// +#import +#import "___PROJECTNAMEASIDENTIFIER___AppController.h" +#import "cocos2d.h" +#import "EAGLView.h" +#import "___PROJECTNAMEASIDENTIFIER___AppDelegate.h" + +@implementation ___PROJECTNAMEASIDENTIFIER___AppController + +#pragma mark - +#pragma mark Application lifecycle + +// cocos2d application instance +static AppDelegate s_sharedApplication; + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + + // Override point for customization after application launch. + + // Add the view controller's view to the window and display. + window = [[UIWindow alloc] initWithFrame: [[UIScreen mainScreen] bounds]]; + EAGLView *__glView = [EAGLView viewWithFrame: [window bounds] + pixelFormat: kEAGLColorFormatRGBA8 + depthFormat: GL_DEPTH_COMPONENT16_OES + preserveBackbuffer: NO + sharegroup: nil + multiSampling: NO + numberOfSamples: 0 ]; + [window addSubview: __glView]; + [window makeKeyAndVisible]; + + [[UIApplication sharedApplication] setStatusBarHidden: YES]; + + cocos2d::CCApplication::sharedApplication().run(); + return YES; +} + + +- (void)applicationWillResignActive:(UIApplication *)application { + /* + Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. + */ + cocos2d::CCDirector::sharedDirector()->pause(); +} + +- (void)applicationDidBecomeActive:(UIApplication *)application { + /* + Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. + */ + cocos2d::CCDirector::sharedDirector()->resume(); +} + +- (void)applicationDidEnterBackground:(UIApplication *)application { + /* + Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + If your application supports background execution, called instead of applicationWillTerminate: when the user quits. + */ + cocos2d::CCDirector::sharedDirector()->stopAnimation(); +} + +- (void)applicationWillEnterForeground:(UIApplication *)application { + /* + Called as part of transition from the background to the inactive state: here you can undo many of the changes made on entering the background. + */ + cocos2d::CCDirector::sharedDirector()->startAnimation(); +} + + +- (void)applicationWillTerminate:(UIApplication *)application { + /* + Called when the application is about to terminate. + See also applicationDidEnterBackground:. + */ +} + + +#pragma mark - +#pragma mark Memory management + +- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application { + /* + Free up as much memory as possible by purging cached data objects that can be recreated (or reloaded from disk) later. + */ +} + + +- (void)dealloc { + [super dealloc]; +} + + +@end diff --git a/template/xcode4/cocos2d-x.xctemplate/ios/main.m b/template/xcode4/cocos2d-x.xctemplate/ios/main.m new file mode 100755 index 0000000000..106d54c93e --- /dev/null +++ b/template/xcode4/cocos2d-x.xctemplate/ios/main.m @@ -0,0 +1,16 @@ +// +// main.m +// ___PROJECTNAME___ +// +// Created by ___FULLUSERNAME___ on ___DATE___. +// Copyright ___ORGANIZATIONNAME___ ___YEAR___. All rights reserved. +// + +#import + +int main(int argc, char *argv[]) { + NSAutoreleasePool *pool = [NSAutoreleasePool new]; + int retVal = UIApplicationMain(argc, argv, nil, @"___PROJECTNAMEASIDENTIFIER___AppController"); + [pool release]; + return retVal; +}