因此,我正在学习一本关于 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 方法存在问题。但我无法弄清楚问题是什么,我该如何解决它。
有帮助吗?
谢谢