# Cocos2D-X

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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, Mac OS X. This page will focus on properly configuring this package for initial usage for the most part. For other documentation, click here.

## Installation

Install cocos2d-x-srcAUR from the Arch User Repository.

## Configuration

### PATH Environment Variable

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. Add the following to your respective shell configuration file (~/.bashprofile, ~/.zshenv, etc):

    export PATH=/opt/cocos2d-x/tools/cocos2d-console/bin:/opt/cocos2d-x/tools/cocos2d-console/plugins/plugin_package:${PATH}

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 session.

### Python Scripts Workaround

Since some Cocos2D-X scripts use `python2` instead of `python3`, like `sdkbox`, simply calling `python2 foo.pyc` will not suffice since other modules will be called with "env python" which could point to python3. To avoid this, install 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
- Cocos2D-X Developer Guide
- Official API Referenece Guide
- Texture Rendering + Blur Tutorial
- Particle2DX - Cocos2D-X Particle Generator

Category:

- Gaming