Cocos2D-X
Cocos2D-X is a high-performance cross platform 2D/3D game engine that supports multiple platforms such as iOS, Android, WinXP/7/8, WP8, BlackBerry, MeeGo, Marmelade, WebOS, macOS. This page will focus on properly configuring this package for initial usage for the most part. Other documentation is linked in #See also.
Installation
Install the cocos2d-x-srcAUR package.
Configuration
$PATH
If you install manually, add /your-cocos2d-x-dir/tools/cocos2d-console/bin
, and /your-cocos2d-x-dir/tools/cocos2d-console/plugins/plugin_package
to your $PATH
environment variable mostly to run the cocos
python2 script to create projects, and also run sdkbox
respectively.
If you use the version from AUR, package will automatically add all the necessary environment variables to the $PATH
. After installation, you need to reload the environment variables from /etc/profile
. You can do it manually:
source /etc/profile
or just reload your session.
Python scripts workaround
Since some Cocos2D-X scripts use python2
instead of python3
(and does not plan to move from it), like sdkbox
, simply calling python2 foo.pyc
will not suffice since other modules will be called with env python
which points to python3. To avoid this, install the version from AUR, or change script headers. Do not forget to add /usr/local/bin
, or whichever directory the workaround shell script is installed at, before /usr/bin
in your PATH environment variable. The following should suffice:
export PATH=/usr/local/bin:${PATH}
Here is an example shell script workaround:
/usr/local/bin/python
#!/bin/bash script=$(readlink -f -- "$1") case "$script" in (/opt/cocos2d-x/*|/path/to/project1/*|/path/to/project2/*|/path/to/project3/*) exec python2 "$@" esac exec python3 "$@"
Disable sending usage data
Sending the usage data can be disabled setting enable_stat
to false
in /opt/cocos2d-x/tools/cocos2d-console/bin/cocos2d.ini
:
# sed -e 's/enable_stat=.*/enable_stat=false/g' -i /opt/cocos2d-x/tools/cocos2d-console/bin/cocos2d.ini
Cross Compiling for Android
Install jdk8-openjdk, android-ndkAUR, android-sdkAUR and android-sdk-platform-toolsAUR, and also add the following to your shell configuration file:
export NDK_ROOT=/opt/android-ndk export ANDROID_SDK_ROOT=/opt/android-sdk export ANT_ROOT=/usr/bin
The android
tool should suffice to fetch the SDK platform for a certain android version, however there are also packages in the Arch User Repository such as android-platform
for downloading these SDK platforms.
Updating SDKBOX
Cocos2D-X comes with a tool called sdkbox
for integrating third party software development kits into projects easily. To update this tool, you must have read/write/execute access to /opt/cocos2d-x/tools/cocos2d-console/plugins/plugin_package
and the following files in that directory: sdkbox
, sdkbox.bat
, sdkbox.pyc
For a single-user configuration, executing the following will suffice:
# chown $USER:$USER /opt/cocos2d-x/tools/cocos2d-console/plugins/plugin_package/{,sdkbox,sdkbox.bat,sdkbox.pyc} $ sdkbox update
Cocos2D-X Development Notes
Creating a Scene with Physics
As of Cocos2D-X version 3.14, the HelloWorldScene.cpp
and HelloWorldScene.h
templates have been updated in cocos2d-x-srcAUR to reflect the the fact that cocos2d::Layer
has been deprecated. See issue #16941 in the official Cocos2D-X repository.
In order to create a cocos2d::Scene
with physics, line 16 of HelloWorld.cpp
must be changed to the following: if ( !Scene::initWithPhysics() )
See also
- Official Programmers Guide[dead link 2023-06-17 ⓘ]
- Cocos2D-X Developer Guide
- Official API Referenece Guide[dead link 2023-06-17 ⓘ]
- Texture Rendering + Blur Tutorial
- Particle2DX - Cocos2D-X Particle Generator