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

## Installation

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

## Configuration

### PATH Environment Variable

After installation, add `/opt/cocos2d-x/tools/cocos2d-console/bin`, and `/opt/cocos2d-x/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}

### 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 fix this, read here. Don't 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's 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 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

## See also

- Official Programmers Guide
- Cocos2D-X Developer Guide
- Official API Referenece Guide
- Enabling Immersive Mode for Android - See Cookiebit's answer.
- Texture Rendering + Blur Tutorial
- Particle2DX - Cocos2D-X Particle Generator

Category:

- Gaming