cocos2d for iOS, Android, Win32 and OS X. Built using C++
Pull request Compare This branch is 16024 commits ahead, 35278 commits behind cocos2d:v3.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
build
cocos
docs
extensions
external
licenses
plugin @ a914bd4
template
tests
tools
.gitattributes
.gitignore
.gitmodules
.travis.yml
AUTHORS
CHANGELOG
CMakeLists.txt
README.md

README.md

cocos2d-x

Build Status

cocos2d-x is a multi-platform framework for building 2d games, interactive books, demos and other graphical applications. It is based on cocos2d-iphone, but instead of using Objective-C, it uses C++. It works on iOS, Android, OS X, Windows, Linux, Emscripten, Google Native Client, BlackBerry and Tizen.

cocos2d-x is:

  • Fast
  • Free
  • Easy to use
  • Community Supported

How to start a new game

  1. Download the code from cocos2d download site
  2. Enter tools/project-creator
  3. Run the create_project.py script

Example:

$ cd cocos2d-x/tools/project-creator
$ ./create_project.py -n mygame -k com.your_company.mygame -l cpp -p /home/mygame
$ cd /home/mygame

Build new project for android

$ cd proj.android
$ ./build_native.py

Build new project for ios & osx

  • Enter proj.ios_mac folder, open mygame.xcodeproj
  • Select ios or osx targets in scheme toolbar

Build new project for linux

if you never run cocos2d-x on linux, you need to install all dependences by the script in cocos2d/build/install-deps-linux.sh

$ cd cocos2d/build
$ ./install-deps-linux.sh
$ ../..

Then

$ mkdir build
$ cd build
$ cmake ..
$ make -j4

Run

$ bin/mygame

Build new project for win32

  • Enter proj.win32, open mygame.sln by vs2012

Main features

  • Scene management (workflow)
  • Transitions between scenes
  • Sprites and Sprite Sheets
  • Effects: Lens, Ripple, Waves, Liquid, etc.
  • Actions (behaviours):
    • Trasformation Actions: Move, Rotate, Scale, Fade, Tint, etc.
    • Composable actions: Sequence, Spawn, Repeat, Reverse
    • Ease Actions: Exp, Sin, Cubic, Elastic, etc.
    • Misc actions: CallFunc, OrbitCamera, Follow, Tween
  • Basic menus and buttons
  • Integrated with physics engines: Box2d and Chipmunk
  • Particle system
  • Skeleton Animations: Spine and Armature support
  • Fonts:
    • Fast font rendering using Fixed and Variable width fonts
    • Support for .ttf fonts
  • Tile Map support: Orthogonal, Isometric and Hexagonal
  • Parallax scrolling
  • Motion Streak
  • Render To Texture
  • Touch/Accelerometer on mobile devices
  • Touch/Mouse/Keyboard on desktop
  • Sound Engine support (CocosDenshion library) based on OpenAL
  • Integrated Slow motion/Fast forward
  • Fast and compressed textures: PVR compressed and uncompressed textures, ETC1 compressed textures, and more
  • Resolution Independence
  • Language: C++, with Lua and JavaScript bindings
  • Open Source Commercial Friendly: Compatible with open and closed source projects
  • OpenGL ES 2.0 (mobile) / OpenGL 2.1 (desktop) based

Build Requirements

  • Mac OS X 10.7+, Xcode 4.6+
  • or Ubuntu 12.10+, CMake 2.6+
  • or Windows 7+, VS 2012+

Runtime Requirements

  • iOS 5.0+ for iPhone / iPad games
  • Android 2.3+ for Android games
  • OS X v10.6+ for Mac games
  • Windows 7+ for Win games

Running Tests

Select the test you want from Xcode Scheme chooser.

  • For OS X / iOS
$ cd cocos2d-x/build
$ open samples.xcodeproj
  • For Linux
$ cd cocos2d-x/build
$ ./install-deps-linux.sh
$ cmake ..
$ make

Run Samples

$ bin/hellocpp/hellocpp
or
$ bin/testlua/testlua
  You may meet building errors when building libGLFW.so. It is because libGL.so directs to an error target,
  you should make it to direct to a correct one. `install-deps-linux.sh` only has to be run once.
  • For Windows

Open the cocos2d-x/build/cocos2d-win32.vc2012.sln

  • For Android
$ cd cocos2d-x/build
$ python ./android-build.py hellocpp

Import HelloCpp Android project using Eclipse(released with Android SDK). The path to be imported is cocos2d-x/samples/Cpp/HelloCpp/proj.android.

Contributing to the Project

Did you find a bug? Do you have feature request? Do you want to merge a feature?

Contact us