Axmol Engine – A Multi-platform Engine for Desktop, XBOX (UWP) and Mobile games. (A radical fork of Cocos2d-x-4.0)
Go to file
minggo b7a6b77789
fix memory leak in CCUserDefault (#19853) (#19947)
fastSet makes the Data object managing a new memory area in
[bytes, bytes + size), but it doesn't releasing the old data
it managed. Failure to release the old data causes memory leak.

The default constructed Data manages null memory, so calling
fastSet on it is fine.

Because `Data ret = defaultValue;` malloc new memory, we might
have better performance without it.
2019-07-22 09:37:21 +08:00
cmake [cmake] Update plist template for iOS projects (#19828) 2019-06-17 18:37:56 -07:00
cocos fix memory leak in CCUserDefault (#19853) (#19947) 2019-07-22 09:37:21 +08:00
docs Update README.md (#19908) 2019-07-08 13:45:23 +08:00
extensions sync 19693: FIX ios bug : You don’t have permission to save the file Documents_temp (#19937) 2019-07-22 09:35:15 +08:00
external Remove jsb related (#19729) 2019-05-24 00:00:51 -07:00
licenses Remove simple audio engine (#19802) 2019-06-11 18:23:16 -07:00
templates fix twice copy lua scripts error (#19687) (#19936) 2019-07-22 09:34:56 +08:00
tests sync 19634 and fix conflict (#19930) 2019-07-19 11:57:11 +08:00
tools update submodule cocos2d-console (#19896) 2019-07-03 22:23:12 +08:00
.appveyor.yml enable windows ci (#19497) 2019-03-12 18:21:02 +08:00
.gitattributes fix line end in windows 2013-09-20 22:23:13 +08:00
.gitignore fix lua-tests errors (#19646) 2019-05-05 00:26:34 -07:00
.gitmodules Remove jsb/h5 (#19621) 2019-04-18 23:56:12 -07:00
.travis.yml [cmake] Update plist template for iOS projects (#19828) 2019-06-17 18:37:56 -07:00
AUTHORS Update AUTHORS 2016-07-26 21:55:06 +08:00
CHANGELOG Update CHANGELOG corrected little mistakes (#18841) 2018-05-22 22:22:19 +08:00
CMakeLists.txt remove duplicate function call in cmake (#19697) (#19938) 2019-07-22 09:35:30 +08:00
CONTRIBUTING.md rename contribute.md to contributing.md 2015-08-28 14:10:41 +08:00
README.md Update README.md (#19908) 2019-07-08 13:45:23 +08:00
download-deps.py fix folder error if path is not start with v (#19328) 2019-01-21 11:47:15 +08:00
install-deps-linux.sh remove build folder (#19448) 2019-02-28 15:01:59 +08:00
issue_template.md Fix minor typo in issue_template (#16672) 2016-10-11 09:30:18 +08:00
setup.py delete ANT check on setup.py (#19042) 2018-09-14 14:24:07 +08:00

README.md

cocos2d-x

Win32 Others
Build status 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 and Linux.

Cocos2d-x Framework Architecture:

cocos2d-x is:

  • Fast
  • Free
  • Easy to use
  • Community supported

Git user attention

  1. Clone the repo from GitHub.

      $ git clone https://github.com/cocos2d/cocos2d-x.git
    
  2. After cloning the repo, please execute download-deps.py to download and install dependencies.

      $ cd cocos2d-x
      cocos2d-x $ python download-deps.py
    
  3. After running download-deps.py.

      cocos2d-x $ git submodule update --init
    

Download stable versions

Documentations and samples

Main features

  • Scene management (workflow)
  • Transitions between scenes
  • Sprites and Sprite Sheets
  • Effects: Lens, Ripple, Waves, Liquid, etc.
  • Actions (behaviours):
    • Transformation 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
  • Integrated Slow motion/Fast forward
  • Fast and compressed textures: PVR compressed and uncompressed textures, ETC1 compressed textures, and more
  • Resolution Independent
  • Language: C++, with Lua and JavaScript bindings
  • Open Source Commercial Friendly(MIT): Compatible with open and closed source projects
  • OpenGL ES 2.0 (mobile) / OpenGL 2.1 (desktop) / metal(macos and iOS) based

Build Requirements

  • Mac OS X 10.7+, Xcode 8+
  • or Ubuntu 14.04+, CMake 3.1+
  • or Windows 7+, VS 2015
  • Python 2.7.5+(NOT Python 3)
  • NDK r16+ is required to build Android games
  • Android Studio 3.0.0+ to build Android games(tested with 3.0.0)
  • JRE or JDK 1.6+ is required for web publishing

Runtime Requirements

  • iOS 8.0+ for iPhone / iPad games
  • Android 3.0.0+ for Android
  • OS X v10.9+ for Mac games
  • Windows 7+ for Win games

Environment Setup

Should set up environment before starting a new game or running tests

$ cd cocos2d-x
$ ./setup.py
$ source FILE_TO_SAVE_SYSTEM_VARIABLE

Should invoke this script if using linux system

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

Running Tests

$ cd cocos2d-x
$ mkdir build
$ cd build
$ cocos run --proj-dir .. -p [mac|windows|android|linux|ios]

How to start a new game

$ cd cocos2d-x
$ ./setup.py
$ source FILE_TO_SAVE_SYSTEM_VARIABLE
$ cocos new MyGame -p com.your_company.mygame -l cpp -d NEW_PROJECTS_DIR
$ cd NEW_PROJECTS_DIR/MyGame
$ mkdir build
$ cd build
$ cocos run --proj-dir .. -p [mac|windows|android|linux|ios]

You can also create a Lua project with -l lua.

Using IDE

If need to debug program, then it is more convinent to use IDE to run and debug it. All platforms other than Android can use CMake to generate corresponding project file. Can refer to Detail CMake Guide for detail information.

For Android, the Android Studio project file lies in PROJECT_DIR/proj.android. Can just use Android Studio to import the exsting project file.

Learning Resources

Spreading the word!

You can help us spread the word about cocos2d-x! We would surely appreciate it!

See what we are planning!

You can see exactly what we are planning to do with the Cocos family of products.

Where to get help

Contributing to the Project

Cocos2d-x is licensed under the MIT License. We welcome participation!

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

Contact us