diff --git a/README.md b/README.md index 0f2903d..b2996c6 100644 --- a/README.md +++ b/README.md @@ -2,3 +2,14 @@ cocos2d-x-samples ================= Includes different samples to be used with cocos2d + + +---to run projects from cpp-projects: + +Because cocos2d folder is too bloated, so it was removed. + +instructions: +1. run the following in terminal: + ./create_project.py -n onfly -k com.cocos.qwr -1 cpp -p ../../projects +(located in cocos2d-x/tools/project-creator). +2. copy class and resource folders to your new project. \ No newline at end of file diff --git a/cpp-projects/AirCombat/CMakeLists.txt b/cpp-projects/AirCombat/CMakeLists.txt new file mode 100644 index 0000000..522d947 --- /dev/null +++ b/cpp-projects/AirCombat/CMakeLists.txt @@ -0,0 +1,169 @@ +cmake_minimum_required(VERSION 2.6) + +set(APP_NAME MyGame) +project (${APP_NAME}) + +include(cocos2d/build/BuildHelpers.CMakeLists.txt) + +option(USE_CHIPMUNK "Use chipmunk for physics library" ON) +option(USE_BOX2D "Use box2d for physics library" OFF) +option(DEBUG_MODE "Debug or release?" ON) + +if(DEBUG_MODE) + set(CMAKE_BUILD_TYPE DEBUG) +else(DEBUG_MODE) + set(CMAKE_BUILD_TYPE RELEASE) +endif(DEBUG_MODE) + +set(CMAKE_C_FLAGS_DEBUG "-g -Wall -DCOCOS2D_DEBUG=1") +set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG}) + +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") + +if(USE_CHIPMUNK) + message("Using chipmunk ...") + add_definitions(-DLINUX -DCC_ENABLE_CHIPMUNK_INTEGRATION=1) +elseif(USE_BOX2D) + message("Using box2d ...") + add_definitions(-DLINUX -DCC_ENABLE_BOX2D_INTEGRATION=1) +else(USE_CHIPMUNK) + message(FATAL_ERROR "Must choose a physics library.") +endif(USE_CHIPMUNK) + +# architecture +if ( CMAKE_SIZEOF_VOID_P EQUAL 8 ) +set(ARCH_DIR "64-bit") +else() +set(ARCH_DIR "32-bit") +endif() + + +set(GAME_SRC + proj.linux/main.cpp + Classes/AppDelegate.cpp + Classes/HelloWorldScene.cpp +) + +set(COCOS2D_ROOT ${CMAKE_SOURCE_DIR}/cocos2d) + +include_directories( + /usr/local/include/GLFW + ${COCOS2D_ROOT} + ${COCOS2D_ROOT}/cocos + ${COCOS2D_ROOT}/cocos/audio/include + ${COCOS2D_ROOT}/cocos/2d + ${COCOS2D_ROOT}/cocos/2d/renderer + ${COCOS2D_ROOT}/cocos/2d/platform + ${COCOS2D_ROOT}/cocos/2d/platform/desktop + ${COCOS2D_ROOT}/cocos/2d/platform/linux + ${COCOS2D_ROOT}/cocos/base + ${COCOS2D_ROOT}/cocos/physics + ${COCOS2D_ROOT}/cocos/editor-support + ${COCOS2D_ROOT}/cocos/math/kazmath/include + ${COCOS2D_ROOT}/extensions + ${COCOS2D_ROOT}/external + ${COCOS2D_ROOT}/external/edtaa3func + ${COCOS2D_ROOT}/external/jpeg/include/linux + ${COCOS2D_ROOT}/external/tiff/include/linux + ${COCOS2D_ROOT}/external/webp/include/linux + ${COCOS2D_ROOT}/external/tinyxml2 + ${COCOS2D_ROOT}/external/unzip + ${COCOS2D_ROOT}/external/chipmunk/include/chipmunk + ${COCOS2D_ROOT}/external/freetype2/include/linux + ${COCOS2D_ROOT}/external/websockets/include/linux + ${COCOS2D_ROOT}/external/spidermonkey/include/linux + ${COCOS2D_ROOT}/external/linux-specific/fmod/include/${ARCH_DIR} +) + +link_directories( + /usr/local/lib + ${COCOS2D_ROOT}/external/jpeg/prebuilt/linux/${ARCH_DIR} + ${COCOS2D_ROOT}/external/tiff/prebuilt/linux/${ARCH_DIR} + ${COCOS2D_ROOT}/external/webp/prebuilt/linux/${ARCH_DIR} + ${COCOS2D_ROOT}/external/freetype2/prebuilt/linux/${ARCH_DIR} + ${COCOS2D_ROOT}/external/websockets/prebuilt/linux/${ARCH_DIR} + ${COCOS2D_ROOT}/external/spidermonkey/prebuilt/linux/${ARCH_DIR} + ${COCOS2D_ROOT}/external/linux-specific/fmod/prebuilt/${ARCH_DIR} +) + +# kazmath +add_subdirectory(${COCOS2D_ROOT}/cocos/math/kazmath) + +# chipmunk library +add_subdirectory(${COCOS2D_ROOT}/external/chipmunk/src) + +# box2d library +add_subdirectory(${COCOS2D_ROOT}/external/Box2D) + +# unzip library +add_subdirectory(${COCOS2D_ROOT}/external/unzip) + +# tinyxml2 library +add_subdirectory(${COCOS2D_ROOT}/external/tinyxml2) + +# audio +add_subdirectory(${COCOS2D_ROOT}/cocos/audio) + +# cocos base library +add_subdirectory(${COCOS2D_ROOT}/cocos/base) + +# cocos 2d library +add_subdirectory(${COCOS2D_ROOT}/cocos/2d) + +# cocos storage +add_subdirectory(${COCOS2D_ROOT}/cocos/storage) + +# gui +add_subdirectory(${COCOS2D_ROOT}/cocos/gui) + +# network +add_subdirectory(${COCOS2D_ROOT}/cocos/network) + +# extensions +add_subdirectory(${COCOS2D_ROOT}/extensions) + +## Editor Support + +# spine +add_subdirectory(${COCOS2D_ROOT}/cocos/editor-support/spine) + +# cocosbuilder +add_subdirectory(${COCOS2D_ROOT}/cocos/editor-support/cocosbuilder) + +# cocostudio +add_subdirectory(${COCOS2D_ROOT}/cocos/editor-support/cocostudio) + +# add the executable +add_executable(${APP_NAME} + ${GAME_SRC} +) + +if ( CMAKE_SIZEOF_VOID_P EQUAL 8 ) +set(FMOD_LIB "fmodex64") +else() +set(FMOD_LIB "fmodex") +endif() + +target_link_libraries(${APP_NAME} + gui + network + storage + spine + cocostudio + cocosbuilder + extensions + audio + cocos2d + ) + +set(APP_BIN_DIR "${CMAKE_BINARY_DIR}/bin") + +set_target_properties(${APP_NAME} PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${APP_BIN_DIR}") + +pre_build(${APP_NAME} + COMMAND ${CMAKE_COMMAND} -E remove_directory ${APP_BIN_DIR}/Resources + COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/Resources ${APP_BIN_DIR}/Resources + ) + diff --git a/cpp-projects/AirCombat/Classes/AppDelegate.cpp b/cpp-projects/AirCombat/Classes/AppDelegate.cpp new file mode 100644 index 0000000..6290c79 --- /dev/null +++ b/cpp-projects/AirCombat/Classes/AppDelegate.cpp @@ -0,0 +1,53 @@ +#include "AppDelegate.h" +#include "HelloWorldScene.h" + +USING_NS_CC; + +AppDelegate::AppDelegate() { + +} + +AppDelegate::~AppDelegate() +{ +} + +bool AppDelegate::applicationDidFinishLaunching() { + // initialize director + auto director = Director::getInstance(); + auto glview = director->getOpenGLView(); + if(!glview) { + glview = GLView::create("My Game"); + director->setOpenGLView(glview); + } + + // turn on display FPS + director->setDisplayStats(true); + + // set FPS. the default value is 1.0/60 if you don't call this + director->setAnimationInterval(1.0 / 60); + glview->setDesignResolutionSize(480, 800, ResolutionPolicy::EXACT_FIT); + + // create a scene. it's an autorelease object + auto scene = HelloWorld::scene(); + + // run + director->runWithScene(scene); + + 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() { + Director::getInstance()->stopAnimation(); + + // 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() { + Director::getInstance()->startAnimation(); + + // if you use SimpleAudioEngine, it must resume here + // SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic(); +} diff --git a/cpp-projects/AirCombat/Classes/AppDelegate.h b/cpp-projects/AirCombat/Classes/AppDelegate.h new file mode 100644 index 0000000..18ee8ae --- /dev/null +++ b/cpp-projects/AirCombat/Classes/AppDelegate.h @@ -0,0 +1,38 @@ +#ifndef _APP_DELEGATE_H_ +#define _APP_DELEGATE_H_ + +#include "cocos2d.h" + +/** +@brief The cocos2d Application. + +The reason for implement as private inheritance is to hide some interface call by Director. +*/ +class AppDelegate : private cocos2d::Application +{ +public: + AppDelegate(); + virtual ~AppDelegate(); + + /** + @brief Implement Director and Scene 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/cpp-projects/AirCombat/Classes/AudioManager.cpp b/cpp-projects/AirCombat/Classes/AudioManager.cpp new file mode 100755 index 0000000..f9b3e71 --- /dev/null +++ b/cpp-projects/AirCombat/Classes/AudioManager.cpp @@ -0,0 +1,53 @@ +// +// AudioManager.cpp +// JoGame +// +// Created by 3q on 13-6-21. +// +// + +#include "AudioManager.h" + +void AudioManager::init() +{ + const char* arrAudios[] = {"explosion.mp3", + "shoot.mp3", + "flip.wav", + "flag.wav", + "lose.wav"}; + + string temp_str; + int len = sizeof(arrAudios)/ sizeof(arrAudios[0]); + CCLOG("audios number: %d.", len); + for (int i=0; ipreloadEffect(arrAudios[i]); + } +} + +void AudioManager::playAudioById(int idx) +{ + SimpleAudioEngine::getInstance()->playEffect(arrAudios[idx].c_str()); +} + + + +//////////////// +static AudioManager* _audioManager; +AudioManager* AudioManager::sharedAudioManager() +{ + if (_audioManager == NULL) { + _audioManager = new AudioManager(); + _audioManager->init(); + } + + return _audioManager; +} + +AudioManager::AudioManager() +{ +} + +AudioManager::~AudioManager() +{ + +} \ No newline at end of file diff --git a/cpp-projects/AirCombat/Classes/AudioManager.h b/cpp-projects/AirCombat/Classes/AudioManager.h new file mode 100755 index 0000000..fe3b98a --- /dev/null +++ b/cpp-projects/AirCombat/Classes/AudioManager.h @@ -0,0 +1,41 @@ +// +// AudioManager.h +// JoGame +// +// Created by 3q on 13-6-21. +// +// + +#ifndef __JoGame__AudioManager__ +#define __JoGame__AudioManager__ + +#include +#include "cocos2d.h" +#include "SimpleAudioEngine.h" +using namespace CocosDenshion; +using namespace std; +USING_NS_CC; + +enum AUDIO { + AUDIO_LOSE = 0, + AUDIO_WIN = 1, + AUDIO_FLIP = 2, + AUDIO_FLAG = 3, + AUDIO_BOOM = 4 +}; + +class AudioManager { +private: + string arrAudios[10]; +public: + + void init(); + void playAudioById(int idx); + + static AudioManager* sharedAudioManager(); + + AudioManager(); + ~AudioManager(); +}; + +#endif /* defined(__JoGame__AudioManager__) */ diff --git a/cpp-projects/AirCombat/Classes/Const.h b/cpp-projects/AirCombat/Classes/Const.h new file mode 100644 index 0000000..9f004b9 --- /dev/null +++ b/cpp-projects/AirCombat/Classes/Const.h @@ -0,0 +1,47 @@ +// +// Const.h +// onfly +// +// Created by cocos2dx on 14-2-20. +// +// + +#ifndef onfly_Const_h +#define onfly_Const_h + +//type of plane +#define RECT_SMALL Rect(201, 88, 39, 27) +#define RECT_MID Rect(130, 2, 69, 89) +#define RECT_BIG Rect(2, 2, 108, 164) +#define RECT_DOUBLE Rect(144, 134, 29, 46) +#define RECT_BULLET Rect(66, 237, 7, 20) + +enum PLANE_TYPE { + PLANE_SMALL, + PLANE_MID, + PLANE_BIG, + PLANE_DOUBLE, + PLANE_BULLET +}; + +enum BUTTON_TAG{ + TAG_START, + TAG_SCORE, + TAG_QUIT +}; + +enum BULLET_TYPE{ + BULLET_SMALL, //小型子弹 + BULLET_MID, //中型子弹 + BULLET_BIG, //大型子弹 + BULLET_FLY //导弹 +}; + + +//plane png +#define PNG_PLANE "plane.png" + +#define LOG_RECT(rect) CCLOG("rect(%f, %f, %f, %f).", rect.size.width, rect.size.height, rect.origin.x, rect.origin.y) +#define LOG_POS(pos) CCLOG("pos(%f, %f).", pos.x, pos.y) + +#endif diff --git a/cpp-projects/AirCombat/Classes/GameWorld.cpp b/cpp-projects/AirCombat/Classes/GameWorld.cpp new file mode 100644 index 0000000..4960360 --- /dev/null +++ b/cpp-projects/AirCombat/Classes/GameWorld.cpp @@ -0,0 +1,434 @@ +// +// GameWorld.cpp +// onfly +// +// Created by cocos2dx on 14-2-20. +// +// + +#include "GameWorld.h" +#include "Const.h" +#include "AudioManager.h" +#include "MiniLayer.h" +#include "storage/local-storage/LocalStorage.h" + +USING_NS_CC; + +Scene* GameWorld::scene() +{ + CCLOG("will gameworld scene."); + auto scene = Scene::create(); + auto layer = GameWorld::create(); + scene->addChild(layer); + CCLOG("gameworld scene."); + return scene; +} + +enum TAG { + TAG_PAUSE = 0, + TAG_CLOSE +}; + +bool GameWorld::init() +{ + wSize = Director::getInstance()->getVisibleSize(); + initWithColor(Color4B(240,240,240,240)); + auto spBack = Sprite::create("mainBack.png"); + spBack->setPosition(wSize.width/2, wSize.height/2); + addChild(spBack); + setOneStep(); + //pause button + auto pauseSp = Sprite::create("plane.png", Rect(175, 148, 22, 23)); + auto btnPause = MenuItemSprite::create(pauseSp, + pauseSp, + CC_CALLBACK_1(GameWorld::onClick, this)); + btnPause->setTag(TAG_PAUSE); + auto sizePause = btnPause->getContentSize(); + btnPause->setPosition(Point(sizePause.width, wSize.height - sizePause.height)); + //close button + auto btnClose = MenuItemImage::create("CloseNormal.png", + "CloseSelected.png", + CC_CALLBACK_1(GameWorld::onClick, this)); + btnClose->setTag(TAG_CLOSE); + + auto abelttf=LabelTTF::create("Resume Game","Thonburi", 48); + auto color = Color3B(126, 126, 126); + abelttf->setColor(color); + itemResume = MenuItemLabel::create(abelttf, CC_CALLBACK_1(GameWorld::onResume, this)); + itemResume->setPosition(wSize.width/2, wSize.height/2); + itemResume->setVisible(false); + auto menuResume = Menu::create(itemResume, NULL); + addChild(menuResume); + menuResume->setPosition(Point::ZERO); + + menu = Menu::create(btnPause, btnClose, NULL); + menu->setPosition(Point::ZERO); + addChild(menu); + + //score label + scoreLabel = LabelBMFont::create("0", "konqa32.fnt"); + addChild(scoreLabel); + scoreLabel->setPosition(btnPause->getPosition().x + btnPause->getContentSize().width + scoreLabel->getContentSize().width/2, btnPause->getPosition().y); + _myPlane = Sprite::create("plane.png", Rect(2, 168, 62, 75)); + _myPlane->setPosition(Point(wSize.width/2, _myPlane->getContentSize().height/2)); + addChild(_myPlane); + + // + CCLOG("schedule logic."); + this->schedule(schedule_selector(GameWorld::gamelogic), 0.4); + this->schedule(schedule_selector(GameWorld::addBullet),0.2); + this->schedule(schedule_selector(GameWorld::addPackage),rand()%10+10); + this->schedule(schedule_selector(GameWorld::updateSpeedRate), 5); + this->schedule(schedule_selector(GameWorld::updategame)); + // + //_targets = Array::create(); + //_bullets = new Array; + this->speedRate = 1.0; + doubleBulletFlag = false; + onClickFlag = false; + score = 0; + + //srand((unsigned)time(NULL)); + + //add touch event. + listener = EventListenerTouchOneByOne::create(); + listener->onTouchBegan = CC_CALLBACK_2(GameWorld::onTouchBegan, this); + listener->onTouchMoved = CC_CALLBACK_2(GameWorld::onTouchMoved, this); + listener->onTouchEnded = CC_CALLBACK_2(GameWorld::onTouchEnded, this); + _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this); + + return true; +} + + +bool GameWorld::onTouchBegan(Touch *touch, Event *unused_event) +{ + if (isInResume) { + return false; + } + auto location = touch->getLocation(); + auto posPlane = _myPlane->getPosition(); + if(_myPlane->boundingBox().containsPoint(location)){ + onClickFlag = true; + } + else{ + CCLOG("touch begin. (%f, %f), (%f, %f).", location.x, location.y, posPlane.x, posPlane.y); + if( location.x > posPlane.x ){ + moveRight(); + } + if( location.x < posPlane.x ){ + moveLeft(); + } + if( location.y > posPlane.y ){ + moveUp(); + } + if( location.y < posPlane.y ){ + moveDown(); + } + } + return true; +} + +void GameWorld::onTouchMoved(Touch *touch, Event *unused_event) +{ + //CCLOG("touch move."); + Point location = touch->getLocation(); + if(onClickFlag){ + _myPlane->setPosition(location); + } +} + +void GameWorld::onTouchEnded(Touch *touch, Event *unused_event) +{ + //CCLOG("touch end."); + onClickFlag=false; +} + +void GameWorld::moveUp(bool oneStep) +{ + CCLOG("moveUp"); + auto pos = _myPlane->getPosition(); + _myPlane->setPositionY(pos.y + _oneStep.y); +} +void GameWorld::moveDown(bool oneStep) +{ + CCLOG("moveDown"); + auto pos = _myPlane->getPosition(); + _myPlane->setPositionY(pos.y - _oneStep.y); +} +void GameWorld::moveLeft(bool oneStep) +{ + CCLOG("moveLeft"); + auto pos = _myPlane->getPosition(); + _myPlane->setPositionX(pos.x - _oneStep.x); +} +void GameWorld::moveRight(bool oneStep) +{ + CCLOG("moveRight"); + LOG_POS(_oneStep); + auto pos = _myPlane->getPosition(); + _myPlane->setPositionX(pos.x + _oneStep.x); +} + +void GameWorld::onPause(){ + Director::getInstance()->pause(); + itemResume->setVisible(true); + menu->setEnabled(false); + isInResume = false; +} + +void GameWorld::onResume(Object* pSender){ + Director::getInstance()->resume(); + itemResume->setVisible(false); + menu->setEnabled(true); + isInResume = true; +} + +void GameWorld::gamelogic(float dt) +{ + addTarget(); +} +/* add target */ +void GameWorld::addTarget(){ + //CCLOG("addTarget."); + Plane* target = NULL; + int index = (rand()%100); + if(index>=30){ + // adds small plane + target = Plane::create(PLANE_SMALL); + target->setTag(1); + }else if(index>=5){ + // adds mid plane + target = Plane::create(PLANE_MID); + target->setTag(2); + }else{ + // adds big plane + target = Plane::create(PLANE_BIG); + target->setTag(3); + } + + //set the target position + float minX = target->getContentSize().width/2; + float maxX = wSize.width-target->getContentSize().width/2; + int rangeX = (int)(maxX-minX); + int actualX = (rand()%rangeX)+(int)minX;//random X + auto posT = Point(Director::getInstance()->getVisibleOrigin().x+actualX,wSize.height+target->getContentSize().height/2); + target->setPosition(posT); + this->addChild(target,100); + // set the target action + auto fDt = target->duration * speedRate; + auto posTar = Point(Director::getInstance()->getVisibleOrigin().x+actualX,0-target->getContentSize().height); + auto actionMove = MoveTo::create(fDt, posTar); + auto actionMoveDone = CallFuncN::create( CC_CALLBACK_1(GameWorld::spriteMoveFinish, this) ); + target->runAction(Sequence::create(actionMove, actionMoveDone, NULL)); + _targets.pushBack(target); +} +/* add bullet */ +void GameWorld::addBullet(float dt){ + //CCLOG("add bullet"); + Point origin = Director::getInstance()->getVisibleOrigin(); + Point planePosition = _myPlane->getPosition(); + if(doubleBulletFlag){ + //CCLOG("double bullet"); + // initializes bullet + auto bulletLeft = Sprite::create(PNG_PLANE, RECT_BULLET); + auto bulletRight = Sprite::create(PNG_PLANE, RECT_BULLET); + int bulletDuration = 1; + + //sets the left bullet + bulletLeft->setPosition(Point(planePosition.x-bulletLeft->getContentSize().width,planePosition.y+bulletLeft->getContentSize().height)); + auto actionMoveLeft = CCMoveTo::create(bulletDuration * ((wSize.height - planePosition.y - bulletLeft->getContentSize().height/2)/wSize.height), Point(planePosition.x-bulletLeft->getContentSize().width,origin.y+wSize.height+bulletLeft->getContentSize().height/2)); + auto actionMoveDoneLeft = CallFuncN::create( CC_CALLBACK_1(GameWorld::spriteMoveFinish, this) ); + bulletLeft->runAction(CCSequence::create(actionMoveLeft,actionMoveDoneLeft,NULL)); + bulletLeft->setTag(6); + + // sets the right bullet + bulletRight->setPosition(Point(planePosition.x+bulletRight->getContentSize().width,planePosition.y+bulletRight->getContentSize().height)); + auto actionMoveRight = MoveTo::create(bulletDuration * ((wSize.height - planePosition.y - bulletRight->getContentSize().height/2)/wSize.height), Point(planePosition.x+bulletRight->getContentSize().width,origin.y+wSize.height+bulletRight->getContentSize().height/2)); + auto actionMoveDoneRight = CallFuncN::create( CC_CALLBACK_1(GameWorld::spriteMoveFinish, this) ); + bulletRight->runAction(CCSequence::create(actionMoveRight,actionMoveDoneRight,NULL)); + bulletRight->setTag(6); + + _bullets.pushBack(bulletRight); + _bullets.pushBack(bulletLeft); + AudioManager::sharedAudioManager()->playAudioById(1);//"shoot.mp3"); + this->addChild(bulletLeft,0); + this->addChild(bulletRight,0); + }else { + //CCLOG("single bullet"); + auto bullet = CCSprite::create(PNG_PLANE, RECT_BULLET); + + bullet->setPosition(Point(planePosition.x,planePosition.y+bullet->getContentSize().height)); + + int bulletDuration = 1; + auto actionMove = MoveTo::create(bulletDuration * ((wSize.height - planePosition.y - bullet->getContentSize().height/2)/wSize.height), Point(planePosition.x,origin.y+wSize.height+bullet->getContentSize().height/2)); + auto actionMoveDone = CallFuncN::create( CC_CALLBACK_1(GameWorld::spriteMoveFinish, this)); + bullet->runAction(Sequence::create(actionMove,actionMoveDone,NULL)); + bullet->setTag(6); + _bullets.pushBack(bullet); + this->addChild(bullet,0); + } +} + +void GameWorld::addPackage(float dt){ + CCLOG("add package"); + + auto package = Plane::create(PLANE_DOUBLE); + Point origin = Director::getInstance()->getVisibleOrigin(); + float minX = package->getContentSize().width/2; + float maxX = wSize.width-package->getContentSize().width/2; + int rangeX = (int)(maxX-minX); + int actualX = (rand()%rangeX)+(int)minX;//random X + package->setPosition(Point(Director::getInstance()->getVisibleOrigin().x+actualX, wSize.height+package->getContentSize().height/2)); + // set the target action + auto actionMove = CCMoveTo::create(package->duration, Point(origin.x+actualX,0-package->getContentSize().height/2)); + auto actionMoveDone = CCCallFuncN::create( CC_CALLBACK_1(GameWorld::spriteMoveFinish, this) ); + package->runAction(CCSequence::create(actionMove,actionMoveDone,NULL)); + package->setTag(4); + this->addChild(package,2); + _targets.pushBack(package); +} +// + + +void GameWorld::updateSpeedRate(float dt){ + //CCLOG("rate:%f",speedRate); + this->speedRate *= 0.90; +} + +// +void GameWorld::updategame(float dt){ + //CCLOG("update game"); + + Vector targets2Delete; + //CCLOG("111, _targets: %zd.", _targets.size()); + Vector::iterator iter;//; + for (iter = _targets.begin(); iter != _targets.end(); iter++) { + // target的碰撞体积 + Plane* target = dynamic_cast(*iter); + Rect targetRect = target->boundingBox(); + // plane的碰撞矩形 + Rect planeRect = _myPlane->boundingBox(); + // plane与target的碰撞检测 + if(targetRect.intersectsRect(planeRect)){ + if(target->getTag() == 4){ + CCLOG("package\n"); + // if package and plane collide + //doubleBulletFlag = true; + this->scheduleOnce(schedule_selector(GameWorld::setDoubleBulletFlagF), 5); + targets2Delete.pushBack(target); + } else { + CCLOG("game end."); + // if enemy and plane collide + auto gameOverScene = GameOverScene::create(); + gameOverScene->getLayer()->getLabel()->setString(" "); + gameOverScene->getLayer()->setCurrentScore(score); + // converts 'int' to 'string' + std::stringstream ss; + std::string str; + ss<>str; + const char *pHighScore = str.c_str(); + // converts 'const char *' to 'int' + const char *highScore = localStorageGetItem("high_score").c_str(); + if(highScore != NULL ){ + int highScoreInt = std::atoi(highScore); + // If higher than the highest score ,your score will replace it; + if(highScoreIntgetLayer()->getScore()->setString(pHighScore); + Director::getInstance()->replaceScene(gameOverScene); + } + } + + //CCLOG("222, bullet: %zd.", _bullets.size()); + Vector bullets2Delete; + Vector::iterator iterB; + //bullet与target的碰撞 + for (iterB = _bullets.begin(); iterB != _bullets.end(); iterB++) { + //CCARRAY_FOREACH(_bullets, bulletsIterator){ + auto bullet = dynamic_cast(*iterB); + Rect bulletRect = bullet->boundingBox(); + if(targetRect.intersectsRect(bulletRect)){ + target->attacked++; + //CCLOG("target attacked: %d.", target->attacked); + bullets2Delete.pushBack(bullet); + } + } + + /* + CCLOG("333"); + for (iterB = bullets2Delete.begin(); iterB != bullets2Delete.end(); iter++) { + //CCARRAY_FOREACH(bullets2Delete, bulletsIterator){ + auto bullet = dynamic_cast(*iterB); + _bullets.eraseObject(bullet); + this->removeChild(bullet); + }*/ + + if(target->attacked >= target->attackedCount){ + targets2Delete.pushBack(target); + } + bullets2Delete.clear(); + } + + //CCLOG("444, targets2Delete: %zd.", targets2Delete.size()); + for (iter = targets2Delete.begin(); iter != targets2Delete.end(); iter++) { + //CCARRAY_FOREACH(targets2Delete, targetIterator){ + auto target = dynamic_cast(*iter); + _targets.eraseObject(target); + if(target->getTag() == 1){ + score+=10; + }else if(target->getTag() == 2){ + score+=20; + }else if(target->getTag() == 3){ + score+=50; + //CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("explosion.mp3"); + }else if(target->getTag() == 4){ + CCLOG("target is the package"); + this->scheduleOnce(schedule_selector(GameWorld::setDoubleBulletFlagF), 5); + doubleBulletFlag = true; + } + this->removeChild(target); + std::stringstream ss; + std::string str; + ss<>str; + const char *p = str.c_str(); + scoreLabel->setString(p); + //CCLOG("888"); + } + targets2Delete.clear(); + //CCLOG("555"); +} + +void GameWorld::setDoubleBulletFlagF(float dt) +{ + doubleBulletFlag = false; +} + +void GameWorld::spriteMoveFinish(Node * sender) +{ + //CCLOG("move finish"); + auto sprite = (Plane*)sender; + if(sprite->getTag()==1||sprite->getTag()==2||sprite->getTag()==3||sprite->getTag()==4||sprite->getTag()==5){//target + //tag 1 is smallplane + //tag 2 is midplane + //tag 3 is bigplane + //tag 4 is package + _targets.eraseObject(sprite); + }else if(sprite->getTag()==6){//bullet + _bullets.eraseObject(sprite); + } + this->removeChild(sprite, true); +} + +void GameWorld::onClick(Object* pSender) +{ + CCLOG("on btn click"); + onPause(); +} diff --git a/cpp-projects/AirCombat/Classes/GameWorld.h b/cpp-projects/AirCombat/Classes/GameWorld.h new file mode 100644 index 0000000..c26db1c --- /dev/null +++ b/cpp-projects/AirCombat/Classes/GameWorld.h @@ -0,0 +1,70 @@ +// +// GameWorld.h +// onfly +// +// Created by cocos2dx on 14-2-20. +// +// + +#ifndef __onfly__GameWorld__ +#define __onfly__GameWorld__ + +#include +#include "cocos2d.h" +#include "Plane.h" + +class GameWorld : public cocos2d::LayerColor +{ +private: + float speedRate; + int score; + bool onClickFlag; + bool doubleBulletFlag; + cocos2d::Menu* menu; + cocos2d::Size wSize; + cocos2d::Sprite* _myPlane; + cocos2d::LabelBMFont* scoreLabel; + cocos2d::Layer* pauseLayer; + cocos2d::MenuItemLabel* itemResume; + cocos2d::EventListenerTouchOneByOne* listener; + + cocos2d::Vector _targets; + cocos2d::Vector _bullets; + + void gamelogic(float dt); + void addTarget(); + void addBullet(float dt); + void updategame(float dt); + void addPackage(float dt); + + void updateSpeedRate(float dt); + void setDoubleBulletFlagF(float dt); + void spriteMoveFinish(cocos2d::Node * sender); + + void onPause(); + void onResume(cocos2d::Object* pSender); + CC_SYNTHESIZE(int, isInResume, inResume); + + cocos2d::Point _oneStep; +public: + static cocos2d::Scene* scene(); + virtual bool init(); + + void onClick(cocos2d::Object* pSender); + + virtual bool onTouchBegan(cocos2d::Touch *touch, cocos2d::Event *unused_event); + virtual void onTouchMoved(cocos2d::Touch *touch, cocos2d::Event *unused_event); + virtual void onTouchEnded(cocos2d::Touch *touch, cocos2d::Event *unused_event); + + void moveUp(bool oneStep=true); + void moveDown(bool oneStep=true); + void moveLeft(bool oneStep=true); + void moveRight(bool oneStep=true); + + void setOneStep(cocos2d::Point step=cocos2d::Point(30, 30)){_oneStep = step;}; + cocos2d::Point getOneStep(){return _oneStep;}; + + CREATE_FUNC(GameWorld); +}; + +#endif /* defined(__onfly__GameWorld__) */ diff --git a/cpp-projects/AirCombat/Classes/HelloWorldScene.cpp b/cpp-projects/AirCombat/Classes/HelloWorldScene.cpp new file mode 100644 index 0000000..265e1da --- /dev/null +++ b/cpp-projects/AirCombat/Classes/HelloWorldScene.cpp @@ -0,0 +1,98 @@ +#include "HelloWorldScene.h" +#include "GameWorld.h" +#include "MiniLayer.h" +#include "Const.h" +#include "storage/local-storage/LocalStorage.h" + +USING_NS_CC; + +Scene* HelloWorld::scene() +{ + // 'scene' is an autorelease object + auto scene = Scene::create(); + + // 'layer' is an autorelease object + auto layer = HelloWorld::create(); + + // add layer as a child to scene + scene->addChild(layer); + + // return the scene + return scene; +} + +// on "init" you need to initialize your instance +bool HelloWorld::init() +{ + ////////////////////////////// + // 1. super init first + if ( !Layer::init() ) + { + return false; + } + + Size visibleSize = Director::getInstance()->getVisibleSize(); + //Point origin = Director::getInstance()->getVisibleOrigin(); + //this->initWithColor(Color4B(126, 126, 126, 126)); //back color to back image. + auto spBack = Sprite::create("mainBack.png"); + spBack->setPosition(visibleSize.width/2, visibleSize.height/2); + addChild(spBack); + + std::string rPath = FileUtils::getInstance()->getWritablePath(); + filePath = rPath + "onFly.dat"; + localStorageInit(filePath); + + float btn_x = visibleSize.width/2; + float btn_y = visibleSize.height*0.65; + // create menu, it's an autorelease object + auto menu = Menu::create(); + menu->setPosition(Point::ZERO); + std::string strName[] = {"Start Game", "High Scores", "Quit"}; + for (int i=0; i<3; i++) { + auto lb = LabelTTF::create(strName[i].c_str(), "Thonburi", 48); + auto btn = MenuItemLabel::create(lb, CC_CALLBACK_1(HelloWorld::onClick, this)); + btn->setTag(i); + btn->setPosition(btn_x, btn_y - (lb->getContentSize().height + 20)* i); + menu->addChild(btn); + } + addChild(menu); + + return true; +} + +void HelloWorld::onClick(Object* pSender) +{ + //CCLOG("on btn click1111"); + int tag = ((Node*)pSender)->getTag(); + switch (tag) { + case TAG_START: + startGame(); + break; + case TAG_SCORE: + highScore(); + break; + case TAG_QUIT: + exitGame(); + break; + + default: + break; + } +} + +void HelloWorld::startGame(){ + auto scene = GameWorld::scene(); + Director::getInstance()->replaceScene(scene); +} + +void HelloWorld::highScore(){ + auto scene = HighScoreScene::create(); + Director::getInstance()->replaceScene(scene); +} + +void HelloWorld::exitGame(){ + Director::getInstance()->end(); +#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) + exit(0); +#endif +} diff --git a/cpp-projects/AirCombat/Classes/HelloWorldScene.h b/cpp-projects/AirCombat/Classes/HelloWorldScene.h new file mode 100644 index 0000000..8d34aa5 --- /dev/null +++ b/cpp-projects/AirCombat/Classes/HelloWorldScene.h @@ -0,0 +1,28 @@ +#ifndef __HELLOWORLD_SCENE_H__ +#define __HELLOWORLD_SCENE_H__ + +#include "cocos2d.h" + +class HelloWorld : public cocos2d::Layer +{ +private: + std::string filePath; +public: + // there's no 'id' in cpp, so we recommend returning the class instance pointer + static cocos2d::Scene* scene(); + + // Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone + virtual bool init(); + + // a selector callback + void onClick(cocos2d::Object* pSender); + + void startGame(); + void exitGame(); + void highScore(); + + // implement the "static create()" method manually + CREATE_FUNC(HelloWorld); +}; + +#endif // __HELLOWORLD_SCENE_H__ diff --git a/cpp-projects/AirCombat/Classes/MiniLayer.cpp b/cpp-projects/AirCombat/Classes/MiniLayer.cpp new file mode 100644 index 0000000..8f0522d --- /dev/null +++ b/cpp-projects/AirCombat/Classes/MiniLayer.cpp @@ -0,0 +1,204 @@ +// +// MiniLayer.cpp +// onfly +// +// Created by cocos2dx on 14-2-20. +// +// + +#include "MiniLayer.h" +#include "HelloWorldScene.h" +#include "GameWorld.h" +#include "storage/local-storage/LocalStorage.h" + +USING_NS_CC; + +//------------------game over layer and scene--------------------// +bool GameOverScene::init() +{ + if (Scene::init()) { + this->_layer = GameOver::create(); + this->_layer->retain(); + this->addChild(_layer); + return true; + }else{ + return false; + } +} + +GameOverScene::~GameOverScene(){ + if(_layer){ + _layer->release(); + _layer = NULL; + } +} + +bool GameOver::init() +{ + if(GameOver::initWithColor(Color4B(126, 126, 126, 126))){ + auto winSize = Director::getInstance()->getVisibleSize(); + auto spBack = Sprite::create("gameBack.png"); + spBack->setPosition(winSize.width/2, winSize.height/2); + addChild(spBack); + auto spScore = Sprite::create("yourScore.png"); + spScore->setPosition(winSize.width/2, winSize.height/2); + addChild(spScore); + //score + this->_score = LabelTTF::create("0", "Thonburi", 55); + _score->retain(); + _score->setPosition(Point(winSize.width/2, winSize.height/2)); + //restart + auto _share = CCLabelTTF::create("Start", "Thonburi", 40); + _share->setColor(Color3B::WHITE); + auto shareMenuItem = MenuItemLabel::create(_share, CC_CALLBACK_1(GameOver::start, this)); + _share->retain(); + //adds + this->_label = CCLabelTTF::create("0", "Thonburi", 40); + _label->retain(); + _label->setPosition(Point(winSize.width/2, winSize.height/2+_label->getContentSize().height/2+_score->getContentSize().height/2)); + //mainmenu + LabelTTF* _mainmenu = CCLabelTTF::create("MainMenu", "Thonburi", 40); + _mainmenu->setColor(Color3B::WHITE); + auto mainmenuMenuItem = MenuItemLabel::create(_mainmenu, CC_CALLBACK_1(GameOver::mainmenu, this)); + _mainmenu->retain(); + Menu* menu = Menu::create(mainmenuMenuItem, shareMenuItem, NULL); + menu->setPosition(Point(_score->getPositionX(),_score->getPositionY()-winSize.height/4)); + menu->alignItemsHorizontallyWithPadding(40); + this->addChild(menu); + this->addChild(_label); + this->addChild(_score); + + auto callGameOver = CallFuncN::create( CC_CALLBACK_1(GameOver::gameOverDone, this));; + this->runAction(Sequence::create(DelayTime::create(5), callGameOver, NULL)); + return true; + } + else{ + return false; + } +} + +void GameOver::gameOverDone(Object* sender) +{ + CCLOG("gameOverDone."); +} + +void GameOver::start(cocos2d::Object* sender) +{ + CCLOG("start to a new game."); + Director::getInstance()->replaceScene( GameWorld::scene() ); +} + +void GameOver::mainmenu(Object* sender) +{ + Director::getInstance()->replaceScene( HelloWorld::scene() ); +} + +GameOver::~GameOver(){ + if(_label){ + _label->release(); + _label = NULL; + } + if(_score){ + _score->release(); + _score = NULL; + } +} + + +//------------------high score layer and scene--------------------// +bool HighScoreScene::init(){ + bool flag = false; + scoreLayer = HighScoreLayer::create(); + this->addChild(scoreLayer); + flag = true; + return flag; +} + +bool HighScoreLayer::init(){ + if(HighScoreLayer::initWithColor(Color4B(255, 255, 255, 255))){ + auto winSize = Director::getInstance()->getVisibleSize(); + auto spBack = Sprite::create("scoreBack.png"); + spBack->setPosition(winSize.width/2, winSize.height/2); + addChild(spBack); + const char* highScore = localStorageGetItem("high_score").c_str(); + if(highScore!= NULL){ + highestLabel = LabelTTF::create(highScore, "Thonburi", 48); + }else{ + highestLabel = LabelTTF::create("0", "Thonburi", 48); + } + + // + this->_label = LabelTTF::create("Your Highest Score", "Thonburi", 40); + _label->retain(); + _label->setColor(Color3B::WHITE); + _label->setPosition(Point(winSize.width/2, winSize.height/2+_label->getContentSize().height/2+highestLabel->getContentSize().height/2+20)); + + //mainmenu + auto _mainmenu = LabelTTF::create("MainMenu", "Thonburi", 40); + auto mainmenuMenuItem = MenuItemLabel::create(_mainmenu, CC_CALLBACK_1(HighScoreLayer::mainmenu, this)); + _mainmenu->setColor(Color3B::WHITE); + + auto _startmenu = LabelTTF::create("Start", "Thonburi", 40); + auto startmenuMenuItem = MenuItemLabel::create(_startmenu, CC_CALLBACK_1(HighScoreLayer::start, this)); + _startmenu->setColor(Color3B::WHITE); + startmenuMenuItem->setPosition(0, _mainmenu->getContentSize().height + 20); + + Menu* menu = Menu::create(mainmenuMenuItem, startmenuMenuItem, NULL); + menu->setPosition(Point(winSize.width/2, winSize.height/4)); + menu->alignItemsHorizontallyWithPadding(40); + this->addChild(_label); + this->addChild(menu); + + //highestLabel->setColor(Color3B::WHITE); + highestLabel->setPosition(Point(winSize.width/2, winSize.height/2)); + this->addChild(highestLabel); + return true; + }else + return false; +} + +void HighScoreLayer::mainmenu(Object* sender){ + auto scene = HelloWorld::scene(); + Director::getInstance()->replaceScene(scene); +} +void HighScoreLayer::start(Object* sender){ + auto scene = GameWorld::scene(); + Director::getInstance()->replaceScene(scene); +} + +//------------------data manager--------------------// + +static DataManager* _dataInstance = NULL; + +DataManager* DataManager::getInstance() +{ + if (_dataInstance == NULL) { + _dataInstance = new DataManager(); + _dataInstance->init(); + } + return _dataInstance; +} + +DataManager::DataManager() +{ + bInit = false; +} +DataManager::~DataManager() +{ + +} + +void DataManager::init() +{ + localStorageInit(); + + bInit = true; +} +void DataManager::setItem(const char *item, const char *content) +{ + localStorageSetItem(item, content); +} +const char* DataManager::getItem(const char *item) +{ + return localStorageGetItem(item).c_str(); +} diff --git a/cpp-projects/AirCombat/Classes/MiniLayer.h b/cpp-projects/AirCombat/Classes/MiniLayer.h new file mode 100644 index 0000000..d18883b --- /dev/null +++ b/cpp-projects/AirCombat/Classes/MiniLayer.h @@ -0,0 +1,71 @@ +// +// MiniLayer.h +// onfly +// +// Created by cocos2dx on 14-2-20. +// +// + +#ifndef __onfly__MiniLayer__ +#define __onfly__MiniLayer__ + +#include +#include "cocos2d.h" + +class GameOver : public cocos2d::LayerColor +{ +public: + GameOver():_label(NULL){} + virtual ~GameOver(); + bool init(); + void gameOverDone(cocos2d::Object* sender); + void start(cocos2d::Object* sender); + void mainmenu(cocos2d::Object* sender); + CREATE_FUNC(GameOver); + + CC_SYNTHESIZE_READONLY(cocos2d::LabelTTF*, _label, Label); + CC_SYNTHESIZE_READONLY(cocos2d::LabelTTF*, _score, Score); + CC_SYNTHESIZE(int, score, CurrentScore); +}; + +class GameOverScene : public cocos2d::Scene{ +public: + GameOverScene():_layer(NULL){} + ~GameOverScene(); + CREATE_FUNC(GameOverScene); + bool init(); + CC_SYNTHESIZE_READONLY(GameOver*, _layer , Layer); +}; + + +class HighScoreLayer:public cocos2d::LayerColor{ +public: + bool init(); + void mainmenu(cocos2d::Object* sender); + void start(cocos2d::Object* sender); + CREATE_FUNC(HighScoreLayer); + CC_SYNTHESIZE(cocos2d::LabelTTF*, highestLabel, HighestLabel); + CC_SYNTHESIZE(cocos2d::LabelTTF*, _label, Label); +}; + +class HighScoreScene:public cocos2d::Scene{ +public: + bool init(); + CREATE_FUNC(HighScoreScene); + CC_SYNTHESIZE(HighScoreLayer*, scoreLayer, ScoreLayer); +}; + +class DataManager{ +private: + bool bInit; + void init(); +public: + static DataManager* getInstance(); + DataManager(); + ~DataManager(); + + const char* getItem(const char* item); + void setItem(const char* item, const char* content); +}; + +#endif /* defined(__onfly__MiniLayer__) */ diff --git a/cpp-projects/AirCombat/Classes/Plane.cpp b/cpp-projects/AirCombat/Classes/Plane.cpp new file mode 100644 index 0000000..d5bbbb3 --- /dev/null +++ b/cpp-projects/AirCombat/Classes/Plane.cpp @@ -0,0 +1,101 @@ +// +// Plane.cpp +// onfly +// +// Created by cocos2dx on 14-2-20. +// +// + +#include "Plane.h" +#include "Const.h" + +USING_NS_CC; + +/***---------------------Plane----------------------***/ +Plane* Plane::create(int type){ + Plane *plane = new Plane(); + Rect rect; + int minDuration = 2.5; + int maxDuration = 4; + switch (type) { + case PLANE_SMALL:{ + rect = RECT_SMALL; + plane->attackedCount = 1; + }break; + case PLANE_MID:{ + minDuration = 3.5; + maxDuration = 4.5; + rect = RECT_MID; + plane->attackedCount = 3; + }break; + case PLANE_BIG:{ + minDuration = 5; + maxDuration = 5; + rect = RECT_BIG; + plane->attackedCount = 10; + }break; + case PLANE_DOUBLE:{ + minDuration = 3.5; + maxDuration = 3.5; + rect = RECT_DOUBLE; + }break; + case PLANE_BULLET:{ + rect = RECT_BULLET; + }break; + + default: + break; + } + int rangeDuration = maxDuration - minDuration; + int actualDuration = minDuration; + if(rangeDuration != 0) + actualDuration += (rand()%rangeDuration); + plane->duration = actualDuration; + plane->attacked = 0; + if (plane && plane->initWithFile(PNG_PLANE, rect)) + { + plane->autorelease(); + return plane; + } + CC_SAFE_DELETE(plane); + return NULL; +} + + +/***---------------------Bullet----------------------***/ +const char* bullets[] = { + "smallBullet", + "midBullet", + "bigBullet", + "flyBullet", +}; +Bullet* Bullet::create(int type){ + auto sp = new Bullet(); + int attack; + switch (type) { + case BULLET_SMALL: + attack = 1; + break; + case BULLET_MID: + attack = 2; + break; + case BULLET_BIG: + attack = 3; + break; + case BULLET_FLY: + attack = 6; + break; + + default: + break; + } + sp->attack = attack; + if (sp && sp->initWithSpriteFrameName(bullets[type])) + { + sp->autorelease(); + return sp; + } + CC_SAFE_DELETE(sp); + return NULL; +} + diff --git a/cpp-projects/AirCombat/Classes/Plane.h b/cpp-projects/AirCombat/Classes/Plane.h new file mode 100644 index 0000000..ea36ff2 --- /dev/null +++ b/cpp-projects/AirCombat/Classes/Plane.h @@ -0,0 +1,30 @@ +// +// Plane.h +// onfly +// +// Created by cocos2dx on 14-2-20. +// +// + +#ifndef __onfly__Plane__ +#define __onfly__Plane__ + +#include +#include "cocos2d.h" + +class Plane : public cocos2d::Sprite { +public: + static Plane* create(int type); + int duration; + int attacked; + int attackedCount; +}; + +class Bullet : public cocos2d::Sprite{ +public: + static Bullet* create(int type); + int attack; + +}; + +#endif /* defined(__onfly__Plane__) */ diff --git a/cpp-projects/AirCombat/Resources/CloseNormal.png b/cpp-projects/AirCombat/Resources/CloseNormal.png new file mode 100644 index 0000000..5657a13 Binary files /dev/null and b/cpp-projects/AirCombat/Resources/CloseNormal.png differ diff --git a/cpp-projects/AirCombat/Resources/CloseSelected.png b/cpp-projects/AirCombat/Resources/CloseSelected.png new file mode 100644 index 0000000..e4c82da Binary files /dev/null and b/cpp-projects/AirCombat/Resources/CloseSelected.png differ diff --git a/cpp-projects/AirCombat/Resources/HelloWorld.png b/cpp-projects/AirCombat/Resources/HelloWorld.png new file mode 100644 index 0000000..5fe89fb Binary files /dev/null and b/cpp-projects/AirCombat/Resources/HelloWorld.png differ diff --git a/cpp-projects/AirCombat/Resources/bg_01.jpg b/cpp-projects/AirCombat/Resources/bg_01.jpg new file mode 100755 index 0000000..6fdb34f Binary files /dev/null and b/cpp-projects/AirCombat/Resources/bg_01.jpg differ diff --git a/cpp-projects/AirCombat/Resources/bg_02.jpg b/cpp-projects/AirCombat/Resources/bg_02.jpg new file mode 100755 index 0000000..3a76087 Binary files /dev/null and b/cpp-projects/AirCombat/Resources/bg_02.jpg differ diff --git a/cpp-projects/AirCombat/Resources/explosion.mp3 b/cpp-projects/AirCombat/Resources/explosion.mp3 new file mode 100755 index 0000000..21bae9a Binary files /dev/null and b/cpp-projects/AirCombat/Resources/explosion.mp3 differ diff --git a/cpp-projects/AirCombat/Resources/flag.wav b/cpp-projects/AirCombat/Resources/flag.wav new file mode 100755 index 0000000..dd54d72 Binary files /dev/null and b/cpp-projects/AirCombat/Resources/flag.wav differ diff --git a/cpp-projects/AirCombat/Resources/flip.wav b/cpp-projects/AirCombat/Resources/flip.wav new file mode 100755 index 0000000..2f42b71 Binary files /dev/null and b/cpp-projects/AirCombat/Resources/flip.wav differ diff --git a/cpp-projects/AirCombat/Resources/font_0.png b/cpp-projects/AirCombat/Resources/font_0.png new file mode 100755 index 0000000..5a09567 Binary files /dev/null and b/cpp-projects/AirCombat/Resources/font_0.png differ diff --git a/cpp-projects/AirCombat/Resources/fonts/Marker Felt.ttf b/cpp-projects/AirCombat/Resources/fonts/Marker Felt.ttf new file mode 100644 index 0000000..3752ef3 Binary files /dev/null and b/cpp-projects/AirCombat/Resources/fonts/Marker Felt.ttf differ diff --git a/cpp-projects/AirCombat/Resources/fonts/arial.ttf b/cpp-projects/AirCombat/Resources/fonts/arial.ttf new file mode 100644 index 0000000..abc899c Binary files /dev/null and b/cpp-projects/AirCombat/Resources/fonts/arial.ttf differ diff --git a/cpp-projects/AirCombat/Resources/gameBack.png b/cpp-projects/AirCombat/Resources/gameBack.png new file mode 100644 index 0000000..b006bc0 Binary files /dev/null and b/cpp-projects/AirCombat/Resources/gameBack.png differ diff --git a/cpp-projects/AirCombat/Resources/icon36x36.png b/cpp-projects/AirCombat/Resources/icon36x36.png new file mode 100755 index 0000000..1c8091a Binary files /dev/null and b/cpp-projects/AirCombat/Resources/icon36x36.png differ diff --git a/cpp-projects/AirCombat/Resources/icon48x48.png b/cpp-projects/AirCombat/Resources/icon48x48.png new file mode 100755 index 0000000..2a35555 Binary files /dev/null and b/cpp-projects/AirCombat/Resources/icon48x48.png differ diff --git a/cpp-projects/AirCombat/Resources/icon72x72.png b/cpp-projects/AirCombat/Resources/icon72x72.png new file mode 100755 index 0000000..a1a45fb Binary files /dev/null and b/cpp-projects/AirCombat/Resources/icon72x72.png differ diff --git a/cpp-projects/AirCombat/Resources/konqa32.fnt b/cpp-projects/AirCombat/Resources/konqa32.fnt new file mode 100644 index 0000000..4a055fd --- /dev/null +++ b/cpp-projects/AirCombat/Resources/konqa32.fnt @@ -0,0 +1,96 @@ +info face="KonQaBlack" size=32 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 +common lineHeight=40 base=26 scaleW=512 scaleH=512 pages=1 packed=0 +page id=0 file="konqa32.png" +chars count=91 +char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=32 xadvance=16 page=0 chnl=0 +char id=36 x=0 y=0 width=18 height=37 xoffset=1 yoffset=0 xadvance=18 page=0 chnl=0 +char id=81 x=18 y=0 width=20 height=30 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0 +char id=64 x=38 y=0 width=20 height=29 xoffset=1 yoffset=5 xadvance=19 page=0 chnl=0 +char id=124 x=58 y=0 width=8 height=28 xoffset=2 yoffset=6 xadvance=10 page=0 chnl=0 +char id=63 x=66 y=0 width=19 height=28 xoffset=1 yoffset=5 xadvance=18 page=0 chnl=0 +char id=56 x=85 y=0 width=20 height=28 xoffset=0 yoffset=5 xadvance=18 page=0 chnl=0 +char id=90 x=105 y=0 width=20 height=28 xoffset=1 yoffset=5 xadvance=19 page=0 chnl=0 +char id=89 x=125 y=0 width=19 height=28 xoffset=1 yoffset=5 xadvance=18 page=0 chnl=0 +char id=87 x=144 y=0 width=28 height=28 xoffset=1 yoffset=5 xadvance=27 page=0 chnl=0 +char id=86 x=172 y=0 width=19 height=28 xoffset=1 yoffset=5 xadvance=18 page=0 chnl=0 +char id=85 x=191 y=0 width=20 height=28 xoffset=1 yoffset=5 xadvance=19 page=0 chnl=0 +char id=84 x=211 y=0 width=19 height=28 xoffset=1 yoffset=5 xadvance=18 page=0 chnl=0 +char id=82 x=230 y=0 width=20 height=28 xoffset=1 yoffset=5 xadvance=19 page=0 chnl=0 +char id=79 x=250 y=0 width=20 height=28 xoffset=1 yoffset=5 xadvance=19 page=0 chnl=0 +char id=92 x=270 y=0 width=18 height=27 xoffset=2 yoffset=6 xadvance=19 page=0 chnl=0 +char id=47 x=288 y=0 width=18 height=27 xoffset=2 yoffset=6 xadvance=19 page=0 chnl=0 +char id=33 x=306 y=0 width=10 height=27 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=0 +char id=48 x=316 y=0 width=21 height=27 xoffset=1 yoffset=6 xadvance=20 page=0 chnl=0 +char id=57 x=337 y=0 width=19 height=27 xoffset=1 yoffset=6 xadvance=17 page=0 chnl=0 +char id=55 x=356 y=0 width=19 height=27 xoffset=1 yoffset=6 xadvance=17 page=0 chnl=0 +char id=54 x=375 y=0 width=20 height=27 xoffset=0 yoffset=6 xadvance=18 page=0 chnl=0 +char id=53 x=395 y=0 width=19 height=27 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=52 x=414 y=0 width=19 height=27 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=51 x=433 y=0 width=18 height=27 xoffset=1 yoffset=6 xadvance=17 page=0 chnl=0 +char id=50 x=451 y=0 width=19 height=27 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=49 x=470 y=0 width=13 height=27 xoffset=1 yoffset=6 xadvance=12 page=0 chnl=0 +char id=88 x=483 y=0 width=20 height=27 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0 +char id=83 x=0 y=37 width=20 height=27 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0 +char id=80 x=20 y=37 width=19 height=27 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0 +char id=78 x=39 y=37 width=21 height=27 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0 +char id=77 x=60 y=37 width=28 height=27 xoffset=1 yoffset=6 xadvance=26 page=0 chnl=0 +char id=76 x=88 y=37 width=19 height=27 xoffset=0 yoffset=6 xadvance=18 page=0 chnl=0 +char id=75 x=107 y=37 width=19 height=27 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=74 x=126 y=37 width=16 height=27 xoffset=1 yoffset=6 xadvance=15 page=0 chnl=0 +char id=73 x=142 y=37 width=12 height=27 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=0 +char id=72 x=154 y=37 width=20 height=27 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0 +char id=71 x=174 y=37 width=19 height=27 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0 +char id=70 x=193 y=37 width=20 height=27 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0 +char id=69 x=213 y=37 width=19 height=27 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0 +char id=68 x=232 y=37 width=19 height=27 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=67 x=251 y=37 width=19 height=27 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0 +char id=66 x=270 y=37 width=19 height=27 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0 +char id=65 x=289 y=37 width=19 height=27 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0 +char id=38 x=308 y=37 width=24 height=26 xoffset=1 yoffset=8 xadvance=23 page=0 chnl=0 +char id=37 x=332 y=37 width=27 height=26 xoffset=0 yoffset=8 xadvance=25 page=0 chnl=0 +char id=106 x=359 y=37 width=11 height=22 xoffset=1 yoffset=11 xadvance=9 page=0 chnl=0 +char id=125 x=370 y=37 width=11 height=21 xoffset=2 yoffset=12 xadvance=10 page=0 chnl=0 +char id=123 x=381 y=37 width=11 height=21 xoffset=0 yoffset=12 xadvance=10 page=0 chnl=0 +char id=93 x=392 y=37 width=11 height=21 xoffset=2 yoffset=12 xadvance=10 page=0 chnl=0 +char id=91 x=403 y=37 width=11 height=21 xoffset=0 yoffset=12 xadvance=10 page=0 chnl=0 +char id=41 x=414 y=37 width=12 height=21 xoffset=1 yoffset=12 xadvance=10 page=0 chnl=0 +char id=40 x=426 y=37 width=13 height=21 xoffset=-1 yoffset=12 xadvance=10 page=0 chnl=0 +char id=122 x=439 y=37 width=16 height=21 xoffset=1 yoffset=12 xadvance=15 page=0 chnl=0 +char id=121 x=455 y=37 width=15 height=21 xoffset=1 yoffset=12 xadvance=15 page=0 chnl=0 +char id=120 x=470 y=37 width=14 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0 +char id=119 x=484 y=37 width=21 height=21 xoffset=1 yoffset=12 xadvance=20 page=0 chnl=0 +char id=118 x=0 y=64 width=14 height=21 xoffset=1 yoffset=12 xadvance=13 page=0 chnl=0 +char id=117 x=14 y=64 width=15 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0 +char id=116 x=29 y=64 width=14 height=21 xoffset=1 yoffset=12 xadvance=13 page=0 chnl=0 +char id=115 x=43 y=64 width=16 height=21 xoffset=1 yoffset=12 xadvance=15 page=0 chnl=0 +char id=114 x=59 y=64 width=14 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0 +char id=113 x=73 y=64 width=15 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0 +char id=112 x=88 y=64 width=16 height=21 xoffset=0 yoffset=12 xadvance=14 page=0 chnl=0 +char id=111 x=104 y=64 width=15 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0 +char id=110 x=119 y=64 width=15 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0 +char id=109 x=134 y=64 width=22 height=21 xoffset=1 yoffset=12 xadvance=21 page=0 chnl=0 +char id=108 x=156 y=64 width=11 height=21 xoffset=1 yoffset=12 xadvance=10 page=0 chnl=0 +char id=107 x=167 y=64 width=15 height=21 xoffset=1 yoffset=12 xadvance=15 page=0 chnl=0 +char id=105 x=182 y=64 width=8 height=21 xoffset=1 yoffset=12 xadvance=7 page=0 chnl=0 +char id=104 x=190 y=64 width=14 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0 +char id=103 x=204 y=64 width=15 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0 +char id=102 x=219 y=64 width=15 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0 +char id=101 x=234 y=64 width=14 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0 +char id=100 x=248 y=64 width=14 height=21 xoffset=1 yoffset=12 xadvance=13 page=0 chnl=0 +char id=99 x=262 y=64 width=15 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0 +char id=98 x=277 y=64 width=15 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0 +char id=97 x=292 y=64 width=16 height=21 xoffset=0 yoffset=12 xadvance=15 page=0 chnl=0 +char id=94 x=308 y=64 width=21 height=20 xoffset=1 yoffset=7 xadvance=21 page=0 chnl=0 +char id=43 x=329 y=64 width=16 height=17 xoffset=1 yoffset=16 xadvance=16 page=0 chnl=0 +char id=61 x=345 y=64 width=17 height=14 xoffset=1 yoffset=16 xadvance=17 page=0 chnl=0 +char id=59 x=362 y=64 width=10 height=14 xoffset=0 yoffset=27 xadvance=8 page=0 chnl=0 +char id=58 x=372 y=64 width=8 height=13 xoffset=1 yoffset=20 xadvance=8 page=0 chnl=0 +char id=42 x=380 y=64 width=12 height=12 xoffset=5 yoffset=6 xadvance=19 page=0 chnl=0 +char id=34 x=392 y=64 width=15 height=11 xoffset=1 yoffset=7 xadvance=14 page=0 chnl=0 +char id=126 x=407 y=64 width=21 height=8 xoffset=3 yoffset=19 xadvance=25 page=0 chnl=0 +char id=44 x=428 y=64 width=9 height=8 xoffset=1 yoffset=29 xadvance=8 page=0 chnl=0 +char id=39 x=437 y=64 width=9 height=8 xoffset=1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=96 x=446 y=64 width=9 height=8 xoffset=1 yoffset=5 xadvance=9 page=0 chnl=0 +char id=45 x=455 y=64 width=17 height=7 xoffset=1 yoffset=17 xadvance=17 page=0 chnl=0 +char id=95 x=472 y=64 width=16 height=6 xoffset=1 yoffset=28 xadvance=17 page=0 chnl=0 +char id=46 x=488 y=64 width=8 height=6 xoffset=0 yoffset=27 xadvance=7 page=0 chnl=0 diff --git a/cpp-projects/AirCombat/Resources/konqa32.png b/cpp-projects/AirCombat/Resources/konqa32.png new file mode 100644 index 0000000..7ed3cee Binary files /dev/null and b/cpp-projects/AirCombat/Resources/konqa32.png differ diff --git a/cpp-projects/AirCombat/Resources/loading.gif b/cpp-projects/AirCombat/Resources/loading.gif new file mode 100755 index 0000000..9309348 Binary files /dev/null and b/cpp-projects/AirCombat/Resources/loading.gif differ diff --git a/cpp-projects/AirCombat/Resources/lose.wav b/cpp-projects/AirCombat/Resources/lose.wav new file mode 100755 index 0000000..faacaa4 Binary files /dev/null and b/cpp-projects/AirCombat/Resources/lose.wav differ diff --git a/cpp-projects/AirCombat/Resources/mainBack.png b/cpp-projects/AirCombat/Resources/mainBack.png new file mode 100644 index 0000000..c31cbb6 Binary files /dev/null and b/cpp-projects/AirCombat/Resources/mainBack.png differ diff --git a/cpp-projects/AirCombat/Resources/plane.png b/cpp-projects/AirCombat/Resources/plane.png new file mode 100755 index 0000000..7042154 Binary files /dev/null and b/cpp-projects/AirCombat/Resources/plane.png differ diff --git a/cpp-projects/AirCombat/Resources/scoreBack.png b/cpp-projects/AirCombat/Resources/scoreBack.png new file mode 100644 index 0000000..445825d Binary files /dev/null and b/cpp-projects/AirCombat/Resources/scoreBack.png differ diff --git a/cpp-projects/AirCombat/Resources/shoot.mp3 b/cpp-projects/AirCombat/Resources/shoot.mp3 new file mode 100755 index 0000000..1f809e3 Binary files /dev/null and b/cpp-projects/AirCombat/Resources/shoot.mp3 differ diff --git a/cpp-projects/AirCombat/Resources/yourScore.png b/cpp-projects/AirCombat/Resources/yourScore.png new file mode 100644 index 0000000..a1b44c6 Binary files /dev/null and b/cpp-projects/AirCombat/Resources/yourScore.png differ diff --git a/cpp-projects/AirCombat/proj.android/.classpath b/cpp-projects/AirCombat/proj.android/.classpath new file mode 100644 index 0000000..0b08408 --- /dev/null +++ b/cpp-projects/AirCombat/proj.android/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/cpp-projects/AirCombat/proj.android/.project b/cpp-projects/AirCombat/proj.android/.project new file mode 100644 index 0000000..907df45 --- /dev/null +++ b/cpp-projects/AirCombat/proj.android/.project @@ -0,0 +1,65 @@ + + + AirCombat + + + + + + com.android.ide.eclipse.adt.ResourceManagerBuilder + + + + + com.android.ide.eclipse.adt.PreCompilerBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + com.android.ide.eclipse.adt.ApkBuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.android.ide.eclipse.adt.AndroidNature + org.eclipse.jdt.core.javanature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + Classes + 2 + COCOS2DX/projects/AirCombat/Classes + + + cocos2dx + 2 + COCOS2DX/cocos2dx + + + extensions + 2 + COCOS2DX/extensions + + + scripting + 2 + COCOS2DX/scripting + + + diff --git a/cpp-projects/AirCombat/proj.android/AndroidManifest.xml b/cpp-projects/AirCombat/proj.android/AndroidManifest.xml new file mode 100644 index 0000000..b28060e --- /dev/null +++ b/cpp-projects/AirCombat/proj.android/AndroidManifest.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cpp-projects/AirCombat/proj.android/README.md b/cpp-projects/AirCombat/proj.android/README.md new file mode 100644 index 0000000..3128356 --- /dev/null +++ b/cpp-projects/AirCombat/proj.android/README.md @@ -0,0 +1,87 @@ +## Prerequisites: + +* Android NDK +* Android SDK **OR** Eclipse ADT Bundle +* Android AVD target installed + +## Building project + +There are two ways of building Android projects. + +1. Eclipse +2. Command Line + +### Import Project in Eclipse + +#### Features: + +1. Complete workflow from Eclipse, including: + * Build C++. + * Clean C++. + * Build and Run whole project. + * Logcat view. + * Debug Java code. + * Javascript editor. + * Project management. +2. True C++ editing, including: + * Code completion. + * Jump to definition. + * Refactoring tools etc. + * Quick open C++ files. + + +#### Setup Eclipse Environment (only once) + + +**NOTE:** This step needs to be done only once to setup the Eclipse environment for cocos2d-x projects. Skip this section if you've done this before. + +1. Download Eclipse ADT bundle from [Google ADT homepage](http://developer.android.com/sdk/index.html) + + **OR** + + Install Eclipse with Java. Add ADT and CDT plugins. + +2. Only for Windows + 1. Install [Cygwin](http://www.cygwin.com/) with make (select make package from the list during the install). + 2. Add `Cygwin\bin` directory to system PATH variable. + 3. Add this line `none /cygdrive cygdrive binary,noacl,posix=0,user 0 0` to `Cygwin\etc\fstab` file. + +3. Set up Variables: + 1. Path Variable `COCOS2DX`: + * Eclipse->Preferences->General->Workspace->**Linked Resources** + * Click **New** button to add a Path Variable `COCOS2DX` pointing to the root cocos2d-x directory. + ![Example](https://lh5.googleusercontent.com/-oPpk9kg3e5w/UUOYlq8n7aI/AAAAAAAAsdQ/zLA4eghBH9U/s400/cocos2d-x-eclipse-vars.png) + + 2. C/C++ Environment Variable `NDK_ROOT`: + * Eclipse->Preferences->C/C++->Build->**Environment**. + * Click **Add** button and add a new variable `NDK_ROOT` pointing to the root NDK directory. + ![Example](https://lh3.googleusercontent.com/-AVcY8IAT0_g/UUOYltoRobI/AAAAAAAAsdM/22D2J9u3sig/s400/cocos2d-x-eclipse-ndk.png) + * Only for Windows: Add new variables **CYGWIN** with value `nodosfilewarning` and **SHELLOPTS** with value `igncr` + +4. Import libcocos2dx library project: + 1. File->New->Project->Android Project From Existing Code. + 2. Click **Browse** button and open `cocos2d-x/cocos2dx/platform/android/java` directory. + 3. Click **Finish** to add project. + +#### Adding and running from Eclipse + +![Example](https://lh3.googleusercontent.com/-SLBOu6e3QbE/UUOcOXYaGqI/AAAAAAAAsdo/tYBY2SylOSM/s288/cocos2d-x-eclipse-project-from-code.png) ![Import](https://lh5.googleusercontent.com/-XzC9Pn65USc/UUOcOTAwizI/AAAAAAAAsdk/4b6YM-oim9Y/s400/cocos2d-x-eclipse-import-project.png) + +1. File->New->Project->Android Project From Existing Code +2. **Browse** to your project directory. eg: `cocos2d-x/cocos2dx/samples/Cpp/TestCpp/proj.android/` +3. Add the project +4. Click **Run** or **Debug** to compile C++ followed by Java and to run on connected device or emulator. + + +### Running project from Command Line + + $ cd cocos2d-x/samples/Cpp/TestCpp/proj.android/ + $ export NDK_ROOT=/path/to/ndk + $ ./build_native.sh + $ ant debug install + +If the last command results in sdk.dir missing error then do: + + $ android list target + $ android update project -p . -t (id from step 6) + $ android update project -p cocos2d-x/cocos2dx/platform/android/java/ -t (id from step 6) diff --git a/cpp-projects/AirCombat/proj.android/ant.properties b/cpp-projects/AirCombat/proj.android/ant.properties new file mode 100644 index 0000000..b0971e8 --- /dev/null +++ b/cpp-projects/AirCombat/proj.android/ant.properties @@ -0,0 +1,17 @@ +# This file is used to override default values used by the Ant build system. +# +# This file must be checked into Version Control Systems, as it is +# integral to the build system of your project. + +# This file is only used by the Ant script. + +# You can use this to override default values such as +# 'source.dir' for the location of your java source folder and +# 'out.dir' for the location of your output folder. + +# You can also use it define how the release builds are signed by declaring +# the following properties: +# 'key.store' for the location of your keystore and +# 'key.alias' for the name of the key to use. +# The password will be asked during the build when you use the 'release' target. + diff --git a/cpp-projects/AirCombat/proj.android/build.xml b/cpp-projects/AirCombat/proj.android/build.xml new file mode 100644 index 0000000..7dca526 --- /dev/null +++ b/cpp-projects/AirCombat/proj.android/build.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cpp-projects/AirCombat/proj.android/build_native.py b/cpp-projects/AirCombat/proj.android/build_native.py new file mode 100755 index 0000000..13a3b37 --- /dev/null +++ b/cpp-projects/AirCombat/proj.android/build_native.py @@ -0,0 +1,166 @@ +#!/usr/bin/python +# build_native.py +# Build native codes + + +import sys +import os, os.path +import shutil +from optparse import OptionParser + +def get_num_of_cpu(): + ''' The build process can be accelerated by running multiple concurrent job processes using the -j-option. + ''' + try: + platform = sys.platform + if platform == 'win32': + if 'NUMBER_OF_PROCESSORS' in os.environ: + return int(os.environ['NUMBER_OF_PROCESSORS']) + else: + return 1 + else: + from numpy.distutils import cpuinfo + return cpuinfo.cpu._getNCPUs() + except Exception: + print "Can't know cpuinfo, use default 1 cpu" + return 1 + +def check_environment_variables_sdk(): + ''' Checking the environment ANDROID_SDK_ROOT, which will be used for building + ''' + + try: + SDK_ROOT = os.environ['ANDROID_SDK_ROOT'] + except Exception: + print "ANDROID_SDK_ROOT not defined. Please define ANDROID_SDK_ROOT in your environment" + sys.exit(1) + + return SDK_ROOT + +def check_environment_variables(): + ''' Checking the environment NDK_ROOT, which will be used for building + ''' + + try: + NDK_ROOT = os.environ['NDK_ROOT'] + except Exception: + print "NDK_ROOT not defined. Please define NDK_ROOT in your environment" + sys.exit(1) + + return NDK_ROOT + +def select_toolchain_version(): + '''Because ndk-r8e uses gcc4.6 as default. gcc4.6 doesn't support c++11. So we should select gcc4.7 when + using ndk-r8e. But gcc4.7 is removed in ndk-r9, so we should determine whether gcc4.7 exist. + Conclution: + ndk-r8e -> use gcc4.7 + ndk-r9 -> use gcc4.8 + ''' + + ndk_root = check_environment_variables() + if os.path.isdir(os.path.join(ndk_root,"toolchains/arm-linux-androideabi-4.8")): + os.environ['NDK_TOOLCHAIN_VERSION'] = '4.8' + print "The Selected NDK toolchain version was 4.8 !" + elif os.path.isdir(os.path.join(ndk_root,"toolchains/arm-linux-androideabi-4.7")): + os.environ['NDK_TOOLCHAIN_VERSION'] = '4.7' + print "The Selected NDK toolchain version was 4.7 !" + else: + print "Couldn't find the gcc toolchain." + exit(1) + +def do_build(cocos_root, ndk_root, app_android_root,ndk_build_param,sdk_root,android_platform,build_mode): + + ndk_path = os.path.join(ndk_root, "ndk-build") + + # windows should use ";" to seperate module paths + platform = sys.platform + if platform == 'win32': + ndk_module_path = 'NDK_MODULE_PATH=%s;%s/external;%s/cocos' % (cocos_root, cocos_root, cocos_root) + else: + ndk_module_path = 'NDK_MODULE_PATH=%s:%s/external:%s/cocos' % (cocos_root, cocos_root, cocos_root) + + num_of_cpu = get_num_of_cpu() + + if ndk_build_param == None: + command = '%s -j%d -C %s %s' % (ndk_path, num_of_cpu, app_android_root, ndk_module_path) + else: + command = '%s -j%d -C %s %s %s' % (ndk_path, num_of_cpu, app_android_root, ''.join(str(e) for e in ndk_build_param), ndk_module_path) + if os.system(command) != 0: + raise Exception("Build dynamic library for project [ " + app_android_root + " ] fails!") + elif android_platform is not None: + sdk_tool_path = os.path.join(sdk_root, "tools/android") + cocoslib_path = os.path.join(cocos_root, "cocos/2d/platform/android/java") + command = '%s update lib-project -t %s -p %s' % (sdk_tool_path,android_platform,cocoslib_path) + if os.system(command) != 0: + raise Exception("update cocos lib-project [ " + cocoslib_path + " ] fails!") + command = '%s update project -t %s -p %s -s' % (sdk_tool_path,android_platform,app_android_root) + if os.system(command) != 0: + raise Exception("update project [ " + app_android_root + " ] fails!") + buildfile_path = os.path.join(app_android_root, "build.xml") + command = 'ant clean %s -f %s -Dsdk.dir=%s' % (build_mode,buildfile_path,sdk_root) + os.system(command) + +def copy_files(src, dst): + + for item in os.listdir(src): + path = os.path.join(src, item) + # Android can not package the file that ends with ".gz" + if not item.startswith('.') and not item.endswith('.gz') and os.path.isfile(path): + shutil.copy(path, dst) + if os.path.isdir(path): + new_dst = os.path.join(dst, item) + os.mkdir(new_dst) + copy_files(path, new_dst) + +def copy_resources(app_android_root): + + # remove app_android_root/assets if it exists + assets_dir = os.path.join(app_android_root, "assets") + if os.path.isdir(assets_dir): + shutil.rmtree(assets_dir) + + # copy resources + os.mkdir(assets_dir) + resources_dir = os.path.join(app_android_root, "../Resources") + if os.path.isdir(resources_dir): + copy_files(resources_dir, assets_dir) + +def build(ndk_build_param,android_platform,build_mode): + + ndk_root = check_environment_variables() + sdk_root = None + select_toolchain_version() + + current_dir = os.path.dirname(os.path.realpath(__file__)) + cocos_root = os.path.join(current_dir, "../cocos2d") + + app_android_root = current_dir + copy_resources(app_android_root) + + if android_platform is not None: + sdk_root = check_environment_variables_sdk() + if android_platform.isdigit(): + android_platform = 'android-'+android_platform + else: + print 'please use vaild android platform' + exit(1) + + if build_mode is None: + build_mode = 'debug' + elif build_mode != 'release': + build_mode = 'debug' + + do_build(cocos_root, ndk_root, app_android_root,ndk_build_param,sdk_root,android_platform,build_mode) + +# -------------- main -------------- +if __name__ == '__main__': + + parser = OptionParser() + parser.add_option("-n", "--ndk", dest="ndk_build_param", help='parameter for ndk-build') + parser.add_option("-p", "--platform", dest="android_platform", + help='parameter for android-update.Without the parameter,the script just build dynamic library for project. Valid android-platform are:[10|11|12|13|14|15|16|17|18|19]') + parser.add_option("-b", "--build", dest="build_mode", + help='the build mode for java project,debug[default] or release.Get more information,please refer to http://developer.android.com/tools/building/building-cmdline.html') + (opts, args) = parser.parse_args() + + build(opts.ndk_build_param,opts.android_platform,opts.build_mode) diff --git a/cpp-projects/AirCombat/proj.android/jni/Android.mk b/cpp-projects/AirCombat/proj.android/jni/Android.mk new file mode 100644 index 0000000..46ea942 --- /dev/null +++ b/cpp-projects/AirCombat/proj.android/jni/Android.mk @@ -0,0 +1,24 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_MODULE := cocos2dcpp_shared + +LOCAL_MODULE_FILENAME := libcocos2dcpp + +LOCAL_SRC_FILES := hellocpp/main.cpp \ + ../../Classes/AppDelegate.cpp \ + ../../Classes/HelloWorldScene.cpp + +LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes + +LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static +LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static +LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static + + +include $(BUILD_SHARED_LIBRARY) + +$(call import-module,2d) +$(call import-module,audio/android) +$(call import-module,Box2D) diff --git a/cpp-projects/AirCombat/proj.android/jni/Application.mk b/cpp-projects/AirCombat/proj.android/jni/Application.mk new file mode 100644 index 0000000..ae98b27 --- /dev/null +++ b/cpp-projects/AirCombat/proj.android/jni/Application.mk @@ -0,0 +1,2 @@ +APP_STL := gnustl_static +APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -DCOCOS2D_DEBUG=1 -std=c++11 -fsigned-char diff --git a/cpp-projects/AirCombat/proj.android/jni/hellocpp/main.cpp b/cpp-projects/AirCombat/proj.android/jni/hellocpp/main.cpp new file mode 100644 index 0000000..a8b36b3 --- /dev/null +++ b/cpp-projects/AirCombat/proj.android/jni/hellocpp/main.cpp @@ -0,0 +1,16 @@ +#include "AppDelegate.h" +#include "cocos2d.h" +#include "CCEventType.h" +#include "platform/android/jni/JniHelper.h" +#include +#include + +#define LOG_TAG "main" +#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__) + +using namespace cocos2d; + +void cocos_android_app_init (struct android_app* app) { + LOGD("cocos_android_app_init"); + AppDelegate *pAppDelegate = new AppDelegate(); +} diff --git a/cpp-projects/AirCombat/proj.android/proguard-project.txt b/cpp-projects/AirCombat/proj.android/proguard-project.txt new file mode 100644 index 0000000..f2fe155 --- /dev/null +++ b/cpp-projects/AirCombat/proj.android/proguard-project.txt @@ -0,0 +1,20 @@ +# To enable ProGuard in your project, edit project.properties +# to define the proguard.config property as described in that file. +# +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in ${sdk.dir}/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the ProGuard +# include property in project.properties. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/cpp-projects/AirCombat/proj.android/project.properties b/cpp-projects/AirCombat/proj.android/project.properties new file mode 100644 index 0000000..870a4a1 --- /dev/null +++ b/cpp-projects/AirCombat/proj.android/project.properties @@ -0,0 +1,13 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system use, +# "ant.properties", and override values to adapt the script to your +# project structure. + +# Project target. +target=android-10 + +android.library.reference.1=../cocos2d/cocos/2d/platform/android/java diff --git a/cpp-projects/AirCombat/proj.android/res/drawable-hdpi/icon.png b/cpp-projects/AirCombat/proj.android/res/drawable-hdpi/icon.png new file mode 100644 index 0000000..8aa4767 Binary files /dev/null and b/cpp-projects/AirCombat/proj.android/res/drawable-hdpi/icon.png differ diff --git a/cpp-projects/AirCombat/proj.android/res/drawable-ldpi/icon.png b/cpp-projects/AirCombat/proj.android/res/drawable-ldpi/icon.png new file mode 100644 index 0000000..17ce11a Binary files /dev/null and b/cpp-projects/AirCombat/proj.android/res/drawable-ldpi/icon.png differ diff --git a/cpp-projects/AirCombat/proj.android/res/drawable-mdpi/icon.png b/cpp-projects/AirCombat/proj.android/res/drawable-mdpi/icon.png new file mode 100644 index 0000000..3780aac Binary files /dev/null and b/cpp-projects/AirCombat/proj.android/res/drawable-mdpi/icon.png differ diff --git a/cpp-projects/AirCombat/proj.android/res/values/strings.xml b/cpp-projects/AirCombat/proj.android/res/values/strings.xml new file mode 100644 index 0000000..244e6fc --- /dev/null +++ b/cpp-projects/AirCombat/proj.android/res/values/strings.xml @@ -0,0 +1,4 @@ + + + AirCombat + diff --git a/cpp-projects/AirCombat/proj.android/src/org/cocos2dx/cpp/Cocos2dxActivity.java b/cpp-projects/AirCombat/proj.android/src/org/cocos2dx/cpp/Cocos2dxActivity.java new file mode 100644 index 0000000..449d068 --- /dev/null +++ b/cpp-projects/AirCombat/proj.android/src/org/cocos2dx/cpp/Cocos2dxActivity.java @@ -0,0 +1,32 @@ +package org.cocos2dx.cpp; + +import android.app.NativeActivity; +import android.os.Bundle; + +public class Cocos2dxActivity extends NativeActivity{ + + @Override + protected void onCreate(Bundle savedInstanceState) { + // TODO Auto-generated method stub + super.onCreate(savedInstanceState); + + //For supports translucency + + //1.change "attribs" in cocos\2d\platform\android\nativeactivity.cpp + /*const EGLint attribs[] = { + EGL_SURFACE_TYPE, EGL_WINDOW_BIT, + EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, + //EGL_BLUE_SIZE, 5, -->delete + //EGL_GREEN_SIZE, 6, -->delete + //EGL_RED_SIZE, 5, -->delete + EGL_BUFFER_SIZE, 32, //-->new field + EGL_DEPTH_SIZE, 16, + EGL_STENCIL_SIZE, 8, + EGL_NONE + };*/ + + //2.Set the format of window + // getWindow().setFormat(PixelFormat.TRANSLUCENT); + + } +} diff --git a/cpp-projects/AirCombat/proj.ios_mac/AirCombat.xcodeproj/project.pbxproj b/cpp-projects/AirCombat/proj.ios_mac/AirCombat.xcodeproj/project.pbxproj new file mode 100644 index 0000000..6222774 --- /dev/null +++ b/cpp-projects/AirCombat/proj.ios_mac/AirCombat.xcodeproj/project.pbxproj @@ -0,0 +1,1118 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 1AC6FB1F180E996B004C840B /* libbox2d Mac.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AC6FAFF180E9839004C840B /* libbox2d Mac.a */; }; + 1AC6FB20180E996B004C840B /* libchipmunk Mac.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AC6FAFD180E9839004C840B /* libchipmunk Mac.a */; }; + 1AC6FB21180E996B004C840B /* libcocos2dx Mac.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AC6FAF9180E9839004C840B /* libcocos2dx Mac.a */; }; + 1AC6FB22180E996B004C840B /* libcocos2dx-extensions Mac.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AC6FAFB180E9839004C840B /* libcocos2dx-extensions Mac.a */; }; + 1AC6FB23180E996B004C840B /* libCocosDenshion Mac.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AC6FB01180E9839004C840B /* libCocosDenshion Mac.a */; }; + 1AC6FB2E180E99EB004C840B /* libbox2d iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AC6FB0D180E9839004C840B /* libbox2d iOS.a */; }; + 1AC6FB2F180E99EB004C840B /* libchipmunk iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AC6FB0B180E9839004C840B /* libchipmunk iOS.a */; }; + 1AC6FB30180E99EB004C840B /* libcocos2dx iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AC6FB07180E9839004C840B /* libcocos2dx iOS.a */; }; + 1AC6FB31180E99EB004C840B /* libcocos2dx-extensions iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AC6FB09180E9839004C840B /* libcocos2dx-extensions iOS.a */; }; + 1AC6FB32180E99EB004C840B /* libCocosDenshion iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AC6FB0F180E9839004C840B /* libCocosDenshion iOS.a */; }; + 1AFAF8B716D35DE700DB1158 /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AFAF8B316D35DE700DB1158 /* AppDelegate.cpp */; }; + 1AFAF8B816D35DE700DB1158 /* HelloWorldScene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AFAF8B516D35DE700DB1158 /* HelloWorldScene.cpp */; }; + 1AFAF8BC16D35E4900DB1158 /* CloseNormal.png in Resources */ = {isa = PBXBuildFile; fileRef = 1AFAF8B916D35E4900DB1158 /* CloseNormal.png */; }; + 1AFAF8BD16D35E4900DB1158 /* CloseSelected.png in Resources */ = {isa = PBXBuildFile; fileRef = 1AFAF8BA16D35E4900DB1158 /* CloseSelected.png */; }; + 1AFAF8BE16D35E4900DB1158 /* HelloWorld.png in Resources */ = {isa = PBXBuildFile; fileRef = 1AFAF8BB16D35E4900DB1158 /* HelloWorld.png */; }; + 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; + 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; + 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; }; + 503AE0F817EB97AB00D1A890 /* Icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 503AE0F617EB97AB00D1A890 /* Icon.icns */; }; + 503AE10017EB989F00D1A890 /* AppController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FB17EB989F00D1A890 /* AppController.mm */; }; + 503AE10117EB989F00D1A890 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FC17EB989F00D1A890 /* main.m */; }; + 503AE10217EB989F00D1A890 /* RootViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FF17EB989F00D1A890 /* RootViewController.mm */; }; + 503AE10517EB98FF00D1A890 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 503AE10317EB98FF00D1A890 /* main.cpp */; }; + 503AE11217EB99EE00D1A890 /* libcurl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 503AE11117EB99EE00D1A890 /* libcurl.dylib */; }; + 503AE11B17EB9C5A00D1A890 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 503AE11A17EB9C5A00D1A890 /* IOKit.framework */; }; + 5087E75317EB910900C73F5D /* CloseNormal.png in Resources */ = {isa = PBXBuildFile; fileRef = 1AFAF8B916D35E4900DB1158 /* CloseNormal.png */; }; + 5087E75417EB910900C73F5D /* CloseSelected.png in Resources */ = {isa = PBXBuildFile; fileRef = 1AFAF8BA16D35E4900DB1158 /* CloseSelected.png */; }; + 5087E75517EB910900C73F5D /* HelloWorld.png in Resources */ = {isa = PBXBuildFile; fileRef = 1AFAF8BB16D35E4900DB1158 /* HelloWorld.png */; }; + 5087E75717EB910900C73F5D /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AFAF8B316D35DE700DB1158 /* AppDelegate.cpp */; }; + 5087E75817EB910900C73F5D /* HelloWorldScene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AFAF8B516D35DE700DB1158 /* HelloWorldScene.cpp */; }; + 5087E76317EB910900C73F5D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; + 5087E76517EB910900C73F5D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; }; + 5087E76717EB910900C73F5D /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB412928DE900B8313A /* libz.dylib */; }; + 5087E76817EB910900C73F5D /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF1C47EA1293683800B63C5D /* QuartzCore.framework */; }; + 5087E76917EB910900C73F5D /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620B132DFF330009C878 /* OpenAL.framework */; }; + 5087E76A17EB910900C73F5D /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620D132DFF430009C878 /* AVFoundation.framework */; }; + 5087E76B17EB910900C73F5D /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620F132DFF4E0009C878 /* AudioToolbox.framework */; }; + 5087E77D17EB970100C73F5D /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77217EB970100C73F5D /* Default-568h@2x.png */; }; + 5087E77E17EB970100C73F5D /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77317EB970100C73F5D /* Default.png */; }; + 5087E77F17EB970100C73F5D /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77417EB970100C73F5D /* Default@2x.png */; }; + 5087E78017EB970100C73F5D /* Icon-114.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77517EB970100C73F5D /* Icon-114.png */; }; + 5087E78117EB970100C73F5D /* Icon-120.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77617EB970100C73F5D /* Icon-120.png */; }; + 5087E78217EB970100C73F5D /* Icon-144.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77717EB970100C73F5D /* Icon-144.png */; }; + 5087E78317EB970100C73F5D /* Icon-152.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77817EB970100C73F5D /* Icon-152.png */; }; + 5087E78417EB970100C73F5D /* Icon-57.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77917EB970100C73F5D /* Icon-57.png */; }; + 5087E78517EB970100C73F5D /* Icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77A17EB970100C73F5D /* Icon-72.png */; }; + 5087E78617EB970100C73F5D /* Icon-76.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77B17EB970100C73F5D /* Icon-76.png */; }; + 5087E78917EB974C00C73F5D /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5087E78817EB974C00C73F5D /* AppKit.framework */; }; + 5087E78B17EB975400C73F5D /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5087E78A17EB975400C73F5D /* OpenGL.framework */; }; + 50EF629617ECD46A001EB2F8 /* Icon-40.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629217ECD46A001EB2F8 /* Icon-40.png */; }; + 50EF629717ECD46A001EB2F8 /* Icon-58.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629317ECD46A001EB2F8 /* Icon-58.png */; }; + 50EF629817ECD46A001EB2F8 /* Icon-80.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629417ECD46A001EB2F8 /* Icon-80.png */; }; + 50EF629917ECD46A001EB2F8 /* Icon-100.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629517ECD46A001EB2F8 /* Icon-100.png */; }; + 50EF62A217ECD613001EB2F8 /* Icon-29.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF62A017ECD613001EB2F8 /* Icon-29.png */; }; + 50EF62A317ECD613001EB2F8 /* Icon-50.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF62A117ECD613001EB2F8 /* Icon-50.png */; }; + BF171245129291EC00B8313A /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB012928DE900B8313A /* OpenGLES.framework */; }; + BF1712471292920000B8313A /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB412928DE900B8313A /* libz.dylib */; }; + BF1C47F01293687400B63C5D /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF1C47EA1293683800B63C5D /* QuartzCore.framework */; }; + D44C620C132DFF330009C878 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620B132DFF330009C878 /* OpenAL.framework */; }; + D44C620E132DFF430009C878 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620D132DFF430009C878 /* AVFoundation.framework */; }; + D44C6210132DFF4E0009C878 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620F132DFF4E0009C878 /* AudioToolbox.framework */; }; + D6B0611B1803AB670077942B /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6B0611A1803AB670077942B /* CoreMotion.framework */; }; + D750E6B118B745770071E3D1 /* AudioManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D750E6A818B745770071E3D1 /* AudioManager.cpp */; }; + D750E6B218B745770071E3D1 /* GameWorld.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D750E6AB18B745770071E3D1 /* GameWorld.cpp */; }; + D750E6B318B745770071E3D1 /* MiniLayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D750E6AD18B745770071E3D1 /* MiniLayer.cpp */; }; + D750E6B418B745770071E3D1 /* Plane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D750E6AF18B745770071E3D1 /* Plane.cpp */; }; + D750E6C918B7458F0071E3D1 /* bg_01.jpg in Resources */ = {isa = PBXBuildFile; fileRef = D750E6B518B7458F0071E3D1 /* bg_01.jpg */; }; + D750E6CA18B7458F0071E3D1 /* bg_02.jpg in Resources */ = {isa = PBXBuildFile; fileRef = D750E6B618B7458F0071E3D1 /* bg_02.jpg */; }; + D750E6CB18B7458F0071E3D1 /* explosion.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = D750E6B718B7458F0071E3D1 /* explosion.mp3 */; }; + D750E6CC18B7458F0071E3D1 /* flag.wav in Resources */ = {isa = PBXBuildFile; fileRef = D750E6B818B7458F0071E3D1 /* flag.wav */; }; + D750E6CD18B7458F0071E3D1 /* flip.wav in Resources */ = {isa = PBXBuildFile; fileRef = D750E6B918B7458F0071E3D1 /* flip.wav */; }; + D750E6CE18B7458F0071E3D1 /* font_0.png in Resources */ = {isa = PBXBuildFile; fileRef = D750E6BA18B7458F0071E3D1 /* font_0.png */; }; + D750E6CF18B7458F0071E3D1 /* gameBack.png in Resources */ = {isa = PBXBuildFile; fileRef = D750E6BB18B7458F0071E3D1 /* gameBack.png */; }; + D750E6D018B7458F0071E3D1 /* icon36x36.png in Resources */ = {isa = PBXBuildFile; fileRef = D750E6BC18B7458F0071E3D1 /* icon36x36.png */; }; + D750E6D118B7458F0071E3D1 /* icon48x48.png in Resources */ = {isa = PBXBuildFile; fileRef = D750E6BD18B7458F0071E3D1 /* icon48x48.png */; }; + D750E6D218B7458F0071E3D1 /* icon72x72.png in Resources */ = {isa = PBXBuildFile; fileRef = D750E6BE18B7458F0071E3D1 /* icon72x72.png */; }; + D750E6D318B7458F0071E3D1 /* konqa32.fnt in Resources */ = {isa = PBXBuildFile; fileRef = D750E6BF18B7458F0071E3D1 /* konqa32.fnt */; }; + D750E6D418B7458F0071E3D1 /* konqa32.png in Resources */ = {isa = PBXBuildFile; fileRef = D750E6C018B7458F0071E3D1 /* konqa32.png */; }; + D750E6D518B7458F0071E3D1 /* loading.gif in Resources */ = {isa = PBXBuildFile; fileRef = D750E6C118B7458F0071E3D1 /* loading.gif */; }; + D750E6D618B7458F0071E3D1 /* lose.wav in Resources */ = {isa = PBXBuildFile; fileRef = D750E6C218B7458F0071E3D1 /* lose.wav */; }; + D750E6D718B7458F0071E3D1 /* mainBack.png in Resources */ = {isa = PBXBuildFile; fileRef = D750E6C318B7458F0071E3D1 /* mainBack.png */; }; + D750E6D818B7458F0071E3D1 /* plane.png in Resources */ = {isa = PBXBuildFile; fileRef = D750E6C418B7458F0071E3D1 /* plane.png */; }; + D750E6D918B7458F0071E3D1 /* scoreBack.png in Resources */ = {isa = PBXBuildFile; fileRef = D750E6C518B7458F0071E3D1 /* scoreBack.png */; }; + D750E6DA18B7458F0071E3D1 /* shoot.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = D750E6C718B7458F0071E3D1 /* shoot.mp3 */; }; + D750E6DB18B7458F0071E3D1 /* yourScore.png in Resources */ = {isa = PBXBuildFile; fileRef = D750E6C818B7458F0071E3D1 /* yourScore.png */; }; + D750E6DD18B745EA0071E3D1 /* libsqlite3.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D750E6DC18B745EA0071E3D1 /* libsqlite3.0.dylib */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 1AC6FAF8180E9839004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1551A33F158F2AB200E66CFE; + remoteInfo = "cocos2dx Mac"; + }; + 1AC6FAFA180E9839004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = A03F2FD617814595006731B9; + remoteInfo = "cocos2dx-extensions Mac"; + }; + 1AC6FAFC180E9839004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = A03F2CB81780BD04006731B9; + remoteInfo = "chipmunk Mac"; + }; + 1AC6FAFE180E9839004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = A03F2D9B1780BDF7006731B9; + remoteInfo = "box2d Mac"; + }; + 1AC6FB00180E9839004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = A03F2ED617814268006731B9; + remoteInfo = "CocosDenshion Mac"; + }; + 1AC6FB02180E9839004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = A03F31FD1781479B006731B9; + remoteInfo = "jsbindings Mac"; + }; + 1AC6FB04180E9839004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1A6FB53017854BC300CDF010; + remoteInfo = "luabindings Mac"; + }; + 1AC6FB06180E9839004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = A07A4D641783777C0073F6A7; + remoteInfo = "cocos2dx iOS"; + }; + 1AC6FB08180E9839004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = A07A4EFC1783867C0073F6A7; + remoteInfo = "cocos2dx-extensions iOS"; + }; + 1AC6FB0A180E9839004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = A07A4F3B178387670073F6A7; + remoteInfo = "chipmunk iOS"; + }; + 1AC6FB0C180E9839004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = A07A4F9E1783876B0073F6A7; + remoteInfo = "box2d iOS"; + }; + 1AC6FB0E180E9839004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = A07A4FB4178387730073F6A7; + remoteInfo = "CocosDenshion iOS"; + }; + 1AC6FB10180E9839004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = A07A5030178387750073F6A7; + remoteInfo = "jsbindings iOS"; + }; + 1AC6FB12180E9839004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1A119791178526AA00D62A44; + remoteInfo = "luabindings iOS"; + }; + 1AC6FB15180E9959004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1551A33E158F2AB200E66CFE; + remoteInfo = "cocos2dx Mac"; + }; + 1AC6FB17180E9959004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = A03F2FC117814595006731B9; + remoteInfo = "cocos2dx-extensions Mac"; + }; + 1AC6FB19180E9959004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = A03F2B781780BD04006731B9; + remoteInfo = "chipmunk Mac"; + }; + 1AC6FB1B180E9959004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = A03F2E9817814268006731B9; + remoteInfo = "CocosDenshion Mac"; + }; + 1AC6FB1D180E9963004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = A03F2D5D1780BDF7006731B9; + remoteInfo = "box2d Mac"; + }; + 1AC6FB24180E99E1004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = A07A4C241783777C0073F6A7; + remoteInfo = "cocos2dx iOS"; + }; + 1AC6FB26180E99E1004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = A07A4E111783867C0073F6A7; + remoteInfo = "cocos2dx-extensions iOS"; + }; + 1AC6FB28180E99E1004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = A07A4EFD178387670073F6A7; + remoteInfo = "chipmunk iOS"; + }; + 1AC6FB2A180E99E1004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = A07A4F3C1783876B0073F6A7; + remoteInfo = "box2d iOS"; + }; + 1AC6FB2C180E99E1004C840B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = A07A4F9F178387730073F6A7; + remoteInfo = "CocosDenshion iOS"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = cocos2d_libs.xcodeproj; path = ../cocos2d/build/cocos2d_libs.xcodeproj; sourceTree = ""; }; + 1ACB3243164770DE00914215 /* libcurl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcurl.a; path = ../../cocos2dx/platform/third_party/ios/libraries/libcurl.a; sourceTree = ""; }; + 1AFAF8B316D35DE700DB1158 /* AppDelegate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AppDelegate.cpp; path = ../Classes/AppDelegate.cpp; sourceTree = ""; }; + 1AFAF8B416D35DE700DB1158 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = ../Classes/AppDelegate.h; sourceTree = ""; }; + 1AFAF8B516D35DE700DB1158 /* HelloWorldScene.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = HelloWorldScene.cpp; path = ../Classes/HelloWorldScene.cpp; sourceTree = ""; }; + 1AFAF8B616D35DE700DB1158 /* HelloWorldScene.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HelloWorldScene.h; path = ../Classes/HelloWorldScene.h; sourceTree = ""; }; + 1AFAF8B916D35E4900DB1158 /* CloseNormal.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = CloseNormal.png; sourceTree = ""; }; + 1AFAF8BA16D35E4900DB1158 /* CloseSelected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = CloseSelected.png; sourceTree = ""; }; + 1AFAF8BB16D35E4900DB1158 /* HelloWorld.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = HelloWorld.png; sourceTree = ""; }; + 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 1D6058910D05DD3D006BFB54 /* AirCombat iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "AirCombat iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 288765A40DF7441C002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 503AE0F617EB97AB00D1A890 /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = Icon.icns; sourceTree = ""; }; + 503AE0F717EB97AB00D1A890 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 503AE0FA17EB989F00D1A890 /* AppController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppController.h; path = ios/AppController.h; sourceTree = SOURCE_ROOT; }; + 503AE0FB17EB989F00D1A890 /* AppController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppController.mm; path = ios/AppController.mm; sourceTree = SOURCE_ROOT; }; + 503AE0FC17EB989F00D1A890 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ios/main.m; sourceTree = SOURCE_ROOT; }; + 503AE0FD17EB989F00D1A890 /* Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Prefix.pch; path = ios/Prefix.pch; sourceTree = SOURCE_ROOT; }; + 503AE0FE17EB989F00D1A890 /* RootViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RootViewController.h; path = ios/RootViewController.h; sourceTree = SOURCE_ROOT; }; + 503AE0FF17EB989F00D1A890 /* RootViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = RootViewController.mm; path = ios/RootViewController.mm; sourceTree = SOURCE_ROOT; }; + 503AE10317EB98FF00D1A890 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = mac/main.cpp; sourceTree = ""; }; + 503AE10417EB98FF00D1A890 /* Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Prefix.pch; path = mac/Prefix.pch; sourceTree = ""; }; + 503AE11117EB99EE00D1A890 /* libcurl.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libcurl.dylib; path = usr/lib/libcurl.dylib; sourceTree = SDKROOT; }; + 503AE11A17EB9C5A00D1A890 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; + 5087E76F17EB910900C73F5D /* AirCombat Mac.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "AirCombat Mac.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5087E77217EB970100C73F5D /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; }; + 5087E77317EB970100C73F5D /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = ""; }; + 5087E77417EB970100C73F5D /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = ""; }; + 5087E77517EB970100C73F5D /* Icon-114.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-114.png"; sourceTree = ""; }; + 5087E77617EB970100C73F5D /* Icon-120.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-120.png"; sourceTree = ""; }; + 5087E77717EB970100C73F5D /* Icon-144.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-144.png"; sourceTree = ""; }; + 5087E77817EB970100C73F5D /* Icon-152.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-152.png"; sourceTree = ""; }; + 5087E77917EB970100C73F5D /* Icon-57.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-57.png"; sourceTree = ""; }; + 5087E77A17EB970100C73F5D /* Icon-72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-72.png"; sourceTree = ""; }; + 5087E77B17EB970100C73F5D /* Icon-76.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-76.png"; sourceTree = ""; }; + 5087E77C17EB970100C73F5D /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 5087E78817EB974C00C73F5D /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; + 5087E78A17EB975400C73F5D /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + 50EF629217ECD46A001EB2F8 /* Icon-40.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-40.png"; sourceTree = ""; }; + 50EF629317ECD46A001EB2F8 /* Icon-58.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-58.png"; sourceTree = ""; }; + 50EF629417ECD46A001EB2F8 /* Icon-80.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-80.png"; sourceTree = ""; }; + 50EF629517ECD46A001EB2F8 /* Icon-100.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-100.png"; sourceTree = ""; }; + 50EF62A017ECD613001EB2F8 /* Icon-29.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-29.png"; sourceTree = ""; }; + 50EF62A117ECD613001EB2F8 /* Icon-50.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-50.png"; sourceTree = ""; }; + BF170DB012928DE900B8313A /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + BF170DB412928DE900B8313A /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; + BF1C47EA1293683800B63C5D /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + D44C620B132DFF330009C878 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; }; + D44C620D132DFF430009C878 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + D44C620F132DFF4E0009C878 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + D6B0611A1803AB670077942B /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/System/Library/Frameworks/CoreMotion.framework; sourceTree = DEVELOPER_DIR; }; + D750E6A818B745770071E3D1 /* AudioManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AudioManager.cpp; path = ../Classes/AudioManager.cpp; sourceTree = ""; }; + D750E6A918B745770071E3D1 /* AudioManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AudioManager.h; path = ../Classes/AudioManager.h; sourceTree = ""; }; + D750E6AA18B745770071E3D1 /* Const.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Const.h; path = ../Classes/Const.h; sourceTree = ""; }; + D750E6AB18B745770071E3D1 /* GameWorld.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GameWorld.cpp; path = ../Classes/GameWorld.cpp; sourceTree = ""; }; + D750E6AC18B745770071E3D1 /* GameWorld.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GameWorld.h; path = ../Classes/GameWorld.h; sourceTree = ""; }; + D750E6AD18B745770071E3D1 /* MiniLayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = MiniLayer.cpp; path = ../Classes/MiniLayer.cpp; sourceTree = ""; }; + D750E6AE18B745770071E3D1 /* MiniLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MiniLayer.h; path = ../Classes/MiniLayer.h; sourceTree = ""; }; + D750E6AF18B745770071E3D1 /* Plane.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Plane.cpp; path = ../Classes/Plane.cpp; sourceTree = ""; }; + D750E6B018B745770071E3D1 /* Plane.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Plane.h; path = ../Classes/Plane.h; sourceTree = ""; }; + D750E6B518B7458F0071E3D1 /* bg_01.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = bg_01.jpg; sourceTree = ""; }; + D750E6B618B7458F0071E3D1 /* bg_02.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = bg_02.jpg; sourceTree = ""; }; + D750E6B718B7458F0071E3D1 /* explosion.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = explosion.mp3; sourceTree = ""; }; + D750E6B818B7458F0071E3D1 /* flag.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = flag.wav; sourceTree = ""; }; + D750E6B918B7458F0071E3D1 /* flip.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = flip.wav; sourceTree = ""; }; + D750E6BA18B7458F0071E3D1 /* font_0.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = font_0.png; sourceTree = ""; }; + D750E6BB18B7458F0071E3D1 /* gameBack.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = gameBack.png; sourceTree = ""; }; + D750E6BC18B7458F0071E3D1 /* icon36x36.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon36x36.png; sourceTree = ""; }; + D750E6BD18B7458F0071E3D1 /* icon48x48.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon48x48.png; sourceTree = ""; }; + D750E6BE18B7458F0071E3D1 /* icon72x72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon72x72.png; sourceTree = ""; }; + D750E6BF18B7458F0071E3D1 /* konqa32.fnt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = konqa32.fnt; sourceTree = ""; }; + D750E6C018B7458F0071E3D1 /* konqa32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = konqa32.png; sourceTree = ""; }; + D750E6C118B7458F0071E3D1 /* loading.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = loading.gif; sourceTree = ""; }; + D750E6C218B7458F0071E3D1 /* lose.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = lose.wav; sourceTree = ""; }; + D750E6C318B7458F0071E3D1 /* mainBack.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = mainBack.png; sourceTree = ""; }; + D750E6C418B7458F0071E3D1 /* plane.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = plane.png; sourceTree = ""; }; + D750E6C518B7458F0071E3D1 /* scoreBack.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = scoreBack.png; sourceTree = ""; }; + D750E6C718B7458F0071E3D1 /* shoot.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = shoot.mp3; sourceTree = ""; }; + D750E6C818B7458F0071E3D1 /* yourScore.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = yourScore.png; sourceTree = ""; }; + D750E6DC18B745EA0071E3D1 /* libsqlite3.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.0.dylib; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/usr/lib/libsqlite3.0.dylib; sourceTree = DEVELOPER_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 1D60588F0D05DD3D006BFB54 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D750E6DD18B745EA0071E3D1 /* libsqlite3.0.dylib in Frameworks */, + 1AC6FB2E180E99EB004C840B /* libbox2d iOS.a in Frameworks */, + 1AC6FB2F180E99EB004C840B /* libchipmunk iOS.a in Frameworks */, + 1AC6FB30180E99EB004C840B /* libcocos2dx iOS.a in Frameworks */, + 1AC6FB31180E99EB004C840B /* libcocos2dx-extensions iOS.a in Frameworks */, + 1AC6FB32180E99EB004C840B /* libCocosDenshion iOS.a in Frameworks */, + D6B0611B1803AB670077942B /* CoreMotion.framework in Frameworks */, + 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */, + 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */, + 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */, + BF171245129291EC00B8313A /* OpenGLES.framework in Frameworks */, + BF1712471292920000B8313A /* libz.dylib in Frameworks */, + BF1C47F01293687400B63C5D /* QuartzCore.framework in Frameworks */, + D44C620C132DFF330009C878 /* OpenAL.framework in Frameworks */, + D44C620E132DFF430009C878 /* AVFoundation.framework in Frameworks */, + D44C6210132DFF4E0009C878 /* AudioToolbox.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5087E75C17EB910900C73F5D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1AC6FB1F180E996B004C840B /* libbox2d Mac.a in Frameworks */, + 1AC6FB20180E996B004C840B /* libchipmunk Mac.a in Frameworks */, + 1AC6FB21180E996B004C840B /* libcocos2dx Mac.a in Frameworks */, + 1AC6FB22180E996B004C840B /* libcocos2dx-extensions Mac.a in Frameworks */, + 1AC6FB23180E996B004C840B /* libCocosDenshion Mac.a in Frameworks */, + 503AE11217EB99EE00D1A890 /* libcurl.dylib in Frameworks */, + 5087E76717EB910900C73F5D /* libz.dylib in Frameworks */, + 503AE11B17EB9C5A00D1A890 /* IOKit.framework in Frameworks */, + 5087E78B17EB975400C73F5D /* OpenGL.framework in Frameworks */, + 5087E78917EB974C00C73F5D /* AppKit.framework in Frameworks */, + 5087E76317EB910900C73F5D /* Foundation.framework in Frameworks */, + 5087E76517EB910900C73F5D /* CoreGraphics.framework in Frameworks */, + 5087E76817EB910900C73F5D /* QuartzCore.framework in Frameworks */, + 5087E76917EB910900C73F5D /* OpenAL.framework in Frameworks */, + 5087E76A17EB910900C73F5D /* AVFoundation.framework in Frameworks */, + 5087E76B17EB910900C73F5D /* AudioToolbox.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 080E96DDFE201D6D7F000001 /* ios */ = { + isa = PBXGroup; + children = ( + 5087E77117EB970100C73F5D /* Icons */, + 503AE0FA17EB989F00D1A890 /* AppController.h */, + 503AE0FB17EB989F00D1A890 /* AppController.mm */, + 503AE0FC17EB989F00D1A890 /* main.m */, + 503AE0FD17EB989F00D1A890 /* Prefix.pch */, + 503AE0FE17EB989F00D1A890 /* RootViewController.h */, + 503AE0FF17EB989F00D1A890 /* RootViewController.mm */, + ); + name = ios; + path = Classes; + sourceTree = ""; + }; + 15AA9C4015B7EC450033D6C2 /* Classes */ = { + isa = PBXGroup; + children = ( + D750E6A818B745770071E3D1 /* AudioManager.cpp */, + D750E6A918B745770071E3D1 /* AudioManager.h */, + D750E6AA18B745770071E3D1 /* Const.h */, + D750E6AB18B745770071E3D1 /* GameWorld.cpp */, + D750E6AC18B745770071E3D1 /* GameWorld.h */, + D750E6AD18B745770071E3D1 /* MiniLayer.cpp */, + D750E6AE18B745770071E3D1 /* MiniLayer.h */, + D750E6AF18B745770071E3D1 /* Plane.cpp */, + D750E6B018B745770071E3D1 /* Plane.h */, + 1AFAF8B316D35DE700DB1158 /* AppDelegate.cpp */, + 1AFAF8B416D35DE700DB1158 /* AppDelegate.h */, + 1AFAF8B516D35DE700DB1158 /* HelloWorldScene.cpp */, + 1AFAF8B616D35DE700DB1158 /* HelloWorldScene.h */, + ); + name = Classes; + path = ../classes; + sourceTree = ""; + }; + 19C28FACFE9D520D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 1D6058910D05DD3D006BFB54 /* AirCombat iOS.app */, + 5087E76F17EB910900C73F5D /* AirCombat Mac.app */, + ); + name = Products; + sourceTree = ""; + }; + 1AC6FAE6180E9839004C840B /* Products */ = { + isa = PBXGroup; + children = ( + 1AC6FAF9180E9839004C840B /* libcocos2dx Mac.a */, + 1AC6FAFB180E9839004C840B /* libcocos2dx-extensions Mac.a */, + 1AC6FAFD180E9839004C840B /* libchipmunk Mac.a */, + 1AC6FAFF180E9839004C840B /* libbox2d Mac.a */, + 1AC6FB01180E9839004C840B /* libCocosDenshion Mac.a */, + 1AC6FB03180E9839004C840B /* libjsbindings Mac.a */, + 1AC6FB05180E9839004C840B /* libluabindings Mac.a */, + 1AC6FB07180E9839004C840B /* libcocos2dx iOS.a */, + 1AC6FB09180E9839004C840B /* libcocos2dx-extensions iOS.a */, + 1AC6FB0B180E9839004C840B /* libchipmunk iOS.a */, + 1AC6FB0D180E9839004C840B /* libbox2d iOS.a */, + 1AC6FB0F180E9839004C840B /* libCocosDenshion iOS.a */, + 1AC6FB11180E9839004C840B /* libjsbindings iOS.a */, + 1AC6FB13180E9839004C840B /* libluabindings iOS.a */, + ); + name = Products; + sourceTree = ""; + }; + 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { + isa = PBXGroup; + children = ( + 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */, + 15AA9C4015B7EC450033D6C2 /* Classes */, + 29B97323FDCFA39411CA2CEA /* Frameworks */, + 080E96DDFE201D6D7F000001 /* ios */, + 503AE10617EB990700D1A890 /* mac */, + 19C28FACFE9D520D11CA2CBB /* Products */, + 78C7DDAA14EBA5050085D0C2 /* Resources */, + ); + name = CustomTemplate; + sourceTree = ""; + }; + 29B97323FDCFA39411CA2CEA /* Frameworks */ = { + isa = PBXGroup; + children = ( + D750E6DC18B745EA0071E3D1 /* libsqlite3.0.dylib */, + D6B0611A1803AB670077942B /* CoreMotion.framework */, + 503AE11A17EB9C5A00D1A890 /* IOKit.framework */, + 503AE11117EB99EE00D1A890 /* libcurl.dylib */, + 5087E78A17EB975400C73F5D /* OpenGL.framework */, + 5087E78817EB974C00C73F5D /* AppKit.framework */, + 1ACB3243164770DE00914215 /* libcurl.a */, + BF170DB412928DE900B8313A /* libz.dylib */, + D44C620F132DFF4E0009C878 /* AudioToolbox.framework */, + D44C620D132DFF430009C878 /* AVFoundation.framework */, + 288765A40DF7441C002DB57D /* CoreGraphics.framework */, + 1D30AB110D05D00D00671497 /* Foundation.framework */, + D44C620B132DFF330009C878 /* OpenAL.framework */, + BF170DB012928DE900B8313A /* OpenGLES.framework */, + BF1C47EA1293683800B63C5D /* QuartzCore.framework */, + 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 503AE0F517EB97AB00D1A890 /* Icons */ = { + isa = PBXGroup; + children = ( + 503AE0F617EB97AB00D1A890 /* Icon.icns */, + 503AE0F717EB97AB00D1A890 /* Info.plist */, + ); + name = Icons; + path = mac; + sourceTree = SOURCE_ROOT; + }; + 503AE10617EB990700D1A890 /* mac */ = { + isa = PBXGroup; + children = ( + 503AE0F517EB97AB00D1A890 /* Icons */, + 503AE10317EB98FF00D1A890 /* main.cpp */, + 503AE10417EB98FF00D1A890 /* Prefix.pch */, + ); + name = mac; + sourceTree = ""; + }; + 5087E77117EB970100C73F5D /* Icons */ = { + isa = PBXGroup; + children = ( + 5087E77217EB970100C73F5D /* Default-568h@2x.png */, + 5087E77317EB970100C73F5D /* Default.png */, + 5087E77417EB970100C73F5D /* Default@2x.png */, + 50EF62A017ECD613001EB2F8 /* Icon-29.png */, + 50EF62A117ECD613001EB2F8 /* Icon-50.png */, + 50EF629217ECD46A001EB2F8 /* Icon-40.png */, + 50EF629317ECD46A001EB2F8 /* Icon-58.png */, + 50EF629417ECD46A001EB2F8 /* Icon-80.png */, + 50EF629517ECD46A001EB2F8 /* Icon-100.png */, + 5087E77517EB970100C73F5D /* Icon-114.png */, + 5087E77617EB970100C73F5D /* Icon-120.png */, + 5087E77717EB970100C73F5D /* Icon-144.png */, + 5087E77817EB970100C73F5D /* Icon-152.png */, + 5087E77917EB970100C73F5D /* Icon-57.png */, + 5087E77A17EB970100C73F5D /* Icon-72.png */, + 5087E77B17EB970100C73F5D /* Icon-76.png */, + 5087E77C17EB970100C73F5D /* Info.plist */, + ); + name = Icons; + path = ios; + sourceTree = SOURCE_ROOT; + }; + 78C7DDAA14EBA5050085D0C2 /* Resources */ = { + isa = PBXGroup; + children = ( + D750E6B518B7458F0071E3D1 /* bg_01.jpg */, + D750E6B618B7458F0071E3D1 /* bg_02.jpg */, + D750E6B718B7458F0071E3D1 /* explosion.mp3 */, + D750E6B818B7458F0071E3D1 /* flag.wav */, + D750E6B918B7458F0071E3D1 /* flip.wav */, + D750E6BA18B7458F0071E3D1 /* font_0.png */, + D750E6BB18B7458F0071E3D1 /* gameBack.png */, + D750E6BC18B7458F0071E3D1 /* icon36x36.png */, + D750E6BD18B7458F0071E3D1 /* icon48x48.png */, + D750E6BE18B7458F0071E3D1 /* icon72x72.png */, + D750E6BF18B7458F0071E3D1 /* konqa32.fnt */, + D750E6C018B7458F0071E3D1 /* konqa32.png */, + D750E6C118B7458F0071E3D1 /* loading.gif */, + D750E6C218B7458F0071E3D1 /* lose.wav */, + D750E6C318B7458F0071E3D1 /* mainBack.png */, + D750E6C418B7458F0071E3D1 /* plane.png */, + D750E6C518B7458F0071E3D1 /* scoreBack.png */, + D750E6C718B7458F0071E3D1 /* shoot.mp3 */, + D750E6C818B7458F0071E3D1 /* yourScore.png */, + 1AFAF8B916D35E4900DB1158 /* CloseNormal.png */, + 1AFAF8BA16D35E4900DB1158 /* CloseSelected.png */, + 1AFAF8BB16D35E4900DB1158 /* HelloWorld.png */, + ); + name = Resources; + path = ../Resources; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 1D6058900D05DD3D006BFB54 /* AirCombat iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "AirCombat iOS" */; + buildPhases = ( + 1D60588D0D05DD3D006BFB54 /* Resources */, + 1D60588E0D05DD3D006BFB54 /* Sources */, + 1D60588F0D05DD3D006BFB54 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 1AC6FB25180E99E1004C840B /* PBXTargetDependency */, + 1AC6FB27180E99E1004C840B /* PBXTargetDependency */, + 1AC6FB29180E99E1004C840B /* PBXTargetDependency */, + 1AC6FB2B180E99E1004C840B /* PBXTargetDependency */, + 1AC6FB2D180E99E1004C840B /* PBXTargetDependency */, + ); + name = "AirCombat iOS"; + productName = iphone; + productReference = 1D6058910D05DD3D006BFB54 /* AirCombat iOS.app */; + productType = "com.apple.product-type.application"; + }; + 5087E73D17EB910900C73F5D /* AirCombat Mac */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5087E76C17EB910900C73F5D /* Build configuration list for PBXNativeTarget "AirCombat Mac" */; + buildPhases = ( + 5087E74817EB910900C73F5D /* Resources */, + 5087E75617EB910900C73F5D /* Sources */, + 5087E75C17EB910900C73F5D /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 1AC6FB1E180E9963004C840B /* PBXTargetDependency */, + 1AC6FB16180E9959004C840B /* PBXTargetDependency */, + 1AC6FB18180E9959004C840B /* PBXTargetDependency */, + 1AC6FB1A180E9959004C840B /* PBXTargetDependency */, + 1AC6FB1C180E9959004C840B /* PBXTargetDependency */, + ); + name = "AirCombat Mac"; + productName = iphone; + productReference = 5087E76F17EB910900C73F5D /* AirCombat Mac.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 29B97313FDCFA39411CA2CEA /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0500; + TargetAttributes = { + 1D6058900D05DD3D006BFB54 = { + DevelopmentTeam = MDDB52YB8L; + }; + }; + }; + buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "AirCombat" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + ); + mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 1AC6FAE6180E9839004C840B /* Products */; + ProjectRef = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 1D6058900D05DD3D006BFB54 /* AirCombat iOS */, + 5087E73D17EB910900C73F5D /* AirCombat Mac */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 1AC6FAF9180E9839004C840B /* libcocos2dx Mac.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libcocos2dx Mac.a"; + remoteRef = 1AC6FAF8180E9839004C840B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 1AC6FAFB180E9839004C840B /* libcocos2dx-extensions Mac.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libcocos2dx-extensions Mac.a"; + remoteRef = 1AC6FAFA180E9839004C840B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 1AC6FAFD180E9839004C840B /* libchipmunk Mac.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libchipmunk Mac.a"; + remoteRef = 1AC6FAFC180E9839004C840B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 1AC6FAFF180E9839004C840B /* libbox2d Mac.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libbox2d Mac.a"; + remoteRef = 1AC6FAFE180E9839004C840B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 1AC6FB01180E9839004C840B /* libCocosDenshion Mac.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libCocosDenshion Mac.a"; + remoteRef = 1AC6FB00180E9839004C840B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 1AC6FB03180E9839004C840B /* libjsbindings Mac.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libjsbindings Mac.a"; + remoteRef = 1AC6FB02180E9839004C840B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 1AC6FB05180E9839004C840B /* libluabindings Mac.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libluabindings Mac.a"; + remoteRef = 1AC6FB04180E9839004C840B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 1AC6FB07180E9839004C840B /* libcocos2dx iOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libcocos2dx iOS.a"; + remoteRef = 1AC6FB06180E9839004C840B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 1AC6FB09180E9839004C840B /* libcocos2dx-extensions iOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libcocos2dx-extensions iOS.a"; + remoteRef = 1AC6FB08180E9839004C840B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 1AC6FB0B180E9839004C840B /* libchipmunk iOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libchipmunk iOS.a"; + remoteRef = 1AC6FB0A180E9839004C840B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 1AC6FB0D180E9839004C840B /* libbox2d iOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libbox2d iOS.a"; + remoteRef = 1AC6FB0C180E9839004C840B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 1AC6FB0F180E9839004C840B /* libCocosDenshion iOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libCocosDenshion iOS.a"; + remoteRef = 1AC6FB0E180E9839004C840B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 1AC6FB11180E9839004C840B /* libjsbindings iOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libjsbindings iOS.a"; + remoteRef = 1AC6FB10180E9839004C840B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 1AC6FB13180E9839004C840B /* libluabindings iOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libluabindings iOS.a"; + remoteRef = 1AC6FB12180E9839004C840B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 1D60588D0D05DD3D006BFB54 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5087E78117EB970100C73F5D /* Icon-120.png in Resources */, + D750E6DB18B7458F0071E3D1 /* yourScore.png in Resources */, + D750E6D218B7458F0071E3D1 /* icon72x72.png in Resources */, + D750E6C918B7458F0071E3D1 /* bg_01.jpg in Resources */, + 5087E78617EB970100C73F5D /* Icon-76.png in Resources */, + 5087E77F17EB970100C73F5D /* Default@2x.png in Resources */, + 50EF629917ECD46A001EB2F8 /* Icon-100.png in Resources */, + 1AFAF8BC16D35E4900DB1158 /* CloseNormal.png in Resources */, + 5087E78317EB970100C73F5D /* Icon-152.png in Resources */, + 5087E77D17EB970100C73F5D /* Default-568h@2x.png in Resources */, + D750E6CC18B7458F0071E3D1 /* flag.wav in Resources */, + 5087E78517EB970100C73F5D /* Icon-72.png in Resources */, + D750E6CA18B7458F0071E3D1 /* bg_02.jpg in Resources */, + D750E6D818B7458F0071E3D1 /* plane.png in Resources */, + D750E6D418B7458F0071E3D1 /* konqa32.png in Resources */, + D750E6D518B7458F0071E3D1 /* loading.gif in Resources */, + 1AFAF8BD16D35E4900DB1158 /* CloseSelected.png in Resources */, + 50EF62A317ECD613001EB2F8 /* Icon-50.png in Resources */, + 5087E78017EB970100C73F5D /* Icon-114.png in Resources */, + 1AFAF8BE16D35E4900DB1158 /* HelloWorld.png in Resources */, + D750E6D618B7458F0071E3D1 /* lose.wav in Resources */, + D750E6CD18B7458F0071E3D1 /* flip.wav in Resources */, + D750E6CF18B7458F0071E3D1 /* gameBack.png in Resources */, + D750E6D718B7458F0071E3D1 /* mainBack.png in Resources */, + D750E6D118B7458F0071E3D1 /* icon48x48.png in Resources */, + D750E6D018B7458F0071E3D1 /* icon36x36.png in Resources */, + 50EF62A217ECD613001EB2F8 /* Icon-29.png in Resources */, + 50EF629617ECD46A001EB2F8 /* Icon-40.png in Resources */, + 5087E78217EB970100C73F5D /* Icon-144.png in Resources */, + D750E6CE18B7458F0071E3D1 /* font_0.png in Resources */, + 50EF629817ECD46A001EB2F8 /* Icon-80.png in Resources */, + D750E6CB18B7458F0071E3D1 /* explosion.mp3 in Resources */, + D750E6D318B7458F0071E3D1 /* konqa32.fnt in Resources */, + 5087E78417EB970100C73F5D /* Icon-57.png in Resources */, + D750E6D918B7458F0071E3D1 /* scoreBack.png in Resources */, + 5087E77E17EB970100C73F5D /* Default.png in Resources */, + D750E6DA18B7458F0071E3D1 /* shoot.mp3 in Resources */, + 50EF629717ECD46A001EB2F8 /* Icon-58.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5087E74817EB910900C73F5D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5087E75317EB910900C73F5D /* CloseNormal.png in Resources */, + 503AE0F817EB97AB00D1A890 /* Icon.icns in Resources */, + 5087E75417EB910900C73F5D /* CloseSelected.png in Resources */, + 5087E75517EB910900C73F5D /* HelloWorld.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 1D60588E0D05DD3D006BFB54 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D750E6B318B745770071E3D1 /* MiniLayer.cpp in Sources */, + D750E6B118B745770071E3D1 /* AudioManager.cpp in Sources */, + 503AE10017EB989F00D1A890 /* AppController.mm in Sources */, + D750E6B418B745770071E3D1 /* Plane.cpp in Sources */, + 503AE10217EB989F00D1A890 /* RootViewController.mm in Sources */, + 1AFAF8B716D35DE700DB1158 /* AppDelegate.cpp in Sources */, + 503AE10117EB989F00D1A890 /* main.m in Sources */, + D750E6B218B745770071E3D1 /* GameWorld.cpp in Sources */, + 1AFAF8B816D35DE700DB1158 /* HelloWorldScene.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5087E75617EB910900C73F5D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5087E75717EB910900C73F5D /* AppDelegate.cpp in Sources */, + 5087E75817EB910900C73F5D /* HelloWorldScene.cpp in Sources */, + 503AE10517EB98FF00D1A890 /* main.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 1AC6FB16180E9959004C840B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "cocos2dx Mac"; + targetProxy = 1AC6FB15180E9959004C840B /* PBXContainerItemProxy */; + }; + 1AC6FB18180E9959004C840B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "cocos2dx-extensions Mac"; + targetProxy = 1AC6FB17180E9959004C840B /* PBXContainerItemProxy */; + }; + 1AC6FB1A180E9959004C840B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "chipmunk Mac"; + targetProxy = 1AC6FB19180E9959004C840B /* PBXContainerItemProxy */; + }; + 1AC6FB1C180E9959004C840B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "CocosDenshion Mac"; + targetProxy = 1AC6FB1B180E9959004C840B /* PBXContainerItemProxy */; + }; + 1AC6FB1E180E9963004C840B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "box2d Mac"; + targetProxy = 1AC6FB1D180E9963004C840B /* PBXContainerItemProxy */; + }; + 1AC6FB25180E99E1004C840B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "cocos2dx iOS"; + targetProxy = 1AC6FB24180E99E1004C840B /* PBXContainerItemProxy */; + }; + 1AC6FB27180E99E1004C840B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "cocos2dx-extensions iOS"; + targetProxy = 1AC6FB26180E99E1004C840B /* PBXContainerItemProxy */; + }; + 1AC6FB29180E99E1004C840B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "chipmunk iOS"; + targetProxy = 1AC6FB28180E99E1004C840B /* PBXContainerItemProxy */; + }; + 1AC6FB2B180E99E1004C840B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "box2d iOS"; + targetProxy = 1AC6FB2A180E99E1004C840B /* PBXContainerItemProxy */; + }; + 1AC6FB2D180E99E1004C840B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "CocosDenshion iOS"; + targetProxy = 1AC6FB2C180E99E1004C840B /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 1D6058940D05DD3E006BFB54 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COMPRESS_PNG_FILES = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ios/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_IPHONE, + "COCOS2D_DEBUG=1", + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../cocos2d/cocos/2d/platform/ios", + "$(SRCROOT)/../cocos2d/cocos/2d/platform/ios/Simulation", + ); + INFOPLIST_FILE = ios/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + LIBRARY_SEARCH_PATHS = ""; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Debug; + }; + 1D6058950D05DD3E006BFB54 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COMPRESS_PNG_FILES = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ios/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_IPHONE, + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../cocos2d/cocos/2d/platform/ios", + "$(SRCROOT)/../cocos2d/cocos/2d/platform/ios/Simulation", + ); + INFOPLIST_FILE = ios/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + LIBRARY_SEARCH_PATHS = ""; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Release; + }; + 5087E76D17EB910900C73F5D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + GCC_DYNAMIC_NO_PIC = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = mac/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_MAC, + "COCOS2D_DEBUG=1", + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../cocos2d/cocos/2d/platform/mac", + "$(SRCROOT)/../cocos2d/external/glfw3/include/mac", + ); + INFOPLIST_FILE = mac/Info.plist; + LIBRARY_SEARCH_PATHS = ""; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Debug; + }; + 5087E76E17EB910900C73F5D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = mac/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_MAC, + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../cocos2d/cocos/2d/platform/mac", + "$(SRCROOT)/../cocos2d/external/glfw3/include/mac", + ); + INFOPLIST_FILE = mac/Info.plist; + LIBRARY_SEARCH_PATHS = ""; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Release; + }; + C01FCF4F08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + COPY_PHASE_STRIP = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "$(SRCROOT)/../cocos2d", + "$(SRCROOT)/../cocos2d/cocos", + "$(SRCROOT)/../cocos2d/cocos/base", + "$(SRCROOT)/../cocos2d/cocos/physics", + "$(SRCROOT)/../cocos2d/cocos/math/kazmath/include", + "$(SRCROOT)/../cocos2d/cocos/2d", + "$(SRCROOT)/../cocos2d/cocos/gui", + "$(SRCROOT)/../cocos2d/cocos/network", + "$(SRCROOT)/../cocos2d/cocos/audio/include", + "$(SRCROOT)/../cocos2d/cocos/editor-support", + "$(SRCROOT)/../cocos2d/extensions", + "$(SRCROOT)/../cocos2d/external", + "$(SRCROOT)/../cocos2d/external/chipmunk/include/chipmunk", + ); + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + }; + name = Debug; + }; + C01FCF5008A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "$(SRCROOT)/../cocos2d", + "$(SRCROOT)/../cocos2d/cocos", + "$(SRCROOT)/../cocos2d/cocos/base", + "$(SRCROOT)/../cocos2d/cocos/physics", + "$(SRCROOT)/../cocos2d/cocos/math/kazmath/include", + "$(SRCROOT)/../cocos2d/cocos/2d", + "$(SRCROOT)/../cocos2d/cocos/gui", + "$(SRCROOT)/../cocos2d/cocos/network", + "$(SRCROOT)/../cocos2d/cocos/audio/include", + "$(SRCROOT)/../cocos2d/cocos/editor-support", + "$(SRCROOT)/../cocos2d/extensions", + "$(SRCROOT)/../cocos2d/external", + "$(SRCROOT)/../cocos2d/external/chipmunk/include/chipmunk", + ); + OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "AirCombat iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1D6058940D05DD3E006BFB54 /* Debug */, + 1D6058950D05DD3E006BFB54 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 5087E76C17EB910900C73F5D /* Build configuration list for PBXNativeTarget "AirCombat Mac" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5087E76D17EB910900C73F5D /* Debug */, + 5087E76E17EB910900C73F5D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + C01FCF4E08A954540054247B /* Build configuration list for PBXProject "AirCombat" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4F08A954540054247B /* Debug */, + C01FCF5008A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; +} diff --git a/cpp-projects/AirCombat/proj.ios_mac/AirCombat.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/cpp-projects/AirCombat/proj.ios_mac/AirCombat.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..51de24e --- /dev/null +++ b/cpp-projects/AirCombat/proj.ios_mac/AirCombat.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/cpp-projects/AirCombat/proj.ios_mac/AirCombat.xcodeproj/project.xcworkspace/xcuserdata/cocos-q.xcuserdatad/UserInterfaceState.xcuserstate b/cpp-projects/AirCombat/proj.ios_mac/AirCombat.xcodeproj/project.xcworkspace/xcuserdata/cocos-q.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..e4c566c Binary files /dev/null and b/cpp-projects/AirCombat/proj.ios_mac/AirCombat.xcodeproj/project.xcworkspace/xcuserdata/cocos-q.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/cpp-projects/AirCombat/proj.ios_mac/AirCombat.xcodeproj/xcuserdata/cocos-q.xcuserdatad/xcschemes/AirCombat Mac.xcscheme b/cpp-projects/AirCombat/proj.ios_mac/AirCombat.xcodeproj/xcuserdata/cocos-q.xcuserdatad/xcschemes/AirCombat Mac.xcscheme new file mode 100644 index 0000000..8238dc9 --- /dev/null +++ b/cpp-projects/AirCombat/proj.ios_mac/AirCombat.xcodeproj/xcuserdata/cocos-q.xcuserdatad/xcschemes/AirCombat Mac.xcscheme @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cpp-projects/AirCombat/proj.ios_mac/AirCombat.xcodeproj/xcuserdata/cocos-q.xcuserdatad/xcschemes/AirCombat iOS.xcscheme b/cpp-projects/AirCombat/proj.ios_mac/AirCombat.xcodeproj/xcuserdata/cocos-q.xcuserdatad/xcschemes/AirCombat iOS.xcscheme new file mode 100644 index 0000000..c57edf8 --- /dev/null +++ b/cpp-projects/AirCombat/proj.ios_mac/AirCombat.xcodeproj/xcuserdata/cocos-q.xcuserdatad/xcschemes/AirCombat iOS.xcscheme @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cpp-projects/AirCombat/proj.ios_mac/AirCombat.xcodeproj/xcuserdata/cocos-q.xcuserdatad/xcschemes/xcschememanagement.plist b/cpp-projects/AirCombat/proj.ios_mac/AirCombat.xcodeproj/xcuserdata/cocos-q.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..293fde4 --- /dev/null +++ b/cpp-projects/AirCombat/proj.ios_mac/AirCombat.xcodeproj/xcuserdata/cocos-q.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,32 @@ + + + + + SchemeUserState + + AirCombat Mac.xcscheme + + orderHint + 1 + + AirCombat iOS.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 1D6058900D05DD3D006BFB54 + + primary + + + 5087E73D17EB910900C73F5D + + primary + + + + + diff --git a/cpp-projects/AirCombat/proj.ios_mac/ios/AppController.h b/cpp-projects/AirCombat/proj.ios_mac/ios/AppController.h new file mode 100644 index 0000000..0c73d6a --- /dev/null +++ b/cpp-projects/AirCombat/proj.ios_mac/ios/AppController.h @@ -0,0 +1,11 @@ +#import + +@class RootViewController; + +@interface AppController : NSObject { + UIWindow *window; + RootViewController *viewController; +} + +@end + diff --git a/cpp-projects/AirCombat/proj.ios_mac/ios/AppController.mm b/cpp-projects/AirCombat/proj.ios_mac/ios/AppController.mm new file mode 100644 index 0000000..08a83f6 --- /dev/null +++ b/cpp-projects/AirCombat/proj.ios_mac/ios/AppController.mm @@ -0,0 +1,140 @@ +/**************************************************************************** + Copyright (c) 2010 cocos2d-x.org + + http://www.cocos2d-x.org + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ + +#import "AppController.h" +#import "CCEAGLView.h" +#import "cocos2d.h" +#import "AppDelegate.h" +#import "RootViewController.h" + +@implementation 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]]; + + // Init the CCEAGLView + CCEAGLView *eaglView = [CCEAGLView viewWithFrame: [window bounds] + pixelFormat: kEAGLColorFormatRGB565 + depthFormat: GL_DEPTH24_STENCIL8_OES + preserveBackbuffer: NO + sharegroup: nil + multiSampling: NO + numberOfSamples: 0]; + + // Use RootViewController manage CCEAGLView + viewController = [[RootViewController alloc] initWithNibName:nil bundle:nil]; + viewController.wantsFullScreenLayout = YES; + viewController.view = eaglView; + + // Set RootViewController to window + if ( [[UIDevice currentDevice].systemVersion floatValue] < 6.0) + { + // warning: addSubView doesn't work on iOS6 + [window addSubview: viewController.view]; + } + else + { + // use this method on ios6 + [window setRootViewController:viewController]; + } + + [window makeKeyAndVisible]; + + [[UIApplication sharedApplication] setStatusBarHidden:true]; + + // IMPORTANT: Setting the GLView should be done after creating the RootViewController + cocos2d::GLView *glview = cocos2d::GLView::createWithEAGLView(eaglView); + cocos2d::Director::getInstance()->setOpenGLView(glview); + + cocos2d::Application::getInstance()->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::Director::getInstance()->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::Director::getInstance()->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::Application::getInstance()->applicationDidEnterBackground(); +} + +- (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::Application::getInstance()->applicationWillEnterForeground(); +} + +- (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 { + [window release]; + [super dealloc]; +} + + +@end diff --git a/cpp-projects/AirCombat/proj.ios_mac/ios/Default-568h@2x.png b/cpp-projects/AirCombat/proj.ios_mac/ios/Default-568h@2x.png new file mode 100644 index 0000000..66c6d1c Binary files /dev/null and b/cpp-projects/AirCombat/proj.ios_mac/ios/Default-568h@2x.png differ diff --git a/cpp-projects/AirCombat/proj.ios_mac/ios/Default.png b/cpp-projects/AirCombat/proj.ios_mac/ios/Default.png new file mode 100644 index 0000000..dcb8072 Binary files /dev/null and b/cpp-projects/AirCombat/proj.ios_mac/ios/Default.png differ diff --git a/cpp-projects/AirCombat/proj.ios_mac/ios/Default@2x.png b/cpp-projects/AirCombat/proj.ios_mac/ios/Default@2x.png new file mode 100644 index 0000000..8468988 Binary files /dev/null and b/cpp-projects/AirCombat/proj.ios_mac/ios/Default@2x.png differ diff --git a/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-100.png b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-100.png new file mode 100644 index 0000000..ef38d45 Binary files /dev/null and b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-100.png differ diff --git a/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-114.png b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-114.png new file mode 100644 index 0000000..c380786 Binary files /dev/null and b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-114.png differ diff --git a/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-120.png b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-120.png new file mode 100644 index 0000000..a5b49cc Binary files /dev/null and b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-120.png differ diff --git a/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-144.png b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-144.png new file mode 100644 index 0000000..1526615 Binary files /dev/null and b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-144.png differ diff --git a/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-152.png b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-152.png new file mode 100644 index 0000000..8aa8250 Binary files /dev/null and b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-152.png differ diff --git a/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-29.png b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-29.png new file mode 100644 index 0000000..0500184 Binary files /dev/null and b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-29.png differ diff --git a/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-40.png b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-40.png new file mode 100644 index 0000000..775685d Binary files /dev/null and b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-40.png differ diff --git a/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-50.png b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-50.png new file mode 100644 index 0000000..ac381bc Binary files /dev/null and b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-50.png differ diff --git a/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-57.png b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-57.png new file mode 100644 index 0000000..4fcc6fd Binary files /dev/null and b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-57.png differ diff --git a/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-58.png b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-58.png new file mode 100644 index 0000000..f0f8b7f Binary files /dev/null and b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-58.png differ diff --git a/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-72.png b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-72.png new file mode 100644 index 0000000..2c573c8 Binary files /dev/null and b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-72.png differ diff --git a/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-76.png b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-76.png new file mode 100644 index 0000000..8a1fa18 Binary files /dev/null and b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-76.png differ diff --git a/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-80.png b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-80.png new file mode 100644 index 0000000..d9c7ab4 Binary files /dev/null and b/cpp-projects/AirCombat/proj.ios_mac/ios/Icon-80.png differ diff --git a/cpp-projects/AirCombat/proj.ios_mac/ios/Info.plist b/cpp-projects/AirCombat/proj.ios_mac/ios/Info.plist new file mode 100644 index 0000000..0b9ef66 --- /dev/null +++ b/cpp-projects/AirCombat/proj.ios_mac/ios/Info.plist @@ -0,0 +1,69 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + Icon-57.png + CFBundleIconFiles + + Icon-29 + Icon-80 + Icon-58 + Icon-120 + Icon.png + Icon@2x.png + Icon-57.png + Icon-114.png + Icon-72.png + Icon-144.png + + CFBundleIconFiles~ipad + + Icon-29 + Icon-50 + Icon-58 + Icon-80 + Icon-40 + Icon-100 + Icon-152 + Icon-76 + Icon-120 + Icon.png + Icon@2x.png + Icon-57.png + Icon-114.png + Icon-72.png + Icon-144.png + + CFBundleIdentifier + org.cocos2d-x.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + UIAppFonts + + UIPrerenderedIcon + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + + + diff --git a/cpp-projects/AirCombat/proj.ios_mac/ios/Prefix.pch b/cpp-projects/AirCombat/proj.ios_mac/ios/Prefix.pch new file mode 100644 index 0000000..5b4e2fd --- /dev/null +++ b/cpp-projects/AirCombat/proj.ios_mac/ios/Prefix.pch @@ -0,0 +1,8 @@ +// +// Prefix header for all source files of the 'iphone' target in the 'iphone' project +// + +#ifdef __OBJC__ + #import + #import +#endif diff --git a/cpp-projects/AirCombat/proj.ios_mac/ios/RootViewController.h b/cpp-projects/AirCombat/proj.ios_mac/ios/RootViewController.h new file mode 100644 index 0000000..a166901 --- /dev/null +++ b/cpp-projects/AirCombat/proj.ios_mac/ios/RootViewController.h @@ -0,0 +1,34 @@ +/**************************************************************************** + Copyright (c) 2013 cocos2d-x.org + Copyright (c) 2013-2014 Chukong Technologies Inc. + + http://www.cocos2d-x.org + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ + +#import + + +@interface RootViewController : UIViewController { + +} +- (BOOL) prefersStatusBarHidden; + +@end diff --git a/cpp-projects/AirCombat/proj.ios_mac/ios/RootViewController.mm b/cpp-projects/AirCombat/proj.ios_mac/ios/RootViewController.mm new file mode 100644 index 0000000..b7d7862 --- /dev/null +++ b/cpp-projects/AirCombat/proj.ios_mac/ios/RootViewController.mm @@ -0,0 +1,108 @@ +/**************************************************************************** + Copyright (c) 2013 cocos2d-x.org + Copyright (c) 2013-2014 Chukong Technologies Inc. + + http://www.cocos2d-x.org + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ + +#import "RootViewController.h" +#import "cocos2d.h" +#import "CCEAGLView.h" + +@implementation RootViewController + +/* + // The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad. +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { + if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) { + // Custom initialization + } + return self; +} +*/ + +/* +// Implement loadView to create a view hierarchy programmatically, without using a nib. +- (void)loadView { +} +*/ + +/* +// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. +- (void)viewDidLoad { + [super viewDidLoad]; +} + +*/ +// Override to allow orientations other than the default portrait orientation. +// This method is deprecated on ios6 +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { + return UIInterfaceOrientationIsLandscape( interfaceOrientation ); +} + +// For ios6, use supportedInterfaceOrientations & shouldAutorotate instead +- (NSUInteger) supportedInterfaceOrientations{ +#ifdef __IPHONE_6_0 + return UIInterfaceOrientationMaskAllButUpsideDown; +#endif +} + +- (BOOL) shouldAutorotate { + return YES; +} + +- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { + [super didRotateFromInterfaceOrientation:fromInterfaceOrientation]; + + cocos2d::GLView *glview = cocos2d::Director::getInstance()->getOpenGLView(); + CCEAGLView *eaglview = (CCEAGLView*) glview->getEAGLView(); + + CGSize s = CGSizeMake([eaglview getWidth], [eaglview getHeight]); + + cocos2d::Application::getInstance()->applicationScreenSizeChanged((int) s.width, (int) s.height); +} + +//fix not hide status on ios7 +- (BOOL)prefersStatusBarHidden +{ + return YES; +} + +- (void)didReceiveMemoryWarning { + // Releases the view if it doesn't have a superview. + [super didReceiveMemoryWarning]; + + // Release any cached data, images, etc that aren't in use. +} + +- (void)viewDidUnload { + [super viewDidUnload]; + // Release any retained subviews of the main view. + // e.g. self.myOutlet = nil; +} + + +- (void)dealloc { + [super dealloc]; +} + + +@end diff --git a/cpp-projects/AirCombat/proj.ios_mac/ios/main.m b/cpp-projects/AirCombat/proj.ios_mac/ios/main.m new file mode 100644 index 0000000..6de81dc --- /dev/null +++ b/cpp-projects/AirCombat/proj.ios_mac/ios/main.m @@ -0,0 +1,12 @@ +#import + +// Under iOS and the Simulator, we can use an alternate Accelerometer interface +#import "AccelerometerSimulation.h" + +int main(int argc, char *argv[]) { + + NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; + int retVal = UIApplicationMain(argc, argv, nil, @"AppController"); + [pool release]; + return retVal; +} diff --git a/cpp-projects/AirCombat/proj.ios_mac/mac/Icon.icns b/cpp-projects/AirCombat/proj.ios_mac/mac/Icon.icns new file mode 100644 index 0000000..2040fc6 Binary files /dev/null and b/cpp-projects/AirCombat/proj.ios_mac/mac/Icon.icns differ diff --git a/cpp-projects/AirCombat/proj.ios_mac/mac/Info.plist b/cpp-projects/AirCombat/proj.ios_mac/mac/Info.plist new file mode 100644 index 0000000..a73feb7 --- /dev/null +++ b/cpp-projects/AirCombat/proj.ios_mac/mac/Info.plist @@ -0,0 +1,36 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + Icon + CFBundleIdentifier + org.cocos2d-x.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSApplicationCategoryType + public.app-category.games + LSMinimumSystemVersion + ${MACOSX_DEPLOYMENT_TARGET} + NSHumanReadableCopyright + Copyright © 2013. All rights reserved. + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/cpp-projects/AirCombat/proj.ios_mac/mac/Prefix.pch b/cpp-projects/AirCombat/proj.ios_mac/mac/Prefix.pch new file mode 100644 index 0000000..46c36a7 --- /dev/null +++ b/cpp-projects/AirCombat/proj.ios_mac/mac/Prefix.pch @@ -0,0 +1,7 @@ +// +// Prefix header for all source files of the 'Paralaxer' target in the 'Paralaxer' project +// + +#ifdef __OBJC__ + #import +#endif diff --git a/cpp-projects/AirCombat/proj.ios_mac/mac/main.cpp b/cpp-projects/AirCombat/proj.ios_mac/mac/main.cpp new file mode 100644 index 0000000..96f027e --- /dev/null +++ b/cpp-projects/AirCombat/proj.ios_mac/mac/main.cpp @@ -0,0 +1,34 @@ +/**************************************************************************** + Copyright (c) 2010 cocos2d-x.org + + http://www.cocos2d-x.org + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ + +#include "AppDelegate.h" +#include "cocos2d.h" + +USING_NS_CC; + +int main(int argc, char *argv[]) +{ + AppDelegate app; + return Application::getInstance()->run(); +} diff --git a/cpp-projects/AirCombat/proj.linux/main.cpp b/cpp-projects/AirCombat/proj.linux/main.cpp new file mode 100644 index 0000000..c5b735d --- /dev/null +++ b/cpp-projects/AirCombat/proj.linux/main.cpp @@ -0,0 +1,15 @@ +#include "../Classes/AppDelegate.h" + +#include +#include +#include +#include + +USING_NS_CC; + +int main(int argc, char **argv) +{ + // create the application instance + AppDelegate app; + return Application::getInstance()->run(); +} diff --git a/cpp-projects/AirCombat/proj.win32/AirCombat.sln b/cpp-projects/AirCombat/proj.win32/AirCombat.sln new file mode 100644 index 0000000..6a489c7 --- /dev/null +++ b/cpp-projects/AirCombat/proj.win32/AirCombat.sln @@ -0,0 +1,43 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AirCombat", "AirCombat.vcxproj", "{76A39BB2-9B84-4C65-98A5-654D86B86F2A}" + ProjectSection(ProjectDependencies) = postProject + {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} = {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} + {207BC7A9-CCF1-4F2F-A04D-45F72242AE25} = {207BC7A9-CCF1-4F2F-A04D-45F72242AE25} + {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} = {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcocos2d", "..\cocos2d\cocos\2d\cocos2d.vcxproj", "{98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libchipmunk", "..\cocos2d\external\chipmunk\proj.win32\chipmunk.vcxproj", "{207BC7A9-CCF1-4F2F-A04D-45F72242AE25}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libAudio", "..\cocos2d\cocos\audio\proj.win32\CocosDenshion.vcxproj", "{F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {76A39BB2-9B84-4C65-98A5-654D86B86F2A}.Debug|Win32.ActiveCfg = Debug|Win32 + {76A39BB2-9B84-4C65-98A5-654D86B86F2A}.Debug|Win32.Build.0 = Debug|Win32 + {76A39BB2-9B84-4C65-98A5-654D86B86F2A}.Release|Win32.ActiveCfg = Release|Win32 + {76A39BB2-9B84-4C65-98A5-654D86B86F2A}.Release|Win32.Build.0 = Release|Win32 + {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}.Debug|Win32.ActiveCfg = Debug|Win32 + {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}.Debug|Win32.Build.0 = Debug|Win32 + {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}.Release|Win32.ActiveCfg = Release|Win32 + {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}.Release|Win32.Build.0 = Release|Win32 + {207BC7A9-CCF1-4F2F-A04D-45F72242AE25}.Debug|Win32.ActiveCfg = Debug|Win32 + {207BC7A9-CCF1-4F2F-A04D-45F72242AE25}.Debug|Win32.Build.0 = Debug|Win32 + {207BC7A9-CCF1-4F2F-A04D-45F72242AE25}.Release|Win32.ActiveCfg = Release|Win32 + {207BC7A9-CCF1-4F2F-A04D-45F72242AE25}.Release|Win32.Build.0 = Release|Win32 + {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Debug|Win32.ActiveCfg = Debug|Win32 + {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Debug|Win32.Build.0 = Debug|Win32 + {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Release|Win32.ActiveCfg = Release|Win32 + {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/cpp-projects/AirCombat/proj.win32/AirCombat.vcxproj b/cpp-projects/AirCombat/proj.win32/AirCombat.vcxproj new file mode 100644 index 0000000..e29153c --- /dev/null +++ b/cpp-projects/AirCombat/proj.win32/AirCombat.vcxproj @@ -0,0 +1,163 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {76A39BB2-9B84-4C65-98A5-654D86B86F2A} + test_win32 + Win32Proj + + + + Application + Unicode + true + v100 + v110 + v110_xp + + + Application + Unicode + v100 + v110 + v110_xp + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Configuration).win32\ + $(Configuration).win32\ + true + $(SolutionDir)$(Configuration).win32\ + $(Configuration).win32\ + false + AllRules.ruleset + + + AllRules.ruleset + + + + + $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\lib;$(LibraryPath) + + + $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\lib;$(LibraryPath) + + + + Disabled + $(EngineRoot)cocos\audio\include;$(EngineRoot)external;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;..\Classes;..;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USE_MATH_DEFINES;GL_GLEXT_PROTOTYPES;CC_ENABLE_CHIPMUNK_INTEGRATION=1;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + EditAndContinue + 4267;4251;4244;%(DisableSpecificWarnings) + true + + + %(AdditionalDependencies) + $(OutDir)$(ProjectName).exe + $(OutDir);%(AdditionalLibraryDirectories) + true + Windows + MachineX86 + + + + + + + if not exist "$(OutDir)" mkdir "$(OutDir)" +xcopy /Y /Q "$(EngineRoot)external\websockets\prebuilt\win32\*.*" "$(OutDir)" + + + + + MaxSpeed + true + $(EngineRoot)cocos\audio\include;$(EngineRoot)external;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;..\Classes;..;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USE_MATH_DEFINES;GL_GLEXT_PROTOTYPES;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + 4267;4251;4244;%(DisableSpecificWarnings) + true + + + libcurl_imp.lib;websockets.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).exe + $(OutDir);%(AdditionalLibraryDirectories) + true + Windows + true + true + MachineX86 + + + + + + + if not exist "$(OutDir)" mkdir "$(OutDir)" +xcopy /Y /Q "$(EngineRoot)external\websockets\prebuilt\win32\*.*" "$(OutDir)" + + + + + + + + + + + + + + + {98a51ba8-fc3a-415b-ac8f-8c7bd464e93e} + false + + + {f8edd7fa-9a51-4e80-baeb-860825d2eac6} + + + {207bc7a9-ccf1-4f2f-a04d-45f72242ae25} + + + + + + + + + \ No newline at end of file diff --git a/cpp-projects/AirCombat/proj.win32/AirCombat.vcxproj.filters b/cpp-projects/AirCombat/proj.win32/AirCombat.vcxproj.filters new file mode 100644 index 0000000..0afd6b6 --- /dev/null +++ b/cpp-projects/AirCombat/proj.win32/AirCombat.vcxproj.filters @@ -0,0 +1,41 @@ + + + + + {84a8ebd7-7cf0-47f6-b75e-d441df67da40} + + + {bb6c862e-70e9-49d9-81b7-3829a6f50471} + + + {715254bc-d70b-4ec5-bf29-467dd3ace079} + + + + + win32 + + + Classes + + + Classes + + + + + win32 + + + Classes + + + Classes + + + + + resource + + + \ No newline at end of file diff --git a/cpp-projects/AirCombat/proj.win32/AirCombat.vcxproj.user b/cpp-projects/AirCombat/proj.win32/AirCombat.vcxproj.user new file mode 100644 index 0000000..32a6296 --- /dev/null +++ b/cpp-projects/AirCombat/proj.win32/AirCombat.vcxproj.user @@ -0,0 +1,11 @@ + + + + $(ProjectDir)..\Resources + WindowsLocalDebugger + + + $(ProjectDir)..\Resources + WindowsLocalDebugger + + \ No newline at end of file diff --git a/cpp-projects/AirCombat/proj.win32/game.rc b/cpp-projects/AirCombat/proj.win32/game.rc new file mode 100644 index 0000000..1e0a2a0 --- /dev/null +++ b/cpp-projects/AirCombat/proj.win32/game.rc @@ -0,0 +1,86 @@ +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#define APSTUDIO_HIDDEN_SYMBOLS +#include "windows.h" +#undef APSTUDIO_HIDDEN_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +#endif // APSTUDIO_INVOKED + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +GLFW_ICON ICON "res\\game.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x2L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "game Module\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "game\0" + VALUE "LegalCopyright", "Copyright \0" + VALUE "OriginalFilename", "game.exe\0" + VALUE "ProductName", "game Module\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 0x04B0 + END +END + +///////////////////////////////////////////////////////////////////////////// +#endif // !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) diff --git a/cpp-projects/AirCombat/proj.win32/main.cpp b/cpp-projects/AirCombat/proj.win32/main.cpp new file mode 100644 index 0000000..61ae71f --- /dev/null +++ b/cpp-projects/AirCombat/proj.win32/main.cpp @@ -0,0 +1,18 @@ +#include "main.h" +#include "AppDelegate.h" +#include "cocos2d.h" + +USING_NS_CC; + +int APIENTRY _tWinMain(HINSTANCE hInstance, + HINSTANCE hPrevInstance, + LPTSTR lpCmdLine, + int nCmdShow) +{ + UNREFERENCED_PARAMETER(hPrevInstance); + UNREFERENCED_PARAMETER(lpCmdLine); + + // create the application instance + AppDelegate app; + return Application::getInstance()->run(); +} diff --git a/cpp-projects/AirCombat/proj.win32/main.h b/cpp-projects/AirCombat/proj.win32/main.h new file mode 100644 index 0000000..e74708b --- /dev/null +++ b/cpp-projects/AirCombat/proj.win32/main.h @@ -0,0 +1,13 @@ +#ifndef __MAIN_H__ +#define __MAIN_H__ + +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers + +// Windows Header Files: +#include +#include + +// C RunTime Header Files +#include "CCStdC.h" + +#endif // __MAIN_H__ diff --git a/cpp-projects/AirCombat/proj.win32/res/game.ico b/cpp-projects/AirCombat/proj.win32/res/game.ico new file mode 100644 index 0000000..feaf932 Binary files /dev/null and b/cpp-projects/AirCombat/proj.win32/res/game.ico differ diff --git a/cpp-projects/AirCombat/proj.win32/resource.h b/cpp-projects/AirCombat/proj.win32/resource.h new file mode 100644 index 0000000..376870b --- /dev/null +++ b/cpp-projects/AirCombat/proj.win32/resource.h @@ -0,0 +1,20 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by game.RC +// + +#define IDS_PROJNAME 100 +#define IDR_TESTJS 100 + +#define ID_FILE_NEW_WINDOW 32771 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 201 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 101 +#define _APS_NEXT_COMMAND_VALUE 32775 +#endif +#endif