[RELEASE] Cocos2d-x 3.8 FINAL, please enjoy ~

Hi @pandamicro,

Thank for your great effort! Can you check again and update the wiki pages, we can access to these new pages from your link, but when we access wiki page on the homepage, it only show the old contents.

Which page do you mean ?

thank cocos team,

1 Like

cocos compile -p android fail.

/bin/sh: -c: line 0: syntax error near unexpected token (' /bin/sh: -c: line 0:/Users/Mac/Documents/adt-bundle-mac-x86_64-20140702/sdk/tools/android update lib-project -p /Users/Mac/Desktop/projects/plugin-android/Samsung_IAP2.0_Android_library_and_sample(20140103)/IAP2.0_Lib -t android-19’

My project contain a third party and it’s path contains “()”, you can see above. yes it’s the samsung IAP lib

It’s ok while use v3.7.
I’m sure that the cocos tool contains some bugs.
Please help me check it.
Thanks

Thanks for update.

We launching this week app based on 3.8 Branch as it have critical fixes for our game, will see how it will goes on Production :slight_smile:

btw. now IOS/MAC projects requiring iconv library, what for it is now used - is it to help fix Labels bug or some other functionality?

@zhangbin Do you have a hint about this problem ?

Some special font file that doesn’t contain a Unicode charmap (which is rather infrequent today), like xingkai.ttf. So we use iconv for converting character from one character encoding to another. pr: https://github.com/cocos2d/cocos2d-x/pull/13076
[RELEASE] Cocos2d-x 3.8 FINAL, please enjoy ~

Ok, It was because we start to invoke android update for compiling on Android, this is the related PR:

Apparently android update doesn’t support your lib’s path containing (). Can you modify the path name ?

I mean when i come to this page http://cocos2d-x.org/wiki to learn about cocos2d-x, the menu on the left only show old content. But nevermind, i now can see all content with “Index by title” option

Of cause I can change folder name to pass compiler.
But you know it seems wired for this kind of constraint to user, additionally it was ok on v3.7.
PS:That folder name is the default folder name of Samsung IAP lib.

Can you advice on Mopub banner initialisation, we have following code to initialise it which worked before update on Android:

 RelativeLayout relativeLayout = new RelativeLayout(_appActivity);
        mFrameLayout.addView(relativeLayout);
        
        RelativeLayout.LayoutParams adViewParams = new RelativeLayout.LayoutParams(MoPubView.LayoutParams.WRAP_CONTENT, MoPubView.LayoutParams.WRAP_CONTENT);
        adViewParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
        adViewParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);

Getting error:

proj.android/src/org/cocos2dx/cpp/AppActivity.java:179: error: no suitable method found for addView(RelativeLayout)
[javac] mFrameLayout.addView(relativeLayout);
[javac] ^
[javac] method ViewGroup.addView(View,int,LayoutParams) is not applicable
[javac] (actual and formal argument lists differ in length)
[javac] method ViewGroup.addView(View,LayoutParams) is not applicable
[javac] (actual and formal argument lists differ in length)

WhatI I see that previously in Cocos2dxActivity was:

protected FrameLayout mFrameLayout = null;

but now it is

protected ResizeLayout mFrameLayout = null;

@energyy The ResizeLayout is a subclass of FrameLayout and we do call addView to add some subviews to the FrameLayout.

I don’t know why you can’t call addView.

Just discovered the in AppDelegate you added additional functionality for multi resolutions:

static cocos2d::Size designResolutionSize = cocos2d::Size(480, 320);
static cocos2d::Size smallResolutionSize = cocos2d::Size(480, 320);
static cocos2d::Size mediumResolutionSize = cocos2d::Size(1024, 768);
static cocos2d::Size largeResolutionSize = cocos2d::Size(2048, 1536);

Will you update documentation or explaining best practices use case for this functionality, previously we handled this by ourselves.

It was just moved from AppMacros.h to AppDelegate. The variable names and the logic have changed. This is not really added functionality.

#if (TARGET_DESIGN_RESOLUTION_SIZE == DESIGN_RESOLUTION_480X320)
static cocos2d::Size designResolutionSize = cocos2d::Size::Size(480, 320);
#elif (TARGET_DESIGN_RESOLUTION_SIZE == DESIGN_RESOLUTION_1024X768)
static cocos2d::Size designResolutionSize = cocos2d::Size::Size(1024, 768);
#elif (TARGET_DESIGN_RESOLUTION_SIZE == DESIGN_RESOLUTION_2048X1536)
static cocos2d::Size designResolutionSize = cocos2d::Size::Size(2048, 1536);
#else
#error unknown target design resolution!
#endif

Thank you for this update!

Keep up the good work!

Next question, what for was this module, I don’t remember if it was or not in previous versions, but this what all the time bouncing over my eyes when compiling project, is it mandatory module or I can disable it somehow?

/Developer/android-ndk-r10d/build/core/build-binary.mk:457: warning: overriding commands for target `obj/local/armeabi/objs-debug/bullet_static/BulletMultiThreaded/SpuLibspe2Support.o'
/Developer/android-ndk-r10d/build/core/build-binary.mk:457: warning: ignoring old commands for target `obj/local/armeabi/objs-debug/bullet_static/BulletMultiThreaded/SpuLibspe2Support.o'

Hi!

can the newly integrated audio engine play multiple sound effects at once? Especially on Android …

I have a composer who want to make a cool thing with animation sounds … Five sounds in parallel would be great!

Lavisrap

SUPPLEMENT:

I played around with 3.8 rc0 and found that it can play 5 sounds in parallel on Android (4.4.4 API 10, ndk r10e). It switches off the first, when the sixth starts. And it stops sound effects after appr. 6 seconds. Is that right?

This is the module used by physics 3d: the bullet physics. For now it’s a component of CCScene, so if you enabled the macro: CC_USE_3D_PHYSICS and CC_ENABLE_BULLET_INTEGRATION, it will be compiled into your project, otherwise, it shouldn’t be.

I know, it can play multiple sound together, we have a PlaySimultaneouslyTest test in NativeTest/AudioEngineTest.js . But I’m not very familiar with the detail and limitation on Android, maybe @WenHai can give you some informations

scheduleOnce() with a delay of 0.0f is endlessly repeated.

This is easily fixed by adding a small delay, nevertheless…

Didn’t happen in 3.7.

    scheduleOnce([](float) { // is repeated
        log("test1");
    }, 0.0f, "test1");

    scheduleOnce([](float) { // works as intended
        log("test2");
    }, 0.1f, "test2");