标签: cocos2d-x

2d Framework c ++

我正在寻找一个2d框架,其中包含层/粒子/屏幕管理器/精灵批处理/视差/等在c ++中编码的东西?我正在寻找不一定有图形的东西,因为我想把它添加到airplay sdk上.或者我可以通过airplay轻松重新连接来制作图形.

编辑:我找到了我需要的东西:cocos2d被封装到c ++和airplay sdk(cocos2d-x).谢谢你的答案!

c++ frameworks 2d cocos2d-x

6
推荐指数
1
解决办法
1953
查看次数

Cocos2D-X Literatue

我想在我的游戏中使用Cocos2D-X.所以我想读一些关于它的东西.但除了糟糕的官方文件,我没有找到任何东西.你能提供一些关于Cocos2D-X的资料吗?

如果你没有比Cocod2D-x更适合Android和iOS开发的东西,请告诉我.TNX!

mobile android ios cocos2d-x

6
推荐指数
1
解决办法
727
查看次数

检测触摸Cocos2d-x

我正在使用Cocos2d-x并试图检测我的HelloWorld项目中的触摸.虽然我没有运气.

.H

class HelloWorld : public CCLayer{

private:
    CCSpriteBatchNode * _batchNode;
    CCSprite *_turkey;
    virtual void ccTouchesBegan(cocos2d::CCSet* touches, cocos2d::CCEvent* event);
Run Code Online (Sandbox Code Playgroud)

.ccp

void HelloWorld::ccTouchesBegan(cocos2d::CCSet* touches, cocos2d::CCEvent* event){
    CCLog("this");
}
Run Code Online (Sandbox Code Playgroud)

但问题是,当我点击屏幕时,"这个"永远不会出现在日志中.我在这里失踪了什么?

谢谢!

编辑,

我正在使用本教程. http://www.raywenderlich.com/11338/cocos2d-x-for-ios-and-android-space-game

c++ iphone objective-c cocos2d-iphone cocos2d-x

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

使用COCOS2D-X进行文件I/O.

我正在尝试加载一个名为的逗号分隔文件POSDATA.GAMEDATA.我在互联网上查了几个地方,结果发现我需要做一些调整和/或不同的课程.

我试过用ifstream.但是,它无法打开文件.Xcode 4.3.2似乎找不到我的POSDATA.GAMEDATA文件.我也尝试使用该文件,ofstream但是当我open()在两种情况下使用时,文件都没有打开.

我的代码是这样的:

using namespace std;
void FileLoader::loadFile( string p_WhichFile ) {
   // Local Variables
   string thisLine;

   // Open POSDATA.GAMEDATA
   ifstream dataStream;
   dataStream.open( p_WhichFile.c_str( ) );

   // Check if file is opened
   if ( !dataStream ) {
      cerr << "[ ERROR ] Cannot load file:" << p_WhichFile.c_str( ) << endl;
      exit( 1 );
   }

   // Get lines of strings
   while ( getline( dataStream, thisLine ) ) {
      fileContents.push_back( thisLine …
Run Code Online (Sandbox Code Playgroud)

c++ xcode cocos2d-x

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

如何将jobject转换为jstring

我试图获得一个字符串,以回报从cpp到java的函数调用.

这是我的JNI电话

 string GetIDJni()
{
    cocos2d::JniMethodInfo methodInfo;
    if (! JniHelper::getStaticMethodInfo(methodInfo, CLASS_NAME, "GetID", "()Ljava/lang/String"))
    {
        return "";
    }

    jobject retObj = methodInfo.env->CallStaticObjectMethod(methodInfo.classID, methodInfo.methodID);
    jstring retStr = (jstring)retObj;
    methodInfo.env->DeleteLocalRef(methodInfo.classID);
    return (JniHelper::jstring2string(retStr));        
}
Run Code Online (Sandbox Code Playgroud)

在编译时我得到了错误

错误:从'_jobject*'到'_jstring*'的转换无效

谁能告诉我如何解决这个问题.

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

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

Cocos2dx中的像素完美碰撞检测

我试图在Cocos2d-x中移植像素完美碰撞检测,原始版本是为Cocos2D制作的,可以在这里找到:http://www.cocos2d-iphone.org/forums/topic/pixel-perfect-collision-detection -使用色混/

这是我的Cocos2d-x版本的代码

bool CollisionDetection::areTheSpritesColliding(cocos2d::CCSprite *spr1, cocos2d::CCSprite *spr2, bool pp, CCRenderTexture* _rt) {
    bool isColliding = false;
    CCRect intersection;
    CCRect r1 = spr1->boundingBox();
    CCRect r2 = spr2->boundingBox();
    intersection = CCRectMake(fmax(r1.getMinX(),r2.getMinX()), fmax( r1.getMinY(), r2.getMinY()) ,0,0);
    intersection.size.width = fmin(r1.getMaxX(), r2.getMaxX() - intersection.getMinX());
    intersection.size.height = fmin(r1.getMaxY(), r2.getMaxY() - intersection.getMinY());

    // Look for simple bounding box collision
    if ( (intersection.size.width>0) && (intersection.size.height>0) ) {
        // If we're not checking for pixel perfect collisions, return true
        if (!pp) …

c++ collision-detection ios cocos2d-x

6
推荐指数
1
解决办法
4571
查看次数

libpng错误:CgBI:未处理的关键块xcode 7.3

切换到Xcode 7.3,并在同一个项目上运行项目后,我得到以下错误 -

libpng error: CgBI: unhandled critical chunk
Run Code Online (Sandbox Code Playgroud)

我已将Compress PNG Files项目目标的构建设置设置为NO.

我清理并重建了项目,但仍然没有工作,并给出了上述错误.

欢迎提出任何解决上述问题的建议/帮助.提前致谢.

xcode image libpng ios cocos2d-x

6
推荐指数
1
解决办法
2485
查看次数

cocos-2d C++中的captureScreen - 如何使用或保存捕获的图像?

我想在我的(iOS)应用程序中有一个按钮,它会截取当前屏幕的屏幕截图,然后将其附加到文本消息中.

就像我在其他应用程序中看到的......

在此输入图像描述

我有消息发送工作,我认为我有截图工作,但我不知道截图保存在哪里或如何使用它.

我的消息发送是从应用程序中的按钮调用的...

void GameOverScene::messageCallBack(cocos2d::Ref *sender) {
CocosDenshion::SimpleAudioEngine::getInstance()->playEffect(ALL_BUTTONS_CLICK_SOUND_NAME);
utils::captureScreen( CC_CALLBACK_2(GameOverScene::afterCaptured, this), "screenshot.png" );
__String *messageTextOne = __String::create("sms:&body=Hey,%20I%20just%20hit%20a%20score%20of%20");
__String *messageTextTwo = __String::createWithFormat("%i", score);
__String *messageURL = __String::createWithFormat("%s%s", messageTextOne->getCString(), messageTextTwo->getCString());
Application::getInstance()->openURL(messageURL->getCString());
}
Run Code Online (Sandbox Code Playgroud)

截图功能是......

void GameOverScene::afterCaptured( bool succeed, const std::string &outputFile ) {
if (succeed) {
    log("Screen capture succeeded");
    Size screenSize = Director::getInstance()->getWinSize();
    RenderTexture * tex = RenderTexture::create(screenSize.width, screenSize.height);
    tex->setPosition(screenSize.width/2, screenSize.height/2);
    tex->begin();
    this->getParent()->visit();
    tex->end();
    tex->saveToFile("Image_Save.png", Image::Format::PNG);
} else {
    log("Screen capture failed");
}
}
Run Code Online (Sandbox Code Playgroud)

我在控制台"屏幕截图成功"中收到消息,我的消息应用程序打开时显示预填充的短信.

我需要做的是将屏幕截图添加到此消息,但我无法看到如何做到这一点,或保存屏幕截图的位置,或如何使用保存的屏幕截图.

c++ cocos2d-x

6
推荐指数
1
解决办法
483
查看次数

Android JNI - 来自C++的Android UI线程上的调用函数

我们的游戏引擎Cocos2d-x在其自己的非Java-UI线程上本机运行在android上.我们需要在Android UI线程上通过JNI从C++调用某些Java函数.

为了调用JNI-Functions,我们从这里使用JNIHelper.h/cpp: https://github.com/cocos2d/cocos2d-x/blob/v3/cocos/platform/android/jni/JniHelper.h https: //github.com/cocos2d/cocos2d-x/blob/v3/cocos/platform/android/jni/JniHelper.cpp

例如这个C++代码:

Cocos2d-x

理想情况下,我们希望所有这些调用都发生在Android UI线程上,并将std :: function作为参数传递,一旦函数调用完成,就会再次使用Cocos2d-x-thread上的返回值调用该参数.

调用函数的理想方式:

auto retVal = JniHelper::callStaticStringMethod("org/utils/Facebook",
                         "getFacebookTokenString");
Run Code Online (Sandbox Code Playgroud)

但是也有很多没有任何返回值的调用,所以对于那些在java线程上调用它们应该更容易.

c++ java android android-ndk cocos2d-x

6
推荐指数
1
解决办法
3343
查看次数

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
查看次数