我添加了GraphicsScene.h类:
#pragma once
#include "cocos2d.h"
class GraphicsScene : public cocos2d::Layer
{
public:
static cocos2d::Scene* createScene();
virtual bool init();
CREATE_FUNC(GraphicsScene);
};
然后
#include "GraphicsScene.h"
USING_NS_CC;
Scene* GraphicsScene::createScene()
{
auto scene = Scene::create();
auto layer = GraphicsScene::create();
scene->addChild(layer);
return scene;
}
bool GraphicsScene::init()
{
if ( !Layer::init() )
{
return false;
}
auto sprite = Sprite::create("HelloWorld.png");
sprite->setPosition(0, 0);
this->addChild(sprite, 0);
return true;
}
然后我在AppDelegate中添加了而不是通常的HelloWorld :: createScene():
auto scene = GraphicsScene::createScene();
// run
director->runWithScene(scene);
我在Android.mk中添加了该类的名称。
这些是错误
我做错了什么?如何创建课程?
答案 0 :(得分:0)
一切似乎都很好。
我猜你编辑了错误的Android.mk文件。请检查您编辑的Android.mk
文件是什么?
proj.android 中的那个或 proj.android-studio 中的那个?
使用--android-studio
标记进行编译时,您正在 proj.android-studio 中编译项目,而不是 proj.android 。
cocos compile -p android --android-studio
您未在GraphicsScene.h
中使用包含警戒。使用include guard可以避免多次包含相同的头文件。
修改强>
从GraphicsScene.cpp
中的static
方法定义中删除createScene
关键字
static Scene* GraphicsScene::createScene()
{
auto scene = Scene::create();
auto layer = GraphicsScene::create();
scene->addChild(layer);
return scene;
}
编辑2
Android.mk
的 proj.android-studio
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../../Classes/AppDelegate.cpp \
../../../Classes/HelloWorldScene.cpp \
../../Classes/GraphicsScene.cpp --> Path is wrong for this file
所以将其更改为../../../Classes/GraphicsScene.cpp