Axmol Engine – A Multi-platform Engine for Desktop, XBOX (UWP) and Mobile games. (A radical fork of Cocos2d-x-4.0)
Go to file
Mazyad Alabduljaleel a2f9956d00 Fix major memory leaks in iOS http request
... and other small fixes

Brief:

1. In iOS, whenever you have a new spawned thread with its own run loop (i.e. while true), you must wrap it with an autorelease pool, so it cleans up the objects at the end of each loop cycle.
2. There were a few "alloc" and "new" objects that weren't released.
3. The HttpAsync class itself was missing dealloc, also property assignment should use `self.property` so the previous value gets released as appropriate.
4. Resolved a small warning

**NOTE**: I have a cocos2d-x game that heavily relies on the HTTP requests, with cookies, but without SSL, so I couldn't test the SSL.
I haven't tested the cookies and SSL yet, but for starters, these improvements are meant to fix the memory issues only, not the logic.
2015-02-23 10:38:33 +04:00
build 3DNode Reader lua Test 2015-02-19 17:28:51 +08:00
cmake cmake: fix GLEW include dir for msvc prebuilt library 2015-01-26 10:02:27 +03:00
cocos Fix major memory leaks in iOS http request 2015-02-23 10:38:33 +04:00
docs [ci skip] update releasenotes 2015-01-30 14:25:26 +08:00
extensions fix compile 2015-02-16 11:57:07 +08:00
external update 3rd party libraries to v3-deps-33 2015-01-21 15:00:27 +08:00
licenses update license for spine 2014-10-16 19:56:45 +08:00
plugin@dc25546289 Update plugin submodule 2015-01-23 14:08:19 +08:00
templates [AUTO][ci skip]: updating cocos2dx_files.json 2015-02-20 01:14:18 +00:00
tests 3DNode Reader lua Test 2015-02-19 17:28:51 +08:00
tools Merge pull request #10447 from super626/particle_merge 2015-02-15 19:48:18 +08:00
.gitattributes fix line end in windows 2013-09-20 22:23:13 +08:00
.gitignore Add FlatBuffer to ignore list 2014-11-27 20:31:10 +08:00
.gitmodules remove submodule 2014-09-24 10:27:53 +08:00
.travis.yml remove travis ci notification by email 2014-12-02 15:26:55 +08:00
AUTHORS [ci skip]update AUTHORS 2015-02-15 19:06:59 +08:00
CHANGELOG [ci skip]update CHANGELOG 2015-02-15 19:07:54 +08:00
CMakeLists.txt cmake+msvc: disable tests and lua bindings by default (temporarily, until tests will be fixed) 2015-01-26 17:28:58 +03:00
README.cmake fixes types in readme 2014-11-05 10:26:46 -08:00
README.md README typo 2014-12-27 10:17:26 +09:00
download-deps.py Using std::swap instead of CC_SWAP 2014-11-16 09:29:05 -08:00
setup.py Solve the environment conflict with Cocos. 2014-12-11 11:14:30 +08:00

README.md

cocos2d-x

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, Windows Phone, OS X, Windows and Linux.

cocos2d-x is:

  • Fast
  • Free
  • Easy to use
  • Community Supported

Git user attention

  1. clone the repo from GitHub.

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

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

      $ cd cocos2d-x
      $ git submodule update --init
    

How to start a new game

  1. Download the code from cocos2d download site
  2. Run setup.py
  3. Run the cocos script

Example:

$ 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

Build and run a new project for Android

$ cocos run -p android -j 4

Build and run a new project for iOS

$ cocos run -p ios

Build and run a new project for OSX

$ cocos run -p mac

Build and run a new project for Linux

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

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

Then

$ cd NEW_PROJECTS_DIR/MyGame
$ cocos run -p linux

Run

$ bin/MyGame

Build and run new project for win32

$ cocos run -p win32

Build and run new project for Windows 8.1 and Windows Phone 8.1

$ cocos new MyGame -p com.bar.foo -l cpp -d projects

With the Cocos2d-x v3.3, you can create Universal App (Two projects at the same time: Windows(Tablet) and Windows Phone 8.1 ) See more info on How to install and Create games on Windows RT (Windows and Windows Phone 8.1) at http://msopentech.github.io/cocos2d-x/

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 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) based

Build Requirements

  • Mac OS X 10.7+, Xcode 5.1+
  • or Ubuntu 12.10+, CMake 2.6+
  • or Windows 7+, VS 2012+
  • Python 2.7.5
  • NDK r10c+ is required to build Android games
  • Windows Phone/Store 8.0 VS 2012+
  • Windows Phone/Store 8.1 VS 2013 Update 3+

Runtime Requirements

  • iOS 5.0+ for iPhone / iPad games
  • Android 2.3+ for Android games
  • Windows Phone 8 and 8.1 for Windows Phone games
  • OS X v10.6+ for Mac games
  • Windows 7+ for Win games
  • Windows 8+ for WinRT games (Modern Apps)

Running Tests

Select the test you want from Xcode Scheme chooser.

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

Run Samples

$ bin/cpp-empty-test/cpp-empty-test
or
$ bin/lua-empty-test/lua-empty-test
  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 cpp-empty-test -p 10
$ adb install ../tests/cpp-empty-test/proj.android/bin/CppEmptyTest-debug.apk

Then click item on Android device to run tests. Available value of -p is the API level, cocos2d-x supports from level 10.

Contributing to the Project

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

Contact us