标签: cocos2d-x

获取和设置CCSprite(cocos2d-x)中像素的RGB/RGBA值

我为什么需要这个?

基本上我需要将彩色图像变成灰度.包括灰度版本的图像可能是一个解决方案,但在我的情况下空间紧张 - 我不希望我的APK太大.此外,我也想研究一些效果的像素.再次,这是为了使APK更小.

从CCTexture2D找到了getPixel setPixel获取图像的像素RGBA,但我想要更简单的东西.

任何帮助表示赞赏.

谢谢!

rgb grayscale rgba ccsprite cocos2d-x

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

cocos2d-x如何将plist读入数组

我想用cocos2d-x(c ++)读一个plist这里是我的plist:

<array>
    <dict>
        <key>x</key>
        <integer>0</integer>
        <key>y</key>
        <integer>0</integer>
    </dict>
    <dict>
        <key>x</key>
        <integer>140</integer>
        <key>y</key>
        <integer>12</integer>
    </dict>
    <dict>
        <key>x</key>
        <integer>120</integer>
        <key>y</key>
        <integer>280</integer>
    </dict>
    <dict>
        <key>x</key>
        <integer>40</integer>
        <key>y</key>
        <integer>364</integer>
    </dict>
<array>
Run Code Online (Sandbox Code Playgroud)

它基本上是由(x,y)坐标组成的字典数组.我原来的阅读代码是:

NSString *path = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"w%i", world] ofType:@"plist"];
NSMutableArray* points = [NSMutableArray arrayWithContentsOfFile:path];
Run Code Online (Sandbox Code Playgroud)

但现在我需要将其翻译成c ++中的cocos2d-x.我用Google搜索了一些文章,但它们都是关于将plist读入字典.我需要一个阵列.

编辑:::

现在我改变了我的plist格式:

<dict>
    <key>11x</key>
    <integer>0</integer>
    <key>11y</key>
    <integer>0</integer>
    <key>12x</key>
    <integer>140</integer>
    <key>12y</key>
    <integer>12</integer>
<dict>
Run Code Online (Sandbox Code Playgroud)

我该怎么办???我仍然得到同样的错误:

CCDictionary<std::string, CCObject*>* dict = CCFileUtils::dictionaryWithContentsOfFile(plistPath);
int x = (int)dict->objectForKey("11x");
int y = (int)dict->objectForKey("11y");
Run Code Online (Sandbox Code Playgroud)

不行.请先试一试.看看你是否可以从样本plist中读取一个int

iphone plist cocos2d-iphone ios cocos2d-x

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

检查动画是否在cocos2d-x中运行

我正在学习cocos2D-x并正在做一些精灵动画.
我的目标是当单击一个按钮时,对象会向左移动一些动画.现在,如果你快速点击多次,动画会立即发生,看起来熊似乎希望而不是走路.

它的解决方案看起来很简单,我应该检查动画是否已经在运行以及是否应该运行新动画.

以下是我的代码的一部分.

CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("AnimBear.plist");
CCSpriteBatchNode* spriteBatchNode = CCSpriteBatchNode::create("AnimBear.png", 8);

this->addChild(spriteBatchNode,10);
        CCArray *tempArray = new CCArray();
char buffer[15];
for (int i = 1; i <= 8 ; i++) 
    {
sprintf(buffer,"bear%i.png", i);
tempArray->addObject(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(buffer));      
}

CCAnimation *bearWalkingAnimation = CCAnimation::create(tempArray,0.1f);
startAnimation = CCSprite::createWithSpriteFrameName("bear1.png");
startAnimation->setPosition(ccp (350 , CCDirector::sharedDirector()->getWinSize().height/2 -100));
startAnimation->setScale(0.5f);

startAnimation->setTag(5);

//Animation for bear walking    

bearAnimate = CCAnimate::create(bearWalkingAnimation);
Run Code Online (Sandbox Code Playgroud)

这里bearAnimate是一个全局变量,我想知道它是否正在播放动画.

我该怎么做.?
谢谢.

cocos2d-x

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

cocos2d-x如何暂停图层的操作和计划,然后恢复它们

我有一个场景包含很多层(该层包含许多精灵),我如何暂停计划和动作,但随后我可以恢复它们.

c++ cocos2d-iphone cocos2d-x

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

使用boost编译android应用程序,未定义引用'mbtowc'

我正在尝试使用boost 1-49的序列化库来编译一个Android应用程序.具体来说,这个项目有一些方便的脚本来完成工作:https://github.com/MysticTreeGames/Boost-for-Android

使用gnu-libstdc ++ 4.6为armeabi-v7a构建没有针对官方ndk-r8的问题.

至少,它能够创建libboost_serialization-gcc-mt-1_49.a而不会遇到任何错误.在构建期间抛出了几个警告,'禁止零大小数组'_pad'[-pedantic]','不支持'long long','不允许命名的变量宏',没有什么看起来很严重,但我不知道声称自己是gnu编译器的专家.

构建boost也创建了libboost_wserialization-gcc-mt-1_49.a,这似乎很奇怪,但可能无关紧要.我没有将它包含在我的makefile中.

无论如何,当我现在尝试使用此库编译我的代码时,我收到以下错误:

/Users/wespaugh/Development/android-ndk-r8d/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/libboost_serialization-gcc-mt-1_49.a(xml_iarchive.o): in function boost::archive::xml_iarchive_impl<boost::archive::xml_iarchive>::load(std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >&):./boost/archive/impl/xml_iarchive_impl.ipp:71: error: undefined reference to 'mbtowc'
/Users/wespaugh/Development/android-ndk-r8d/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/libboost_serialization-gcc-mt-1_49.a(xml_iarchive.o): in function boost::archive::xml_iarchive_impl<boost::archive::xml_iarchive>::load(wchar_t*):./boost/archive/impl/xml_iarchive_impl.ipp:101: error: undefined reference to 'mbtowc'
/Users/wespaugh/Development/android-ndk-r8d/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/libboost_serialization-gcc-mt-1_49.a(xml_iarchive.o): in function boost::archive::xml_iarchive_impl<boost::archive::naked_xml_iarchive>::load(std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >&):./boost/archive/impl/xml_iarchive_impl.ipp:71: error: undefined reference to 'mbtowc'
/Users/wespaugh/Development/android-ndk-r8d/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/libboost_serialization-gcc-mt-1_49.a(xml_iarchive.o): in function boost::archive::xml_iarchive_impl<boost::archive::naked_xml_iarchive>::load(wchar_t*):./boost/archive/impl/xml_iarchive_impl.ipp:101: error: undefined reference to 'mbtowc'
/Users/wespaugh/Development/android-ndk-r8d/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/libboost_serialization-gcc-mt-1_49.a(xml_oarchive.o): in function boost::archive::iterators::ostream_iterator<char> std::__copy_move<false, false, std::input_iterator_tag>::__copy_m<boost::archive::iterators::mb_from_wchar<boost::archive::iterators::xml_escape<wchar_t const*> >, boost::archive::iterators::ostream_iterator<char> >(boost::archive::iterators::mb_from_wchar<boost::archive::iterators::xml_escape<wchar_t const*> >, boost::archive::iterators::mb_from_wchar<boost::archive::iterators::xml_escape<wchar_t const*> >, boost::archive::iterators::ostream_iterator<char>):./boost/archive/iterators/mb_from_wchar.hpp:91: error: undefined reference to …
Run Code Online (Sandbox Code Playgroud)

android boost boost-serialization android-ndk cocos2d-x

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

将AdMob添加到IOS cocos2d-x 3.2时链接错误

我尝试
使用Xcode 5.1 iOS 7.1
i将adMob添加到cocos2d-x 3.2简单游戏中,遵循https://developers.google.com/mobile-ads-sdk/docs/#ios
http://plaincode.blogspot中的教程 .co.il/2014/02 /实例-的-AdMob的集成功能于cocos2d.html

并在"Other Linker Flags"中添加-ObjC标志后

我收到链接错误:

Undefined symbols for architecture armv7s:
  "_GCControllerDidDisconnectNotification", referenced from:
      -[GCControllerConnectionEventHandler observerConnection:disconnection:] in libcocos2dx iOS.a(CCController-iOS.o)
  "_GCControllerDidConnectNotification", referenced from:
      -[GCControllerConnectionEventHandler observerConnection:disconnection:] in libcocos2dx iOS.a(CCController-iOS.o)
  "_OBJC_CLASS_$_MPMoviePlayerController", referenced from:
      objc-class-ref in libcocos2dx iOS.a(UIVideoPlayerIOS.o)
  "_OBJC_CLASS_$_GCController", referenced from:
      objc-class-ref in libcocos2dx iOS.a(CCController-iOS.o)
     (maybe you meant: _OBJC_CLASS_$_GCControllerConnectionEventHandler)
  "_MPMoviePlayerPlaybackStateDidChangeNotification", referenced from:
      -[UIVideoViewWrapperIos dealloc] in libcocos2dx iOS.a(UIVideoPlayerIOS.o)
      -[UIVideoViewWrapperIos setURL::] in libcocos2dx iOS.a(UIVideoPlayerIOS.o)
  "_MPMoviePlayerPlaybackDidFinishNotification", referenced from:
      -[UIVideoViewWrapperIos dealloc] in libcocos2dx iOS.a(UIVideoPlayerIOS.o)
      -[UIVideoViewWrapperIos …
Run Code Online (Sandbox Code Playgroud)

objective-c admob cocos2d-x cocos2d-x-3.0

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

build_native.py失败并出现错误:为项目构建动态库..失败

我已经安装了cocos2d-x 3.0并尝试构建一个Android版本但是当我运行./build_native.py时,它失败并出现错误

File "./build_native.py", line 89, in do_build
raise Exception("Build dynamic library for project [ " + app_android_root + " ] fails!")
Exception: Build dynamic library for project [ /Users/hoangha/Desktop/Enigma/cocos2d-x-3.0/projects/2048-enhanced-version/source/proj.android ] fails!
Run Code Online (Sandbox Code Playgroud)

我已经阅读了build_native.py中的第89行

if os.system(command) != 0:
    raise Exception("Build dynamic library for project [ " + app_android_root + " ] fails!")
Run Code Online (Sandbox Code Playgroud)

但是我不理解python中的命令os.system(命令),所以任何人都可以帮我解决这个错误.

python android cocos2d-x

6
推荐指数
0
解决办法
1548
查看次数

Admob Ads应用偶尔会在IllegalArgumentException上崩溃

我尝试将AdMob广告和GooglePlay IAP集成到干净的(hello world)cocos2d-js 3.5项目中.

偶尔(每5次运行)应用程序崩溃并显示下面的异常.当我集成IAP时,这种行为就开始了.清洁AdMob集成很好(或者至少被认为是).

到目前为止,我只做了Java部分(除主屏幕外没有调用cocos代码).我确实将google-play-services_lib升级到23版.

日志转储:

E/AndroidRuntime(27040): java.lang.IllegalArgumentException: null reference
E/AndroidRuntime(27040):    at com.google.android.gms.common.internal.d.b(SourceFile:45)
E/AndroidRuntime(27040):    at com.google.android.gms.ads.internal.g.ao.a(SourceFile:60)
E/AndroidRuntime(27040):    at com.google.android.gms.ads.internal.t.b.a(SourceFile:766)
E/AndroidRuntime(27040):    at com.google.android.gms.ads.internal.t.m.run(SourceFile:43)
E/AndroidRuntime(27040):    at android.os.Handler.handleCallback(Handler.java:733)
E/AndroidRuntime(27040):    at android.os.Handler.dispatchMessage(Handler.java:95)
E/AndroidRuntime(27040):    at android.os.Looper.loop(Looper.java:149)
E/AndroidRuntime(27040):    at android.app.ActivityThread.main(ActivityThread.java:5257)
E/AndroidRuntime(27040):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(27040):    at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime(27040):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)
E/AndroidRuntime(27040):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604)
E/AndroidRuntime(27040):    at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

任何提示?如果您发现它有用,我可以发布一些代码片段...

更新:

德米特里提到,这可能是谷歌方面的错误.我可以在崩溃前看到这些安全警告.它表明导致广告的错误是"坦克世界"

W/Ads     (21547): JS: The page at https://googleads.g.doubleclick.net/mads/gma displayed insecure content from http://lh3.googleusercontent.com/mTcg18XIu-LbM4ovcCpet1zMpdkt1QKIZpM7RhdBpH7fjlLFvSRn56yxbh3i92FiHmjLx54rCg.
W/Ads     (21547):  (https://googleads.g.doubleclick.net/mads/gma:0)
I/chromium(21547): [INFO:CONSOLE(0)] "The page at https://googleads.g.doubleclick.net/mads/gma displayed insecure content from …
Run Code Online (Sandbox Code Playgroud)

android admob cocos2d-x google-play-services cocos2d-js

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

Android OS 6.0.1 /system/lib/libc.so中的本机崩溃

当我尝试通过Samsung S7 edge启动应用程序时出现此错误.我尝试在OS 5.1及更低版本的其他设备上运行该应用程序,该应用程序运行良好.以下是我从Google控制台获得的错误:

Build fingerprint:
'samsung/hero2ltexx/hero2lte:6.0.1/MMB29K/G935FXXS1APG2:user/release-keys'
Revision: '9'
ABI: 'arm'
pid: 30659, tid: 30659, name: iplay.jaeger >>> com.roshanstudio.jaeger<<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xfa18081c
    r0 da180818  r1 f727adf0  r2 00000001  r3 ffffffff
    r4 07ffffff  r5 da180820  r6 0000001f  r7 00000000
    r8 f727ae0c  r9 40000003  sl 00000001  fp f727a920
    ip f4d80fb0  sp ffb4d738  lr f7243703  pc f7241938  cpsr 20070030

backtrace:
    #00 pc 00049938  /system/lib/libc.so (arena_run_reg_alloc+87)
    #01 pc 0004b6ff  /system/lib/libc.so (je_arena_tcache_fill_small+94)
    #02 pc 0005ca3b  /system/lib/libc.so (je_tcache_alloc_small_hard+18)
    #03 pc …
Run Code Online (Sandbox Code Playgroud)

java android crash-reports cocos2d-x

6
推荐指数
0
解决办法
817
查看次数

如何创建对象并在 Objective-C 中使用它?

我正在为我的游戏使用 Buildbox。我实施了自定义激励广告。问题是当奖励视频打开时游戏音乐会继续。我想在观看视频后静音和取消静音。

我知道 Java,但我不擅长 Objective-C 和 Cocos2dx。

我的AudioEngine.h类:在 libs/cocos2dx/include/audio/include/ 下

/****************************************************************************
 Copyright (c) 2014-2015 Chukong Technologies Inc.

 http://www.cocos2d-x.org

 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
 in the Software without restriction, including without limitation the rights
 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 copies of the Software, and to permit persons to whom the Software is
 furnished to do …
Run Code Online (Sandbox Code Playgroud)

objective-c objective-c-2.0 ios cocos2d-x buildbox

6
推荐指数
3
解决办法
380
查看次数