Cocos2d-x Project作成。脱HelloWorld!!
今回の概要
前回Hello Wolrdまでやりましたが、ではそこから自分用のプロジェクトにするのには? というのをやりたいと思います。
projectの作成
これは前回の復習になりますね。 クロスプラットフォーム開発をするので、今回もproject-creatorを使います。
$ cd /Applications/cocos2d-x-2.1.4/tools/project-creator/ $ ./create_project.py -project TouchGameProject -package com.kyokomi.touchgame -language cpp
xcodeで開いてみる
Open Other...を選択
作成したプロジェクトのproj.iosフォルダにあるxcodeプロジェクトファイルを選択
とりあえず起動してみる
あっけなく起動しました。
不要なファイルを削除
以下のファイルを削除する
- HelloWorldScene.h
- HelloWorldScene.cpp
GameScene.cppとGameScene.hを作成
// // GameScene.cpp // TouchGameProject // // Created by kyokomi on 2013/08/25. // // #include "GameScene.h" using namespace cocos2d; using namespace std; CCScene* GameScene::scene() { CCScene* scene = CCScene::create(); GameScene* layer = GameScene::create(); scene->addChild(layer); return scene; } bool GameScene::init() { if (!CCLayer::init()) { return false; } return true; } // // GameScene.h // TouchGameProject // // Created by kyokomi on 2013/08/25. // // #ifndef __TouchGameProject__GameScene__ #define __TouchGameProject__GameScene__ #include "cocos2d.h" class GameScene : public cocos2d::CCLayer{ public: virtual bool init(); static cocos2d::CCScene* scene(); CREATE_FUNC(GameScene); }; #endif /* defined(__TouchGameProject__GameScene__) */
エラーになっているAppDeleage.cppを2箇所修正
2行目くらい
#include "HelloWorldScene.h"
↓
#include "GameScene.h"
29行目くらい
CCScene *pScene = HelloWorldScene::scene();
↓
CCScene *pScene = GameScene::scene();
起動してみる
真っ暗ですがとりあえず起動。
GameSceneに背景作成の処理を追加
void GameScene::makeBackground() { // 画面サイズを取得 CCSize winSize = CCDirector::sharedDirector()->getWinSize(); // 背景を生成 CCSprite* pBg = CCSprite::create("World.png"); // デフォルトのアンカーポイントは(0.5, 0.5)画面の中心 pBg->setPosition(ccp(winSize.width * 0.5, winSize.height * 0.5)); this->addChild(pBg); }
AppDelegate.cppに縦横比を揃える処理を追加
表示する画像が544 x 416なので。
bool AppDelegate::applicationDidFinishLaunching() { // 〜省略〜 // 横幅を基準に画面サイズを調整する // pDirector->setContentScaleFactor(544.0 / pDirector->getWinSize().width); // 縦幅を基準に画面サイズを調整する pDirector->setContentScaleFactor(416.0 / pDirector->getWinSize().height); // 〜省略〜 }
Android側で起動
Android.mkを修正します。 HelloWorldScene.cppを消したのをこっちにも反映します。
場所
/Applications/cocos2d-x-2.1.4/projects/TouchGameProject/proj.android/jni/Android.mk
修正内容
LOCAL_SRC_FILES := hellocpp/main.cpp \ ../../Classes/AppDelegate.cpp \ ../../Classes/GameScene.cpp
というわけでとりあえず脱HelloWorldしたわけです。