标签: cocos2d-x

Cocos2d-x是商业品质吗?

可能重复:
适用于Android游戏开发的Cocos2D或libgdx

我有兴趣使用cocos2d-x进行Android和iOS开发,但不确定它是否准备好迎接黄金时段?cocos2d-x与android上的libgdx相比如何?看起来他们可能会花更多时间在文档上,而功能更新现在很慢.另一方面,LibGDX似乎有问题...我认为Cocos2d-x在iOS和Android上运行更理想.一个主要的C++ +.

使用Cocos2d-x开发的应用程序在哪里?

game-engine libgdx cocos2d-x

10
推荐指数
1
解决办法
8099
查看次数

cocos2d-x CCTouchDispatcher - 没有sharedDispatcher

我目前正在将一个ObjC cocos2d游戏移植到cocos2d-x,但我在尝试创建registerWithTouchDispatcher方法时遇到了一些问题,目前我正在做

void GameLayer::registerWithTouchDispatcher()
{
    CCTouchDispatcher::sharedDispatcher()->addTargetedDelegate(this,0,true);
}
Run Code Online (Sandbox Code Playgroud)

但这会在cocos2d :: CCTouchDispatcher'中出现错误'没有名为sharedDispatcher的成员'.

还有另外一种方法,必须在cocos2d-x中完成吗?

c++ cocos2d-iphone cocos2d-x

9
推荐指数
1
解决办法
5221
查看次数

使用数学函数中的值在cocos2d-x中渲染

早上好.

我在linux上,使用cocos2d-x Android.

我创建了一个计算圆值的函数.

        // Circle point updateCircle()
    // x = number of iteration · SamplingPeriod   |-|-|-|
    // y = A · sine ( 2 · PI · number of iteration · SamplingPeriod / Period )
    int iterations = this->getNumberOfIterations();
    CCPoint centerPoint = this->getCenter();
    float x = centerPoint.x + this->getAmplitude() * cos( 2 * M_PI * iterations * this->getSamplingPeriod() * this->getFrequency() );
    float y = centerPoint.y + this->getAmplitude() * sin( 2 * M_PI …

android ccsprite cocos2d-x

9
推荐指数
1
解决办法
1304
查看次数

无法在多平台cocos2d-x应用程序中工作

因此,我正在尝试使用cocos2d-x最新版本创建一个简单的应用程序,由于某种原因无法将我的触摸连接起来.这是我的课程:

class GameLayer : public cocos2d::Layer
{
public:
    static cocos2d::Layer* createLayer();
    void update(float dt);
    virtual bool init();
    CREATE_FUNC(GameLayer);
private:
    bool onTouchBegan(cocos2d::Touch* touch, cocos2d::Event* event);
    void onTouchMoved(cocos2d::Touch* touch, cocos2d::Event* event);
    void onTouchEnded(cocos2d::Touch* touch, cocos2d::Event* event);
};
Run Code Online (Sandbox Code Playgroud)

cocos2d::Layer* GameLayer::createLayer()
{
    GameLayer *layer = GameLayer::create();

    return layer;
}

bool GameLayer::init()
{
    if (!cocos2d::Layer::init())
    {
        return false;
    }

    this->schedule(schedule_selector(GameLayer::update));
    this->setTouchEnabled(true);

    return true;
}

void GameLayer::update(float dt)
{

}

bool GameLayer::onTouchBegan(cocos2d::Touch* touch, cocos2d::Event* event)
{
    cocos2d::log("You touched %f, %f", touch->getLocationInView().x, touch->getLocationInView().y);
    return true;
}
void …
Run Code Online (Sandbox Code Playgroud)

c++ cocos2d-x cocos2d-x-3.0

9
推荐指数
1
解决办法
5254
查看次数

如何将Android Studio与Cocos2d-x一起使用

我作为一名Android程序员工作了不到一年的时间,我刚开始学习Android游戏开发.我选择使用的框架是Cocos2d-x.

我已经看过如何在eclipse中使用Cocos2d-x的指南和教程,但我真的很想知道它是否可以与Android Studio一起使用.

从我读过的内容来看,现在可以在Android Studio中使用gradle构建NDK项目,这是个好消息.不过,我还没有找到任何关于使用Android Studio进行C++编程的信息.Eclipse使用CDC(https://www.eclipse.org/cdt/)插件来实现此目的.

是否有与Android Studio类似的内容?我找到了一些用于IntelliJ平台的C/C++插件,但它们不再更新.

有没有其他人尝过这个?它有用吗?你能为像我这样的新手提供一步一步的指导,他是第一次处理这类问题吗?

谢谢你的时间,

haxm

android android-ndk cocos2d-x android-studio

9
推荐指数
1
解决办法
2万
查看次数

如何在Android设备上调试cocos2d-x 3本机代码

我找不到任何食谱/教程如何构建调试为Android构建cocos2d-x 3.1项目以及如何在设备上直接调试它.请指出步骤帮助.

我做了什么,我有什么问题:

  • cd proj.android
  • cocos compile -p android -m debug --ndk-mode NDK_DEBUG=1 (用调试信息构建)
  • cocos run -p android -m debug 在设备上部署
  • 在设备上运行应用程序
  • cd jni
  • ndk-gdb

我收到这个错误:

Nareks-MacBook-Pro:jni Narek$ ndk-gdb
jni/Android.mk:67: *** Android NDK: Aborting.    .  Stop.
ERROR: The device does not support the application's targetted CPU ABIs!
       Device supports:  armeabi-v7a armeabi
       Package supports: Android NDK: 
Run Code Online (Sandbox Code Playgroud)

进入Application.mk我已添加:

APP_ABI := armeabi armeabi-v7a
APP_PLATFORM := android-10
Run Code Online (Sandbox Code Playgroud)

但它没有帮助.我做错了什么?

编辑:添加ndk-build DUMP_APP_ABI项目jni目录中调用的命令结果:

Nareks-MacBook-Pro:jni Narek$ ndk-build DUMP_APP_ABI 
Android NDK: /Users/Narek/NoorGames/Games/test2/proj.android/jni/Android.mk: …
Run Code Online (Sandbox Code Playgroud)

c++ cocos2d-x cocos2d-x-3.0

9
推荐指数
1
解决办法
9987
查看次数

将精灵从灰度着色为彩色

我有很多相同的图形但不同的颜色.我想通过从灰度图像着色来优化它.此外,我想在实时精灵对象的游戏过程中,在飞行中改变它的颜色.还逐渐将颜色值从一种颜色类型更改为另一种颜色类型

不知道它有用 - 图像转换 - 灰度到颜色.

c++ glsl cocos2d-x

9
推荐指数
1
解决办法
902
查看次数

针对cocos2dx游戏的iPhone X /三星Galaxy S8宽高比问题

我一直在设计所有我的横向cocos2dx手机游戏,在2508x1584,"始终可见区域"为2112x1408,所以没有黑色边框或缩放,只是一些裁剪,将限于"可能不可见的区域",如如下所示.

iphone x之前的设计区域

在iPhone X和三星Galaxy S8到货之前,这适用于所有移动设备宽高比.这些设备分别具有19.5:9和18:9的宽高比,将"始终可见区域"从1408降低到1158,这足以让我看起来别无选择,只能重新设计我的所有游戏,如下图所示.

iphone x后的设计区域

因为当我在iPhone X和三星galaxy S8上运行它时,我将所有以前的游戏设计为更高的可见区域,游戏的顶部和底部显然被切断了.

我是否坚持重新设计这些游戏以使它们适合这种较短的宽高比?还是我在这里忽略了另一种解决方案?

resolution aspect-ratio cocos2d-x

9
推荐指数
1
解决办法
393
查看次数

Android.mk - 在目录中构建所有源文件

我使用Android NDK来构建我的cocos2dx项目,在Android.mk中,有一个LOCAL_SRC_FILES的定义,其中列出了每个cpp文件.每当我添加一个新的源文件时,我都需要在那里添加它...它看起来像这样:

LOCAL_SRC_FILES := hellocpp/main.cpp \
                   hellocpp/myclass.cpp \
                   hellocpp/mynextclass.cpp \
                   ../../Classes/Screens/LaunchScreen.cpp \
Run Code Online (Sandbox Code Playgroud)

但是,头文件可以指定要包含的整个目录,它看起来像这样:

LOCAL_C_INCLUDES := $(LOCAL_PATH)/hellocpp
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../Classes/Screens
Run Code Online (Sandbox Code Playgroud)

我已经尝试了各种方法来包含整个目录而不是单个文件,LOCAL_SRC_FILES这样每当我添加新文件时我都不需要修改Android.mk构建脚本,但到目前为止,我的所有尝试都失败了.

我试过这个:

#SRC_PATH_HELLOCPP := $(wildcard hellocpp/*.cpp)
#SRC_PATH_CLASSES += $(wildcard ../../Classes/*.cpp)

#LOCAL_SRC_FILES := $(SRC_PATH_HELLOCPP:$(LOCAL_PATH/%=%)
#LOCAL_SRC_FILES += $(SRC_PATH_CLASSES:$(LOCAL_PATH/%=%)
Run Code Online (Sandbox Code Playgroud)

以及:

#LOCAL_SRC_FILES += hellocpp/*.cpp
#LOCAL_SRC_FILES += ../../Classes/*.cpp
Run Code Online (Sandbox Code Playgroud)

两个都不工作......

我有另一个项目与第一个选项很好,我真的不明白为什么它在cocos2dx项目中不起作用...有人知道为什么或知道解决方案吗?或者也许我应该保持原样并且麻烦,因为每个人都这样做.但是这真的很麻烦,希望有人可以提供帮助,这样我们所有人都可以更有成效.

谢谢!

android cocos2d-iphone android-ndk cocos2d-x

8
推荐指数
2
解决办法
1万
查看次数

游戏引擎Collison Bitmask ......为什么是0x01等?

在Sprite Kit(iOS开发)和Cocos2d-x(我知道它几乎是Sprite Kit的灵感,因此他们为什么使用大量相同的工具)中遇到这种情况,我终于决定弄清楚为什么这个发生:

当使用物理引擎时,我创建一个精灵,并为其添加一个physicsBody.在大多数情况下,我了解如何设置类别,碰撞和联系位掩码,以及它们如何工作.问题是实际的位掩码数:

SpriteKit:

static const uint32_t missileCategory     =  0x1 << 0;
sprite.physicsBody.categoryBitMask = missileCategory;
Run Code Online (Sandbox Code Playgroud)

的Cocos2D-X:

sprite->getPhysicsBody()->setCategoryBitmask(0x01); // 0001
Run Code Online (Sandbox Code Playgroud)

我完全混淆了为什么在任何一种情况下我都会写0x01或0x1 << 0.我有点认为他们使用的是十六进制,它与32位整数有关.至于我已经能够谷歌,0x01是二进制的0001,十进制是1.0x02是二进制的0010,十进制为2.好的,所以有这些转换,但为什么在世界上我会将它们用于像类别一样简单的东西?

就我的逻辑而言,如果我说玩家类别,敌人类别,导弹类别和墙壁类别,那只是4类.为什么不使用字符串作为类别?或者甚至只是二进制数,任何非CS人都会理解为0,1,2和3?

最后,我很困惑为什么有32种不同的类别?我认为一个32位整数的数字为0-几十亿(当然是无符号的).那么为什么我没有数十亿种不同的可能类别呢?

我不理解某种优化吗?或者这只是他们使用的旧约定,但不是必需的?或者有什么事情发生在那个只有2个学期的大学课程CS培训的人不明白?

bitmask ios cocos2d-x sprite-kit

8
推荐指数
2
解决办法
439
查看次数