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

so there is no way to install cocos2d-x 3.8 in windows?or work in it?

Did you fix this bug?

New release looks great!

But Iā€™m noticing that my scrollview (subclassed) with buttons on it no longer works, upgrading from 3.7.1 final.
Buttons swallow all input because the scrollview fails hitTest on onTouchBegan (with null camera), returning false where it used to return true. Touch events then arenā€™t propagated in the way they used to be.
Havenā€™t explored completely, but for my game itā€™s a breaking change and now Iā€™m confused trying to work around it.

Iā€™ve noticed somethingā€™s up with touch events too, especially around the ListView. I have a case where I have a set of buttons in a ListView and every other touch is received by the ListView first instead of a button. So you have to double tap to trigger buttons. Anyone else seen this?

It may be related to my double touch events received by listeners if more than one camera active. I posted fix for our need on github and I think my previous reply.

@almax27 @Jgod Thanks for reporting this bug, we are investigating it, please stay tuned.

@stevetranby Where can we find your fix ?

What about support of blur for Label shadow? Would it be implemented in new version?

What about this problem? This isnā€™t solved entirely. It just happened after displaying a vungle video ad.

After 2 Days my Feedback isā€¦ switching from older Versions to v3.7-v3.8 is not possible for Android Projectsā€¦ especially when you use 3rd party libraries like Facebook, GooglePlayServices etc.

I red for hours about Messages like ā€œUsing Eclipse project : Android platform not specified, searching a default oneā€¦ā€,
"EOFError: EOF when reading a line"or other random warningsā€¦ No help found!

Thatā€™s really disappointing. We switched back to older cocos2dx Versionā€¦ for future projects I think we have to try other (more stable) Game-Engines.

again, not sure if related. It also may not be a correct fix, but weā€™ve found our touch handling is back to ā€œnormalā€ after we changed our code as I mention in the issue

How do we set aliasing on Labels?

I used to do my_label->getTexture()->setAliasTexParams(), but that no longer works because Label no longer inherits from SpriteBatchNode.

edit:

Setting content size on Buttonā€™s no longer resizes them like it used to, though Iā€™m not sure it was desired behaviour at all anyway. I used to resize the Buttonā€™s content size based on the Label inside:

auto resize_btn = [](ui::Button* button) {
    auto lbl_size = button->getTitleRenderer()->getContentSize();

    button->setContentSize(
        Size(
            lbl_size.width * 1.5f,
            lbl_size.height * 1.5f
        )
    );

};

but that doesnā€™t do the trick anymore. Setting Dimensions on the buttonā€™s label displaces the label, but leaves the buttonsā€™s sprite the same size.

What can I do to achieve the same effect?

Noob question here : I have an HTML5 / JS project I started with Cocos 3.6. How do I upgrade it to Cocos 3.8 ?

  • Do I have to start a new project and copy my old projectā€™s files to the new one ?
  • Or is there a way to directly upgrade the project?

lol, the same thing I read on UE and unity forums. Everyone wants a stable bug-free game engine, but alas, itā€™s impossible. Iā€™m sticking with 3.6 and waiting fixes for 3.8.

Or code your own. If things are buggy then, you know exactly whom to blame :wink:

1 Like

Really sorry for the inconvenience, the thing is that we canā€™t reproduce your problem, as you mentioned 3rd party libraries, I think maybe itā€™s related.

When you encounter this kind of problem, please give us exact steps to reproduce so that we can investigate, otherwise itā€™s really hard to do more help.

@almax27 @Jgod @stevetranby

Hi, a brief summary about Camera and Event dispatching:

For now, we do dispatch events to all node for each camera, and in event handling you can check wether the camera mask match and then handle it. like the following PR: https://github.com/cocos2d/cocos2d-x/pull/13557

The current implementation of event dispatcher:

  1. Event dispatcher loop all camera to dispatch the event
  2. Each camera loop all node to dispatch the event

We are doing this because of multiple cameras. For example, when two cameras exist, and look at totally different directions, but they are all shown in the game viewport, in this case, we do need to dispatch events separately for different cameras. As our event dispatcher donā€™t have logic for event capturing and hit test, it simply dispatch events to all event listeners, so your problems are happening.

We are considering another solution and will discuss this problem this afternoon :

  1. Event dispatcher loop all camera to dispatch the event
  2. Each camera loop all node and dispatch the event to the nodes which have the same camera mask

EDIT: we are going to do as I suggested above.

1 Like

Both GameEngines you mentioned have very useful documentations. thatā€™s a huuuge Pro!

Like I wrote above updating cocos version for IOS Projects takes about 20 Minutes.
But for Android Project the relations between the Frameworks are almost Subversion-Sensitive. Using NDK-r10c brings Errorsā€¦ using NDK-r10d brings other Errors etc. Same with Eclipse and ADT.
ā€œBug freeā€ I never asked for a bug free Cocos Version in my postsā€¦ Iā€™m just asking for a usable update :slight_smile:

@iQD yeaā€¦ not everyone codes for fun. Letā€™s talk later when you get projects with deadline.

@pandamicro we switched back to older version now.

Yes, you should do this:

  1. Download the Cocos2d-JS v3.8 package.
  2. Upgrade cocos command with setup.py.
  3. Create a new project with cocos new command.
  4. Replace the ā€œsrcā€, ā€œresā€, ā€œindex.htmlā€, ā€œproject.jsonā€, ā€œmain.jsā€ etc with your old project.
  5. Then you may need to refer to the upgrade guide to solve some API change issues.
1 Like

I understand the pressure of deadline and your choice to switch back to older version, indeed we donā€™t encourage new version update during final phases of a game project, it do have some risks, especially for Android platform.

But again, weā€™d like to know what is wrong with your project, so if you have more informations about how to reproduce the issue, please tell us.

Have you updated your Label in Vungle callback ? As mentioned in the issue discussion, you can only manipulate your label in GL thread.