だから、Android と iOS のゲームの本のチュートリアルに従っていました。cocos2d-x v2.2
OS X 10.8で使用しています
CCSprite
クラスの拡張中に問題が発生しました。このクラスからオブジェクトを作成するたびに、プロジェクトは Android で実行を停止します。Eclipse はそれをビルドすることを拒否します。問題を絞り込みましたが (後述)、修正方法がわかりません。
GameSprite.h
#ifndef __GAMESPRITE_H__
#define __GAMESPRITE_H__
#include "cocos2d.h"
using namespace cocos2d;
class GameSprite : public CCSprite {
public:
...
GameSprite(void);
~GameSprite(void);
static GameSprite* gameSpriteWithFile (const char* pszFileName);
virtual void setPosition(const CCPoint &pos);
float radius();
};
#endif // __GAMESPRITE_H__
GameSprite.cpp
#include "GameSprite.h"
GameSprite::GameSprite(void) {
_vector = ccp(0,0);
}
GameSprite::~GameSprite(void) {
}
GameSprite* GameSprite::gameSpriteWithFile(const char* pszFileName) {
GameSprite* sprite = new GameSprite();
if (sprite && sprite->initWithFile(pszFileName)) {
sprite->autorelease();
return sprite;
}
CC_SAFE_DELETE(sprite);
return NULL;
}
...
ここで、私のHelloWorld.cpp
ファイルで、GameSprite
次のようにクラスのインスタンスを作成します。
これにより、Eclipse がエラーをスローします。
GameSprite * player1;
player1 = GameSprite::gameSpriteWithFile("myPic.png");
player1->setPosition(ccp(_screenSize.width*0.5, player1->radius() * 2));
this->addChild(player1);
これは iOS で問題なく動作します。スプライトが画面の正しい位置に追加されます。しかし、Eclipse を使用して Android 用にこのプロジェクトをビルドしようとすると、「プロジェクトにエラーが含まれています。アプリケーションを実行する前に修正してください」というエラー メッセージが表示されます。
このコードのチャンク (上記) をHelloWorld.cpp
ファイルから削除すると、アプリは問題なく Android で実行されます。
私が感じる限り、GameSprite.cpp
ファイルの GameSprite::gameSpriteWithFile メソッドに問題があります。しかし、何が問題なのか、どうすれば修正できるのかわかりません。
助けてくれる人はいますか?
ありがとう