Topページ -> TableView -> 画像表示
前回の「TableView 画面遷移と画像表示」にTopページを付加しアプリらしい展開していく方法を示します。
Cocos2dx 3.x C++言語
AppDelegate.cppを次のように変更してみてください。
#include "AppDelegate.h"
#include "MenuTopScene.h" <- Topページクラス名に変更
USING_NS_CC;
// create a scene. it's an autorelease object
auto scene = MenuTopScene::createScene(); <- Topページクラス名に変更
Topページを記述していきます。
MenuTopScene.hを次のように変更してみてください。
このアプリが起動した時にBGMを再生する仕組みを追加しています。
#ifndef __TableView03__MenuTopScene__
#define __TableView03__MenuTopScene__
#include "cocos2d.h"
class MenuTopScene : public cocos2d::Layer
{
protected:
MenuTopScene();
virtual ~MenuTopScene();
//初期化のメソッド
bool init() override;
public:
static cocos2d::Scene* createScene();
// BGMの再生
void onEnterTransitionDidFinish() override;
// create()を使えるようにしている。
CREATE_FUNC(MenuTopScene);
// バッククリックキー
void onKeyReleased(cocos2d::EventKeyboard::KeyCode keyCode, cocos2d::Event *event);
};
#endif /* defined(__TableView03__MenuTopScene__) */
MenuTopScene.cppを次のように変更してみてください。
#include "MenuTopScene.h"
#include "TopTableView.h"
//音をならすためにinclude
#include "SimpleAudioEngine.h"
// 名前空間 #define USING_NS_CC using namespace cocos2d
USING_NS_CC;
using namespace std; // String*
Scene* MenuTopScene::createScene()
{
// 「シーン」は自動解放オブジェクトです
auto scene = Scene::create();
// 「レイアウト」は自動解放オブジェクトです
auto layer = MenuTopScene::create();
// シーンに子としてレイヤーを追加
scene->addChild(layer);
// シーンを返す
return scene;
}
MenuTopScene::MenuTopScene()
{
}
MenuTopScene::~MenuTopScene()
{
}
// 「INIT」初期化
bool MenuTopScene::init()
{
if ( !Layer::init() )
{
return false;
}
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
// バックキー処理
auto keyboardListener = cocos2d::EventListenerKeyboard::create();
keyboardListener->onKeyReleased = CC_CALLBACK_2(MenuTopScene::onKeyReleased, this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(keyboardListener, this);
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
auto director = Director::getInstance();
auto winSize = director->getWinSize();
// 背景の追加
auto background = Sprite::create("fire1-1@2x.png");
background->setPosition(Vec2(winSize.width / 2.0, winSize.height / 2.0));
this->addChild(background);
// ミーラーレス一眼&ラベルを生成
auto label1 = Label::createWithSystemFont("ミーラーレス一眼&", "Arial", 30);
label1->setColor(Color3B::GREEN);
// ラベルの設置
label1->setPosition(Vec2(winSize.width / 2 - 170, winSize.height - 50));
// ラベルタイトルを呼び込み追加
this->addChild(label1,1);
// デジタル一眼レフラベルを生成
auto label2 = Label::createWithSystemFont("デジタル一眼レフ", "Arial", 30);
label2->setColor(Color3B::GREEN);
// ラベルの設置
label2->setPosition(Vec2(winSize.width / 2 - 180, winSize.height - 85));
// ラベルタイトルを呼び込み追加
this->addChild(label2,1);
// iSceneラベルを生成
auto label3 = Label::createWithSystemFont("iScene", "Didot", 50);
label3->setColor(Color3B::GREEN);
// ラベルの設置
label3->setPosition(Vec2(winSize.width / 2 + 110, winSize.height - 730));
// ラベルタイトルを呼び込み追加
this->addChild(label3,1);
// notepadラベルを生成
auto label4 = Label::createWithSystemFont("notepad", "Didot", 55);
label4->setColor(Color3B::WHITE);
// ラベルの設置
label4->setPosition(Vec2(winSize.width / 2 + 190, winSize.height - 835));
// ラベルタイトルを呼び込み追加
this->addChild(label4,2);
// 2015ラベルを生成
auto label5 = Label::createWithSystemFont("2015", "Arial", 30);
label5->setColor(Color3B::GREEN);
// ラベルの設置
label5->setPosition(Vec2(winSize.width / 2 + 200, winSize.height - 890));
// ラベルタイトルを呼び込み追加
this->addChild(label5,2);
// フイルム画像の追加
auto logo = Sprite::create("Film@2x.png");
logo->setPosition(Vec2(winSize.width / 2.0 + 140, winSize.height - 790));
logo->setScaleX(0.8); // 0.8倍縮小
logo->setScaleY(0.8); // 0.8倍縮小
this->addChild(logo);
// 花火撮影ラベル Touch to Sutartの追加
auto touchToStart = Label::createWithSystemFont("花火撮影", "Arial", 60);
touchToStart->setPosition(Vec2(winSize.width / 2.0 + 160, 350));
// 点滅させるアクションの定義
auto blink = Sequence::create(FadeTo::create(0.5, 127),
FadeTo::create(0.5, 225),
NULL);
// RepeatForever blink:無限に点滅
touchToStart->runAction(RepeatForever::create(blink));
this->addChild(touchToStart);
// 画面をタッチしたときにテーブル画面へ遷移
auto listener = EventListenerTouchOneByOne::create();
listener->onTouchBegan = [this](Touch* touch, Event* event){
// 効果音
CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("onepoint26.mp3");
// 何度も押せないように一度押したらアクションを無効化する
this->getEventDispatcher()->removeAllEventListeners();
// 0.5秒待ってからCallFuncを呼ぶ
auto delay = DelayTime::create(0.5);
// テーブル画面に遷移を始めるアクション
auto starGame = CallFunc::create([]{
// テーブル画面
auto scene = TopTableView::createScene();
// シーンを移動する
auto transition = TransitionProgressInOut::create(1.5, scene);
// (replaceScene)直前のsceneはもう使わないから捨ててしまう方法
Director::getInstance()->replaceScene(transition);
//下からシーンが移動。
//Director::getInstance()->replaceScene(TransitionMoveInB::create(1.0f,TopTableView::createScene()));
});
this->runAction(Sequence::create(delay, starGame, NULL));
return true;
};
this->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);
return true;
}
// BGMの再生
void MenuTopScene::onEnterTransitionDidFinish()
{
// BGMの再生
CocosDenshion::SimpleAudioEngine::getInstance()->playBackgroundMusic("o12.mp3", true);
}
// バックキー処理 onKeyReleased()でバックキーのイベントを取得
void MenuTopScene::onKeyReleased(cocos2d::EventKeyboard::KeyCode keyCode, cocos2d::Event * event)
{
if (keyCode == EventKeyboard::KeyCode::KEY_ESCAPE)
{
Director::getInstance()->end(); // アプリを終了させる
}
}
/*
(runWithScene) プログラム起動後、最初のsceneを起動する処理。
(replaceScene) 直前のsceneはもう使わないから捨ててしまう方法。基本はこれになります。
(pushScene) 直前のsceneに戻る予定があるので、メモリに取っておく方法です。
(popScene) pushしたsceneを消して、元のsceneに戻る処理。
pushとpopは、ゲーム中にオプション画面を開いてまた戻ってくる時などに使用します。
cocos2dその7。シーン遷移 【pushScene、runWithScene】
http://ameblo.jp/hash-r-1234/entry-10967942550.html
*/
補足
(runWithScene) プログラム起動後、最初のsceneを起動する処理。
(replaceScene) 直前のsceneはもう使わないから捨ててしまう方法。基本はこれになります。
(pushScene) 直前のsceneに戻る予定があるので、メモリに取っておく方法です。
(popScene) pushしたsceneを消して、元のsceneに戻る処理。
pushとpopは、ゲーム中にオプション画面を開いてまた戻ってくる時などに使用します。
テーブルページを記述していきます。
TopTableView.hを次のように変更してみてください。
#ifndef __TableView02__TopTableView__
#define __TableView02__TopTableView__
#include <iostream>
#include "cocos2d.h"
#include <extensions/cocos-ext.h>
USING_NS_CC;
using namespace extension;
class TopTableView : public Layer,
public TableViewDataSource,
public TableViewDelegate
{
Size window_size;
public:
static cocos2d::Scene* createScene();
virtual bool init();
//TableViewDataSourceの抽象メソッド
virtual Size cellSizeForTable(TableView* table);
virtual TableViewCell* tableCellAtIndex(TableView* table,ssize_t idx);
virtual ssize_t numberOfCellsInTableView(TableView* table);
//TableViewDelegateの抽象メソッド
virtual void tableCellTouched(TableView* table,TableViewCell* cell);
//TableViewDelegateが継承しているScrollViewの抽象メソッド
virtual void scrollViewDidScroll(ScrollView* view){};
virtual void scrollViewDidZoom(ScrollView* view){};
// 戻るボタン押下時の処理宣言 戻る Object → Ref に変更
void pushBack(cocos2d::Ref *pSender);
// バッククリックキー
void onKeyReleased(cocos2d::EventKeyboard::KeyCode keyCode, cocos2d::Event *event);
CREATE_FUNC(TopTableView);
};
#endif /* defined(__TableView02__TopTableView__) */
TopTableView.cppを次のように変更してみてください。
#include "TopTableView.h"
#include "MenuTopScene.h"
#include "SecondScene.h"
//音をならすためにinclude
#include "SimpleAudioEngine.h"
/// 行数格納用のキー
const char* ROW_KEY = "row";
Scene* TopTableView::createScene()
{
auto scene = Scene::create();
auto layer = TopTableView::create();
// sceneにlayerを読み込み表示する
scene->addChild(layer);
return scene;
}
// on "init" you need to initialize your instance
bool TopTableView::init()
{
// 初期化
if ( !Layer::init() ) return false;
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
// バックキー処理
auto keyboardListener = cocos2d::EventListenerKeyboard::create();
keyboardListener->onKeyReleased = CC_CALLBACK_2(TopTableView::onKeyReleased, this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(keyboardListener, this);
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
// 画面サイズサイズを取得
window_size = Director::getInstance()->getWinSize();
// バックグランドカラー
auto background = LayerColor::create(Color4B::BLACK,
window_size.width,
window_size.height);
// バックグランドカラー 第2引数は表示順
this->addChild(background, 0);
// テーブル一覧ラベルを生成
auto label1 = Label::createWithSystemFont("花火一覧", "Arial", 60);
label1->setColor(Color3B::GREEN);
// ラベルの設置
label1->setPosition(Vec2(window_size.width / 2 ,window_size.height - 70));
// ラベルタイトルを呼び込み追加
this->addChild(label1,1);
// テーブルのヘッダー空間
TableView* tableView = TableView::create(this,Size(window_size.width,window_size.height*9/10));
// テーブル全体表示
//TableView* tableView = TableView::create(this, window_size);
// 展開方向
tableView->setDirection(TableView::Direction::VERTICAL);
// 表示順序上からしたへ
tableView->setVerticalFillOrder(TableView::VerticalFillOrder::TOP_DOWN);
// 追加
tableView->setDelegate(this);
addChild(tableView);
// tableViewに呼び込む
tableView->reloadData();
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
//戻るボタンを設置
auto backButton = MenuItemImage::create(
"Back.png", //表示
"BackSelected.png", //タップ時の画像
CC_CALLBACK_1(TopTableView::pushBack, this));
backButton->setPosition(Point(window_size.width /2 - 260 ,window_size.height/2 + 500));
//create menu, it's an autorelease object
auto menu = Menu::create(backButton, NULL);
menu->setPosition(Point::ZERO);
this->addChild(menu, 1);
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
return true;
}
// セルの大きさを設定する
Size TopTableView::cellSizeForTable(TableView *table){
return Size(window_size.width, 215);
}
// 1セルに表示させるValueをセット
TableViewCell* TopTableView::tableCellAtIndex(TableView *table, ssize_t idx){
// 行番号
std::string id = StringUtils::format("%zd", idx);
// セル
TableViewCell *cell = table->dequeueCell();
cell = new TableViewCell();
// autoreleaseを呼び出す
cell->autorelease();
// セルの背景色
auto background_color = Color3B::GRAY;
// Background
Sprite* bg = Sprite::create();
bg->setAnchorPoint(Point(0, 0));
bg->setTextureRect(Rect(0, 0, window_size.width, 215));
bg->setColor(background_color);
bg->setTag(100);
// Backgroundを呼び出し表示
cell->addChild(bg);
// ボーダーライン
Sprite* line = Sprite::create();
line->setAnchorPoint(Point(0, 0));
line->setTextureRect(Rect(0, 0, window_size.width, 1));
line->setColor(Color3B::WHITE);
cell->addChild(line);
//////////////////////////////////////////////
// Plist ValueVector
ValueVector vec = FileUtils::getInstance()->getValueVectorFromFile("data.plist");
// 置き換えセル行数変数
long idx0 = 0;
// Cell行idxをidx01に保存
log("idx:%ld", idx);
// 最初のCellの0行目
if (idx == 0) {
idx0 = idx; // 最初のCellの1行目
} else {
idx0 = idx * 4; // 次のCellの2行目 Plist行数 x 4
}
// Plist 1行目は、idx0
long idx1 = idx0 + 1; // Plist 2行目
long idx2 = idx1 + 1; // Plist 3行目 花火小画像
long idx3 = idx2 + 1; // Plist 4行目 花火大画像
// 花火の種類ラベル表示
std::string vec_1 = vec.at(idx1).asString();
auto *label_2 = LabelTTF::create(vec_1.c_str(), "Arial", 52);
label_2->setAnchorPoint(Point(0, 0));
label_2->setPosition(Point(140, 70)); // セル幅のセンター
label_2->setColor(Color3B::GREEN);
cell->addChild(label_2);
// 花火小画像
std::string vec_3 = vec.at(idx3).asString();
Sprite* imge_1 = Sprite::create(vec_3);
imge_1->setAnchorPoint(Point(0, 0));
imge_1->setPosition(Point(10, 0));
imge_1->setScaleX(1.5); // 1.5倍拡大
imge_1->setScaleY(1.5); // 1.5倍拡大
cell->addChild(imge_1);
return cell;
}
// セル数
ssize_t TopTableView::numberOfCellsInTableView(TableView *table){
return 19;
}
// セルがタッチされた時のcallback
void TopTableView::tableCellTouched(TableView* table, TableViewCell* cell){
log("%ziのセルがタッチされました", cell->getIdx());
// cell 行番号
float row = cell->getIdx();
////////////////////////////////////////////////
// UserDefault 保存
// 行番号保存
UserDefault::getInstance()->setIntegerForKey(ROW_KEY, row);
////////////////////////////////////////////////
// 効果音を鳴らす
CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("onepoint26.mp3");
// 遷移先の画面のインスタンス
Scene *pScene = SecondScene::createScene();
// 0.5秒かけてフェードアウトしながら次の画面に遷移します
// 引数1:フィードの時間
// 引数2:移動先のシーン
// 引数3:フィードの色(オプション)
TransitionFade* transition = TransitionFade::create(0.5f, pScene);
// 遷移実行 遷移時のアニメーション http://study-cocos2d-x.info/scenelayer/55/
// 直前のsceneはもう使わないから捨ててしまう方法。基本はこれになります。
Director::getInstance()->replaceScene(transition);
}
// pushBackボタン
void TopTableView::pushBack(Ref *pSender)
{
// 効果音を鳴らす
CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("onepoint26.mp3");
// 遷移先の画面のインスタンス
Scene *pScene = MenuTopScene::createScene();
// 0.5秒かけてフェードアウトしながら次の画面に遷移します
// 引数1:フィードの時間
// 引数2:移動先のシーン
// 引数3:フィードの色(オプション)
TransitionFade* transition = TransitionFade::create(0.5f, pScene);
//遷移実行 遷移時のアニメーション http://study-cocos2d-x.info/scenelayer/55/
// (replaceScene)直前のsceneはもう使わないから捨ててしまう方法
Director::getInstance()->replaceScene(transition);
}
// バックキー処理 onKeyReleased()でバックキーのイベントを取得
void TopTableView::onKeyReleased(cocos2d::EventKeyboard::KeyCode keyCode, cocos2d::Event * event)
{
if (keyCode == EventKeyboard::KeyCode::KEY_ESCAPE)
{
// 遷移先の画面のインスタンス
Scene *pScene = MenuTopScene::createScene();
// 0.5秒かけてフェードアウトしながら次の画面に遷移します
// 引数1:フィードの時間
// 引数2:移動先のシーン
// 引数3:フィードの色(オプション)
TransitionFade* transition = TransitionFade::create(0.5f, pScene);
//遷移実行 遷移時のアニメーション http://study-cocos2d-x.info/scenelayer/55/
// (replaceScene)直前のsceneはもう使わないから捨ててしまう方法
Director::getInstance()->replaceScene(transition);
}
}
SecondScene.hを次のように変更してみてください。
#ifndef __TableView02__SecondScene__
#define __TableView02__SecondScene__
#include "cocos2d.h"
class SecondScene : public cocos2d::Layer
{
public:
//初期化のメソッド
virtual bool init();
static cocos2d::Scene* createScene();
// 戻るボタン押下時の処理宣言 戻る Object → Ref に変更
void pushBack(cocos2d::Ref *pSender);
// row行数グローバル変数
long idx0 = 0;
// バッククリックキー
void onKeyReleased(cocos2d::EventKeyboard::KeyCode keyCode, cocos2d::Event *event);
// create()を使えるようにしている。
CREATE_FUNC(SecondScene);
};
#endif /* defined(__TableView02__SecondScene__) */
SecondScene.cppを次のように変更してみてください。
#include "SecondScene.h"
#include "TopTableView.h"
//音をならすためにinclude
#include "SimpleAudioEngine.h"
// 名前空間 #define USING_NS_CC using namespace cocos2d
USING_NS_CC;
using namespace std; // String*
Scene* SecondScene::createScene()
{
// 「シーン」は自動解放オブジェクトです
auto scene = Scene::create();
// 「レイアウト」は自動解放オブジェクトです
auto layer = SecondScene::create();
// シーンに子としてレイヤーを追加
scene->addChild(layer);
// シーンを返す
return scene;
}
// 「INIT」初期化
bool SecondScene::init()
{
if ( !Layer::init() )
{
return false;
}
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
// バックキー処理
auto keyboardListener = cocos2d::EventListenerKeyboard::create();
keyboardListener->onKeyReleased = CC_CALLBACK_2(SecondScene::onKeyReleased, this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(keyboardListener, this);
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
//画面の座標関係の詳しい説明はここ http://www.cocos2d-x.org/wiki/Coordinate_System
//画面サイズを取得
Size winSize = Director::getInstance()->getVisibleSize();
// 原点を取得
Point origin = Director::getInstance()->getVisibleOrigin();
// バックグランドカラー
auto background = LayerColor::create(Color4B::BLUE,
winSize.width,
winSize.height);
//バックグランドカラー追加 第2引数は表示順
this->addChild(background, 0);
// UserDefault 読込 LOG表示
auto userRead = cocos2d::UserDefault::getInstance();
log("row 行番号: %d", userRead->getIntegerForKey("row"));
// int型 UserDefaultのrowを呼び込む
auto row = userRead->getIntegerForKey("row");
//////////////////////////////////////////////
// Plist ValueVector
ValueVector vec = FileUtils::getInstance()->getValueVectorFromFile("data.plist");
// 最初の0行目を選択した時
if (row == 0) {
idx0 = row; // 最初のCellの1行目
} else {
idx0 = row * 4; // 次のCellの2行目 Plist行数 x 4
}
// Plist 1行目は、idx0 = row 連番
long idx1 = idx0 + 1; // Plist 2行目 花火の種類
long idx2 = idx1 + 1; // Plist 3行目 花火の写真
long idx3 = idx2 + 1; // Plist 4行目 花火の小写真
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
// Plist 花火の写真画像CCSpriteクラスを初期化しています。
std::string vec_3 = vec.at(idx2).asString();
auto sprite1 = Sprite::create(vec_3);
//位置を設定
sprite1->setPosition(Vec2(winSize.width/2, winSize.height/2));
//画面に追加をしています。
this->addChild(sprite1);
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
// Plist 花火の種類タイトルを設置
std::string vec_1 = vec.at(idx1).asString();
auto lbl_title = Label::createWithSystemFont(vec_1, "Arial", 40);
lbl_title->setPosition(Point(origin.x + winSize.width/2,
origin.y + winSize.height - 19
-lbl_title->getContentSize().height));
lbl_title->setColor(Color3B::GREEN);
this->addChild(lbl_title,1);
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
//戻るボタンを設置
auto backButton = MenuItemImage::create(
"Back.png", //表示
"BackSelected.png", //タップ時の画像
CC_CALLBACK_1(SecondScene::pushBack, this));
backButton->setPosition(Point(winSize.width /2 - 260 ,winSize.height/2 + 510));
//create menu, it's an autorelease object
auto menu = Menu::create(backButton, NULL);
menu->setPosition(Point::ZERO);
this->addChild(menu, 1);
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
return true;
}
// pushBackボタン
void SecondScene::pushBack(Ref *pSender)
{
// 効果音を鳴らす
CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("onepoint26.mp3");
// 遷移先の画面のインスタンス
Scene *pScene = TopTableView::createScene();
// 0.5秒かけてフェードアウトしながら次の画面に遷移します
// 引数1:フィードの時間
// 引数2:移動先のシーン
// 引数3:フィードの色(オプション)
TransitionFade* transition = TransitionFade::create(0.5f, pScene);
//遷移実行 遷移時のアニメーション http://study-cocos2d-x.info/scenelayer/55/
Director::getInstance()->replaceScene(transition);
}
// バックキー処理 onKeyReleased()でバックキーのイベントを取得
void SecondScene::onKeyReleased(cocos2d::EventKeyboard::KeyCode keyCode, cocos2d::Event * event)
{
if (keyCode == EventKeyboard::KeyCode::KEY_ESCAPE)
{
// 遷移先の画面のインスタンス
Scene *pScene = TopTableView::createScene();
// 0.5秒かけてフェードアウトしながら次の画面に遷移します
// 引数1:フィードの時間
// 引数2:移動先のシーン
// 引数3:フィードの色(オプション)
TransitionFade* transition = TransitionFade::create(0.5f, pScene);
//遷移実行 遷移時のアニメーション http://study-cocos2d-x.info/scenelayer/55/
// (replaceScene)直前のsceneはもう使わないから捨ててしまう方法
Director::getInstance()->replaceScene(transition);
}
}
GitHub TableView03
Androidのビルドに必要なAndroid.mkの編集
クラスを追加した場合には、Android.mkファイルの修正が必要です。
HelloWorld.cppの書き換えと追加クラス名を追加します。
これをしておかないと表示が変わらず真黒な画面が表示されますので注意してください。
Android.mkディレクトリーの場所
TableView03/proj.android/jni/Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d)
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/external)
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos)
LOCAL_MODULE := cocos2dcpp_shared
LOCAL_MODULE_FILENAME := libcocos2dcpp
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp
\
../../Classes/MenuTopScene.cpp \ <- ※HelloWorld.cppを書き換え
../../Classes/TopTableView.cpp \ <-
※追加
../../Classes/SecondScene.cpp <- ※追加
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
LOCAL_STATIC_LIBRARIES := cocos2dx_static
include $(BUILD_SHARED_LIBRARY)
$(call import-module,.)
▫️参考にしたページ
Cocos2dx 3.0でPLISTを解析できませんCocos2dx 3.0でPLISTを解析できません
IPhoneのアプリをcocos2d-xに移植するにあたってのメモ(2)
コメントをお書きください
Renee Bensinger (火曜日, 31 1月 2017 20:00)
Pretty nice post. I just stumbled upon your weblog and wished to say that I have truly enjoyed browsing your blog posts. After all I will be subscribing to your rss feed and I hope you write again soon!
Fallon Alcina (水曜日, 01 2月 2017 02:14)
For the reason that the admin of this web site is working, no uncertainty very rapidly it will be renowned, due to its quality contents.