构建类cocos2d-x时出错

时间:2017-04-15 21:46:04

标签: class build cocos2d-x

我添加了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中添加了该类的名称。

这些是错误

enter image description here

我做错了什么?如何创建课程?

1 个答案:

答案 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