标签: cocos2d-x

使用JNI调用或使用Openfeint更改活动会导致App-Crash

当我想用我的C++代码中的JNI调用来改变我的Android-Application的Activity时,我遇到了很大的问题.该应用程序使用cocos2d-x进行渲染.具体情况是我想使用这个非常小的函数在Java中打开OpenFeint-Dashboard:

void launchOpenFeintDashboard() {
    Dashboard.open();
}
Run Code Online (Sandbox Code Playgroud)

然后使用简单的JNI调用从C++调用此函数:

void
OFWrapper::launchDashboard() {
// init openfeint
CCLog("CPP Init OpenFeint Dashboard");

CCDirector::sharedDirector()->pause();

jmethodID javamethod = JNIManager::env()->GetMethodID(JNIManager::mainActivity(), "launchOpenFeintDashboard", "()V");
if (javamethod == 0)
    return;
JNIManager::env()->CallVoidMethod( JNIManager::mainActivityObj(), javamethod );

CCLog("CPP Init OpenFeint Dashboard done");
}
Run Code Online (Sandbox Code Playgroud)

JNIManager类的实现也非常简单和基本:

#include "JNIManager.h"
#include <cstdlib>

static JNIEnv* sJavaEnvironment = NULL;
static jobject sMainActivityObject = NULL;
static jclass  sMainActivity = NULL;


extern "C" {
    JNIEXPORT void JNICALL Java_net_plazz_mainzelapp_mainzelapp_sendJavaEnvironment(JNIEnv* env, jobject obj);
};

// this function is called from JAVA at startup to …
Run Code Online (Sandbox Code Playgroud)

c++ java-native-interface android android-ndk cocos2d-x

5
推荐指数
2
解决办法
1453
查看次数

在Cocos2dx中使用CREATE_FUNC

任何人都可以解释我为什么需要在Cocos2dx中使用CREATE_FUNC?我在HelloWorld示例中看到了它并且不清楚它.请告诉我更多细节.谢谢.

cocos2d-x

5
推荐指数
1
解决办法
4979
查看次数

"这个"的重要性

我使用cocos2dx在c ++中编程,在添加精灵或对象时,

这个 - > addChild(something)addChild(something)

作品.两种方式都得出相同的结果.

但是,不仅在c++,this使用android系统编程太(也许,所有的编程语言使用"本"?).我在Java中使用它来替换ClassName.class,简单this.但除此之外,还有this很多用途.

但是因为我还没有深入编程语言,我不知道他们是否真的做同样的工作(这个 - > addChildaddChildAND ClassName.classvs. this).

我们为什么需要this

.

.

自答案:

this 是一个关键字,它引用许多面向对象编程语言中的当前类实例或对象.

所以...只是为了安慰?

c++ java this cocos2d-x

5
推荐指数
1
解决办法
600
查看次数

如何让精灵在cocos2d中以正弦曲线移动?

我有一个精灵(例如纸飞机).我想让它像下面的图片一样移动.我可以使用很多MoveToRotateBy动作来按点定义路径,但对我来说这似乎是个坏主意.如何实施?

在此输入图像描述

cocos2d-iphone ios cocos2d-x

5
推荐指数
1
解决办法
1558
查看次数

cocos2dx动作错误:liquid,wave3d和lens3d

现在我关注文章http://www.cocos2d-x.org/wiki/Effects.链接的示例会产生错误.经过测试的cocos2d-x版本是cocos2d-x 3.2beta0.

我的代码:

auto bgimage = Sprite::create("top.png");
bgimage->setPosition(visibleSize / 2);

// create a Lens3D action
ActionInterval* lens = Lens3D::create(10, Size(32, 24), Vec2(100, 180), 150);

 // create a Waved3D action
ActionInterval* waves = Waves3D::create(10, Size(15, 10), 18, 15);

// create a sequence an repeat it forever
bgimage->runAction(RepeatForever::create(Sequence::create(waves, lens, NULL)));

this->addChild(bgimage);
Run Code Online (Sandbox Code Playgroud)

结果日志:

Assert failed: GridActions can only used on NodeGrid

Assertion failed!

File: CCActionGrid.cpp
Line: 84
Run Code Online (Sandbox Code Playgroud)

我弄错了什么?即使我删除液体动作线,wave3dlens3d也显示我同样的错误.

c++ cocos2d-x

5
推荐指数
1
解决办法
1454
查看次数

更改播放器动画时出错

首先,我正在使用cocos2d 3.6一切正常,直到我按下键盘上的右箭头键,从keypress事件监听器执行startRunning()函数,操作成功停止,但在下一行this->runAction(Animate::create( runAnimation));,我得到错误.runAnimation是OK.我想问题是在运行新的Action但我不知道它是什么.

这是代码:

#pragma once

#include "cocos2d.h"

using namespace cocos2d;

const int DIR_RIGHT = 1;
const int DIR_LEFT = -1;




class CPlayer: public Sprite
{

private:
    Animation* idleAnimation;
    Animation* runAnimation;
    Animation* bowAnimation;
    Animation* climbAnimation;
    SpriteFrame* jumpFrame;
    SpriteFrame* fallFrame;
    SpriteFrame* wallJumpFrame;

    boolean onGround = true;
    boolean running = false;
    int dir = DIR_RIGHT;
    float movementSpeed = 50; //50 unit in world space 
    float stateTime=0;
public:

    Animation* createAnimation(const char* format, float delay, bool loop){

        Animation* animation = Animation::create();
        char …
Run Code Online (Sandbox Code Playgroud)

cocos2d-x cocos2d-x-3.0

5
推荐指数
1
解决办法
109
查看次数

Cocos2d-x与Visual Studio 2015跨平台工具

如何设置Cocos2d-x(3.7)以使用Visual Studio 2015的Android和iOS新C++跨平台工具?这是相对较新的,除了最简单的项目之外,没有太多文档.我有Cocos2d-x和一些SDKBOX插件,我似乎无法在Visual Studio中设置任何东西.

在这里投票获取样本. https://code.msdn.microsoft.com/site/requests/Cocos2d-x-e34be78c?ShowSubmitLinkForm=False

c++ android ios cocos2d-x visual-studio-2015

5
推荐指数
1
解决办法
3417
查看次数

在浏览器中运行cocos2d-x项目

我做了一些研究,找不到直接简单的方法来运行我在网上用c ++构建的cocos2d-x项目.如果除了用js或html重写我的代码之外还有其他解决方案,我很乐意听到.到目前为止我尝试过的事情......

期待听到其他选择和想法.我张贴在cocos2d forumns同样的问题:http://discuss.cocos2d-x.org/t/run-cocos2d-x-project-in-browser/25224

谢谢.

javascript c++ html5 cross-platform cocos2d-x

5
推荐指数
0
解决办法
441
查看次数

如何终止std :: thread?

我目前正在开发一个程序,需要从套接字服务器下载一些图像,下载工作将执行很长时间.所以,我创造了一个新std::thread的做法.

一旦下载,std::thread它将调用当前Class的成员函数,但此类可能已被释放.所以,我有一个例外.

如何解决这个问题呢?

void xxx::fun1()
{
   ...
}
void xxx::downloadImg()
{
 ...a long time
  if(downloadComplete)
  {
   this->fun1();
  }
}
void xxx::mainProcees()
{
  std::thread* th = new thread(mem_fn(&xxx::downloadImg),this);
  th->detach();
  //if I use th->join(),the UI will be obstructed
}
Run Code Online (Sandbox Code Playgroud)

c++ multithreading cocos2d-x c++11 stdthread

5
推荐指数
1
解决办法
7479
查看次数

在飞行中重新着色精灵

我需要替换精灵的颜色.
一些建立在谷歌的例子
图片

这里我发现了一个看起来像Unity的工作解决方案 - [如何使用着色器动态交换精灵的颜色] [2]

如何将它移植到cocos2d-x?有人可以帮助代码示例吗?

我正在寻找cocos2d-x v3代码片段.真的很期待一些帮助.

c++ glsl cocos2d-x

5
推荐指数
1
解决办法
731
查看次数