Quantcast
Channel: Cocos Forums - Latest topics
Viewing all 17083 articles
Browse latest View live

Visual Studio solution for cocos2d-x v4.0

$
0
0

@pccsoares wrote:

The Visual Studio project and solution is missing from cocos2d-x v4.0.
Any plans for adding it? Any way to create them?

Posts: 2

Participants: 2

Read full topic


CC_PREVIEW is true in Build mode

$
0
0

@wugols2004 wrote:

im using 2.2.0 right now but i noticed that CC_PREVIEW is true in the build version of the game. even with debug and source map unchecked. tried using 2.2.1 and the issue is still reproducable. Im building for web-mobile games

Posts: 1

Participants: 1

Read full topic

Cocos parties it up for our 9th Anniversary

$
0
0

@CocosMarketing wrote:

We just celebrated our 9th Anniversary last week and wanted you to get a glimpse of the action and fun we had during the event. Thanks everyone for being a part of the Cocos family of developers. Hope you make great games this next year.

Cocos Party Video from Twitter

Posts: 1

Participants: 1

Read full topic

Tutorial: Getting started with WeChat games (Part VI)

$
0
0

@slackmoehrle wrote:

Cocos Creator: Getting started with WeChat games (Part VI)

Note: This is a multi-part tutorial: Part 1 | Part 2 | Part 3 | Part 4 | Part 5

Introduction and getting help

You are welcome to post to the Cocos Creator category on the Cocos forums to talk about any issues you encounter during the development process. This tutorial does not teach how to code.

Please prepare your development environment before starting this tutorial. If you are having trouble with our tutorial, please take a look at the following documentation:

Preparing the development environment:


Let’s begin!

After building out the collision system in the previous tutorial, we have completed the development of the core gameplay. Next, we need to develop another important thing: the UI

Cocos Creator provides a lot of packaged UI components, which can meet normal development needs. Of course, for the special needs of some projects, we can also customize the built-in UI components. For this tutorial, the UI provided by Cocos Creator itself is more than enough.

In the first tutorial, we created a widget node under the Camera as the parent node of the HUD interface. This HUD interface will always be within the scope of the Camera. This means we don’t have to worry about the movement of the Camera causing the UI to be out of range and not displayed properly.

Using widgets, sprites, labels, and buttons, we can quickly piece together the following UI interface using the Cocos Creator editor:

Next, we need to implement the functions that will start the game when the button is pressed. Since our resource has only one picture, there is no resource to do the button pressed state. Therefore, we choose Scale to help show when the button’s state has changed.

33

When the button is pressed, the button will zoom. The zoom value and switching time can be set by changing both Duration and Zoom Scale.

34

Starting the game

Let’s take a look at what functions we need to implement after the start of the game button is pressed:

  1. The fish hook needs to start sinking
  2. The Main Menu UI needs to disappear so the player can play the game. (i.e. the game start button, game logo, and leaderboard button need to be hidden).

Previously, to aid in debugging, the start() function ran immediately upon game startup. Now that we have implemented a menu/game start system the start() function can be moved to the button click event.

First, in the start() method of the previous Hook.js script, remove the code for debugging when the fish hook starts to move.

start() {
  this.Startline(); // remove this line
}

Second, in the Property Inspector of the Play button, set Click Events to 2:

The click event has four parameters:

  1. the receiver node of the click event. This node must have a script.
  2. the name of the script component.
  3. the specified callback method.
  4. CustonEventData is the incoming parameter of the callback method (optional)

Third, in the level manager, use the mouse to drag the Hook node to Click Events, select the Hook script, and use StartLine() as the callback method.

In this way, a callback can be triggered after clicking, and the StartLine() method is called to make the fish hook start to sink.

We need a function to hide the splash/menu screen.

First, create a new script, MainUI.js for MainUI.

Second, implement a method called Hide(), which will control when the UI is hidden:

Hide () {
  this.node.active = false;
},

Third, in the second Click Event, select MainUI, the script MainUI.js script, and the callback method Hide().

Implementing scoring

Scoring this game is very simple. The text displayed in the Label needs to be changed according to how well the player does playing this game. Changing the display character can be done by assigning a value to the string property of the label.

There is a problem we need to pay attention to.

If the scoring requirements are simple, we can calculate and increase the score when the fish hook collides with the fish, and then change the display content of the score label.

If the scoring requirements are not so simple, we have more logic to write. For example, what if we need to change the color of the label font when the player reaches a certain score, or we need to let the score numbers jump for a few points.

With more complex requirements, these functions could be implemented in the collision callback method and the scoring will work fine. However, this method binds the UI and the fish hook tightly. This could complicate the UI during future development.

To prevent this from happening, we introduce a cross-script global data record. The gameplay logic only changes the value of the data, and the UI only needs to get the value from the data and display it. This is a superficial application of design patterns, but the benefits brought by doing this aren’t minute.

There are many ways to implement this. In this tutorial, a single design pattern will be used.

First, create GameData.js to use as a singleton.

Second, add the following code to GameData.js

var GameData = cc.Class({
    extends: cc.Component,
    statics: {
        instance : null
    },
    properties: {
        score : 0,
        depth : 0
    },
});

GameData.instance = new GameData();

module.exports = GameData;

Third, a singleton can be obtained through GameData.instance to read and write data, avoiding the coupling issue mentioned above. For example, in the HUD.js script:

var GameData = require("GameData");

cc.Class({
  extends: cc.Component,

  properties: {
    mScoreLabel : cc.Label,
    mDepthLabel : cc.Label
  },

  start () {

  },

  update (dt) {
    this.mScoreLabel.string = GameData.instance.score;
    this.mDepthLabel.string = "Depth: " + GameData.instance.depth.toFixed(2);
  },
});

Fourth, when the player clicks play another round, the scene data needs to be reset. A reset method can be added to Scene.js to take care of this.

    reset () {
        GameData.instance.depth = 0;
        GameData.instance.score = 0;
        // clear any fish on the hook
        this.mFishPool.removeAllChildren(true);
        // clear any remaining fish
        this.mController.removeAllChildren(true);
    },

Previewing

Let’s click on the Preview button to see how this game is playing. Once you start the game, you can press a button to start the game and start playing. How high of a score can you reach?

Conclusion

There is just one more installment in this tutorial series!

Stay tuned for Part 7 of this tutorial!

Posts: 1

Participants: 1

Read full topic

Tile maps with Clipping nodes

$
0
0

@Barok wrote:

Hello wanted to ask about Clipping nodes
Will clipping nodes work with tile maps? I’ve seen the clipping node example and notice that it only worked on sprites.

if I parented the tilemap to the clipping node and then the clipping node to the scene, would it work the same way?

Posts: 1

Participants: 1

Read full topic

Android Studio 3.5 Error

$
0
0

@R101 wrote:

Is anyone else seeing this error pop up when a Cocos2d-x project is open in Android Studio 3.5.x?

image

Just need to know if anyone else is seeing it, because if not then it’s something specific to my setup.

Posts: 1

Participants: 1

Read full topic

Migrating resources?

$
0
0

@dogwalker wrote:

@slackmoehrle, can you point me to a post where there’s a good explanation for changing how I use resources on Windows (and maybe Mac, not sure) from the older 3.17 to the newer approach, and what I need to do. For example, do I move all my subfolders that are currently under Resources?

thanks again!

Posts: 5

Participants: 2

Read full topic

SdkboxPlay SavedGame doesn't work

$
0
0

@pbs0512 wrote:

SdkboxPlay Login, Achievements works.
However, SavedGame has no response or logs.
(saveGameDataBinary, loadOneGameData, fetchGameDataNames, loadAllGameData)

sdkbox_config.json

"sdkboxplay":{
    "debug":true,
    "cloud_save":true,
    "show_achievement_notification":true,
    "connect_on_start":false,
    "achievements":[
        {
            "id": "CgkIs6Ct9NceEAIQAw",
            "name": "TEST",
            "incremental": false
        }
    ]
}

Logcat msg.

I/SDKBOX_CORE: Initialization request for plugin: ‘com/sdkbox/plugin/SdkboxGPGAuthentication’
I/SDKBOX_CORE: Initialization request for plugin: ‘com/sdkbox/plugin/SdkboxGPGLeaderboards’
I/SdkboxGPGLeaderboards: Leaderboard info is null.
I/SDKBOX_CORE: Initialization request for plugin: ‘com/sdkbox/plugin/SdkboxGPGAchievements’

Plugin does not initialize SdkboxGPGSavedGame.
I did not install the Google Play Services SDK from sdkbox, but set it as follows:

build.gradle

dependencies {
implementation ‘com.android.support:multidex:1.0.3’
implementation ‘com.google.firebase:firebase-core:17.0.0’
implementation ‘com.google.firebase:firebase-analytics:17.0.0’
implementation ‘com.google.android.gms:play-services-ads:18.0.0’
implementation ‘com.unity3d.ads:unity-ads:3.1.0’
implementation ‘com.google.ads.mediation:unity:3.1.0.0’
implementation ‘com.google.android.gms:play-services-base:17.0.0’
implementation ‘com.google.android.gms:play-services-auth:17.0.0’
implementation ‘com.google.android.gms:play-services-games:18.0.0’
implementation ‘com.google.android.gms:play-services-drive:17.0.0’
implementation ‘com.google.firebase.messaging.cpp:firebase_messaging_cpp@aar’
implementation ‘com.google.firebase:firebase-messaging:19.0.0’
implementation ‘com.google.firebase:firebase-invites:17.0.0’
implementation ‘com.crashlytics.sdk.android:crashlytics:2.10.1’
implementation ‘com.crashlytics.sdk.android:crashlytics-ndk:2.1.0’
implementation fileTree(include: [’.jar’], dir: ‘libs’)
implementation project(’:libcocos2dx’)
implementation fileTree(include: [’
.jar’], dir: ‘libs’)
}

Posts: 1

Participants: 1

Read full topic


v4.0 PC Resources folder

$
0
0

@mark0x01 wrote:

Hello,

On the PC, I’ve always preferred to have NO ‘resource’ files copied from the resources directory into anywhere else each time I’d run the app/game. Up until Cocos2d-x 4.0, it was fairly straightforward to fix the issue each time just by backing out the changes from this commit: https://github.com/cocos2d/cocos2d-x/pull/10431/files, and then doing a few other tweaks here and there (remove the post build ‘copy’ event in VS, etc) to run the app or game using the resources right there where they already are in the resource directory.

What I am wondering is if somebody could point me to the relevant location for that - using Cocos2dx 4.0. I realize that all of that seems to be done using ‘CMake’ in this version - so I am finally biting the bullet and trying to learn how it works and how to use it. There seems to be a lot of CMake related files, and I’ve looked through them all and see spots that look related, but it is kind of daunting for a CMake noob. If somebody knew the exact file(s) that might deal with this one specific particular issue, it would be a great help as I get my feet wet learning CMake and how to use it with Cocos2d.

Thanks in advance!
-Mark

Posts: 1

Participants: 1

Read full topic

NDK Resolution Outcome: Project settings: Gradle model version=5.4.1, NDK version is UNKNOWN

$
0
0

@Chino9 wrote:

Hi i have problem with android studio project, until yesterday was worked. But i think when i execute gradle update make this issue. From this moment i cant build the app because i have the followin message:

Gradle sync failed: executing external native build for cmake /Users/…/CMakeLists.txt (4 s 813 ms)

22:06 NDK Resolution Outcome: Project settings: Gradle model version=5.4.1, NDK version is UNKNOWN

And in stacktrace show:

org.gradle.api.GradleException: executing external native build for cmake /Users/mexicanobermudez/Documents/workspace_divino/mobile/app/CMakeLists.txt
at com.android.build.gradle.internal.cxx.logging.ErrorsAreFatalThreadLoggingEnvironment.close(ErrorsAreFatalThreadLoggingEnvironment.kt:50)
at com.android.build.gradle.tasks.ExternalNativeJsonGenerator.buildForOneConfigurationConvertExceptions(ExternalNativeJsonGenerator.java:164)
at com.android.build.gradle.tasks.ExternalNativeJsonGenerator.buildForOneAbiName(ExternalNativeJsonGenerator.java:208)
at com.android.build.gradle.internal.ide.NativeModelBuilder.buildNativeVariantAbi(NativeModelBuilder.kt:149)
at com.android.build.gradle.internal.ide.NativeModelBuilder.buildAll(NativeModelBuilder.kt:97)
at com.android.build.gradle.internal.ide.NativeModelBuilder.buildAll(NativeModelBuilder.kt:38)
at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$ParameterizedBuildOperationWrappingToolingModelBuilder$1$1.create(DefaultToolingModelBuilderRegistry.java:138)
at org.gradle.api.internal.project.DefaultProjectStateRegistry.withLenientState(DefaultProjectStateRegistry.java:132)
at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$ParameterizedBuildOperationWrappingToolingModelBuilder$1.call(DefaultToolingModelBuilderRegistry.java:134)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
at org.gradle.internal.operations.DefaultBuildOpera

I try download new NDK, Import again the project, Undate gradle version, and others worksarounds, but any was working.

I appresiate any colaboration.

THANKS

Posts: 1

Participants: 1

Read full topic

Android SDK, min OS

$
0
0

@C_Stefano wrote:

Hi guys,
In cocoscreator 2.2.1, what is the min OS Android where is compatible?

Many thanks!

Stefano

Posts: 1

Participants: 1

Read full topic

C/C++ debug|armeabi-v7a : CMake Error at ..cocos2d/cocos/CMakeLists.txt:120 (add_library)

$
0
0

@Chino9 wrote:

I have the following error in android enviroment:

/…/mobile/app/CMakeLists.txt : C/C++ debug|armeabi-v7a : CMake Error at /…/mobile/app/cocos2d/cocos/CMakeLists.txt:120 (add_library):
Cannot find source file:

2d/.cpp

Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx

If any have idea please reply me

Posts: 1

Participants: 1

Read full topic

V4.0 glsl-optimizer for Metal and some other issues

$
0
0

@Darren wrote:

Hi,

I wanted to reply to this thread but unfortunately it’s closed :frowning:
https://discuss.cocos2d-x.org/t/are-you-using-v4-metal-currently/47145/48

Anw, thank you cocos2d-x team for bringing Metal support in v4.0! I have been using it and it works fine out of the box.
However, i have bump into an issue with my custom shaders. For example in this code snippet.

void main()
{
    v_fragmentColor = a_color;
    v_texCoord = a_texCoord;

    vec2 flowDir = vec2(texture2D(u_flowTexture, a_texCoord).rg);
    .
    .
    .
    vec4 pos = a_position;
    pos.xy -= flowDir * u_time;
    gl_Position = u_MVPMatrix * pos;
}

After going through the glsl-optimiser, the vec2 flowDir is swapped with a type of half4 instead of float4. And since gl_Position underwent some operation with vec4 pos, which underwent an operation with flowDir, this resulted in gl_Position being declared as a half4 and not float4 and this will cause the Metal shader to fail to compile because vertex shader has to return a float4 gl_Position.

Basically, if the gl_Position is calculated from anything that derives from a variable that derives from a half, it will have the precision reduced to half instead of float. And I notice that anything that results from texture2D operation always result in a half.

Has anybody came across this issue and found a solution for it?

I had a temporary fix for this on a leaner project, whereby I have a separate file for the Metal shader that I manually corrected the variable type. But I had to perform some edit to the engine’s renderer codes so that it takes in a separate file.
But I don’t think this is a viable solution when it comes to a big project. The ideal case is to manage just 1 file for each shader instead of having to manage different shader language versions of it.

Posts: 1

Participants: 1

Read full topic

Runtime error on SDKBOX

$
0
0

@pccsoares wrote:

Hello!
I’m trying to add SDKBOX + review + IAP to a new cocos2d-x v4.0 project. gradlew finishes successfully but on runtime it crashes with the following:

12-13 13:23:34.435 19699 19728 W System.err: java.lang.NoSuchMethodError: no static method “Lcom/sdkbox/plugin/SdkboxLog;.setDefaultDebugLevel(I)V”
12-13 13:23:34.436 19699 19728 W System.err: at com.sdkbox.plugin.SDKBox.nOnStart(Native Method)
12-13 13:23:34.436 19699 19728 W System.err: at com.sdkbox.plugin.SDKBox$a.run(SourceFile:1)
12-13 13:23:34.436 19699 19728 W System.err: at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1502)
12-13 13:23:34.436 19699 19728 W System.err: at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1272)
12-13 13:23:34.436 19699 19728 E SDKBOX_CORE: JNI_BRIDGE Not found static method setDefaultDebugLevel, for clazz com/sdkbox/plugin/SdkboxLog and signature (I)V

12-13 13:23:36.587 19699 19728 E SDKBOX_CORE: JNI_BRIDGE Not found static method NewLog, for clazz com/sdkbox/plugin/SdkboxLog and signature (Ljava/lang/String;)V
12-13 13:23:36.587 19699 19728 E Review : : Failed to get plugin config json
12-13 13:23:36.587 19699 19728 E JniHelper: Classloader failed to find class of org.cocos2dx.cpp.Cocos2dxActivity
12-13 13:23:36.587 19699 19728 E JniHelper: Failed to find class org.cocos2dx.cpp.Cocos2dxActivity

12-13 13:23:39.568 19783 19783 F DEBUG : backtrace:
12-13 13:23:39.568 19783 19783 F DEBUG : #00 pc 0069e56e /data/app/com.monkeyibrow.worldcupsc-Q0hHbWPLjDBq-hZPvTxzJg==/lib/x86/libMyGame.so (sdkbox::ReviewProxy::tryShowDialog() const+30) (BuildId: 731cfb9bf32d80651dd1d2bb1122e0d04a276ff7)
12-13 13:23:39.568 19783 19783 F DEBUG : #01 pc 0069a52d /data/app/com.monkeyibrow.worldcupsc-Q0hHbWPLjDBq-hZPvTxzJg==/lib/x86/libMyGame.so (sdkbox::ReviewWrapperEnabled::tryToShowPrompt()+445) (BuildId: 731cfb9bf32d80651dd1d2bb1122e0d04a276ff7)

sdkbox.jar, PluginReview.jar are on \proj.android\app\libs

what else may be missing?

Thanks.

Posts: 1

Participants: 1

Read full topic

Why DrawNode outside of screen increase GL calls?

$
0
0

@CrazyHappyGame wrote:

Why DrawNode outside of screen increase GL calls?
For below code I have “GL calls:1000” but only 7 draw node are on screen.

    float step = 100;
    for (int i = 0; i < 1000; ++i)
    {
        auto posXY = static_cast<float>(i);
        auto s1 = cocos2d::DrawNode::create();
        s1->drawDot({}, 1, cocos2d::Color4F::BLACK);
        s1->setPosition(cocos2d::Vec2{posXY, posXY} * step);
        auto s = s1->getContentSize();
        layer->addChild(s1);
    }

For the same code with Sprite everything works as expected “GL calls:14” (only 14 Sprite are drawn rest are outside of screen)

    float step = 100;
    for (int i = 0; i < 1000; ++i)
    {
        auto posXY = static_cast<float>(i) * step;
        auto s1 = cocos2d::Sprite::create("arrow.png");
        s1->setPosition(cocos2d::Vec2{posXY, posXY});
        layer->addChild(s1);
        // second sprite to break batching
        auto s2 = cocos2d::Sprite::create("back_button.png");
        s2->setPosition(cocos2d::Vec2{posXY, posXY});
        layer->addChild(s2);
    }

Regards,
Chp

Posts: 2

Participants: 2

Read full topic


Is Cocos2d-x suitable for Windows & Android development?

$
0
0

@OrionSteel wrote:

I would like some suggestions and advice from the community please.
Is cocos2d-x a good engine to learn for Windows and Android games?

I want to make a game on Windows and Android - if it works on Apple IOS that is a bonus. It is a tile based adventure game, and I have years of C++ experience , so Cocos2D-x seemed a good choice for a hobby project.

However, after spending several days with V3.17.1 I am beginning to think Cocos is mainly for IOS and buggy on Windows 10 (I have not tried Android yet).
Now it seems V4 removed OpenGL and only support Metal (for Apple I assume), making me wonder if there is a point learning cocos2d-x if I want to program for Windows and Android.

I worked from several old tutorials I found online, and I expected some challenges since some are old. I did not expect the coordinate error I am getting from touch and mouse events - In particular mouse coordinates seem to give semi random numbers. And the locations when converting between OpenGL and Cocos’ draw coordinates seem way off. Basically when I draw on mouse or touch coordinates it is in wrong y location (and not just y axis flip, there is offset and seemingly random y value coordinates too). This seems a surprising thing to have obvious bug, unless Windows not really supported.

I had hoped V4 would fix this, but now it seems V4 has no OpenGL only Apple Metal.

I would really like to like Cocos2d-x but I’m wondering if it is the right choice for Windows and Android or if there are more suitable game development engines for my purposes.

I get the impression Cocos is not used or tested much on Windows, and this will be worse with Metal focus in V4 - but perhaps I am wrong?

Is it a mistake to start learning Cocos2d-x for use on Windows and Android?

Perhaps another engine focused more on Windows would be better (suggestions)?

Is Cocos not well supported on Windows and Android? Will the switch away from OpenGL be a problem for those platforms?

Or am I just having beginner trouble, and should ask for help on how to do a simple line draw from (0,0) lower-left-corner to touch and mouse click position, when running on Windows 10. Perhaps I am missing something silly.

It seems like things that should be easy in a game engine are surprisingly hard.

Thanks

Posts: 5

Participants: 3

Read full topic

Error when building cpp-test on cocos2d-x 4.0

$
0
0

@syaifulnizamyahya wrote:

Hi,

I start by following the guide here. https://docs.cocos2d-x.org/cocos2d-x/v4/en/installation/Windows.html

Regarding prerequisites:

  • Windows 7+ - have windows 10
  • VS 2017+ - have visual studio 2019
  • CMake 3.1+ - installed latest
  • Python 2.7.5+, Python 2,7.10 reccomended , NOT Python 3+ - installed Python 2.7.10

Download Cocos2dx v4 from github repo.

I run this command

python setup.py

Then i run this command

cd COCOS2DX/tests/cpp-tests
mkdir win32-build
cd win32-build
cmake ..

Then I rebuild the generated solution and get this error.

Please advise.

Thanks.

Posts: 6

Participants: 4

Read full topic

ui::Widget::TouchEventType::MOVED

applicationWillEnterForeground called twice on Admob Rewardedvideo closed

$
0
0

@flypigzju wrote:

I am using cocos2d-x3.17.2 for developing android games.

When I am trying to use Admob Rewarded Video in Android. I noticed that applicationWillEnterForeground called twice after I close the rewawded ad after watching it.

First time is onWindowFocusChanged = true, here is the code in cocos2d-x, it will be called right after I click the close button on ad.
@Override
public void onWindowFocusChanged(boolean hasFocus) {
Log.d(TAG, “onWindowFocusChanged() hasFocus=” + hasFocus);
super.onWindowFocusChanged(hasFocus);

    this.hasFocus = hasFocus;
    resumeIfHasFocus();
}

private void resumeIfHasFocus() {
    //It is possible for the app to receive the onWindowsFocusChanged(true) event
    //even though it is locked or asleep
    boolean readyToPlay = !isDeviceLocked() && !isDeviceAsleep();

    if(hasFocus && readyToPlay) {
        this.hideVirtualButton();
    	Cocos2dxHelper.onResume();
    	mGLSurfaceView.onResume();
    }
}

Second time is onResume. this will be called after the ad totally was removed from screen.(there is a move out animation for Ad).
@Override
protected void onResume() {
Log.d(TAG, “onResume()”);
paused = false;
super.onResume();
if(gainAudioFocus)
Cocos2dxAudioFocusManager.registerAudioFocusListener(this);
this.hideVirtualButton();
resumeIfHasFocus();
}

If I give user reward as callback after first applicationWillEnterForeground was called, the game crashes randomly, because the ad close effect takes 0.5 second to move out, it’s rendering foreground.

How can I really know when can I give rewards to user after ad closed.

Posts: 1

Participants: 1

Read full topic

How to position menu/others to the center of the screen?

Viewing all 17083 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>