Axmol Engine – A Multi-platform Engine for Desktop, XBOX (UWP) and Mobile games. (A radical fork of Cocos2d-x-4.0)
Go to file
YuLei Liao bc52b0dd73 * fix CCAction class 2011-12-25 11:48:37 +08:00
Box2D issue #888: remove the setting for android building 2011-12-23 10:40:02 +08:00
CocosDenshion issue #888: remove the setting for android building 2011-12-23 10:40:02 +08:00
HelloLua issue #888: fix some typo error 2011-12-23 11:12:06 +08:00
HelloWorld fixed #919: linux template supports global variable 2011-12-23 14:45:41 +08:00
chipmunk issue #888: remove the setting for android building 2011-12-23 10:40:02 +08:00
cocos2dx * merge upstream/master to master 2011-12-25 11:48:03 +08:00
doxygen changelog of 0.10.0 2011-12-02 10:36:58 +08:00
licenses add two license used for bada port 2011-12-01 19:26:03 +08:00
lua * fix CCAction class 2011-12-25 11:48:37 +08:00
template fixed #919: make script support global variable 2011-12-23 16:00:31 +08:00
tests add run permition 2011-12-23 11:17:20 +08:00
tools * fix CCAction class 2011-12-25 11:48:37 +08:00
.gitignore Modified gitignore to exclude device debug and device release on Blackberry Playbook 2011-12-14 16:27:59 +08:00
AUTHORS Added authors info 2011-12-19 22:57:04 +01:00
CHANGELOG changelog of 0.10.0 2011-12-02 10:36:58 +08:00
README.mdown * update README 2011-11-30 21:55:40 +08:00
build-linux.sh * format some files 2011-11-18 20:35:35 +08:00
build-win32.bat parallel build 2011-07-28 21:03:30 +03:00
build-wophone.sh [wophone]fixed #386,Resolve the compile conflict on wophone sdk.Modify the makefiles for wophone. 2011-03-10 14:24:13 +08:00
cocos2d-win32.vc2008.sln comment some applog 2011-11-07 00:28:09 +08:00
cocos2d-win32.vc2010.sln all tests works ok on vs2010 & fix a bug that HelloLua may crashed on win32 when it eixt 2011-08-17 18:24:36 +08:00
cocos2d-wophone.sln [wophone]fixed #377,Replace the word "uphone" with "wophone". 2011-03-09 17:28:35 +08:00
create-android-project.bat Added the "" to the calls so it can accept paths with spaces under windows (android default installation path is of this kind, so under windows it wont work if you dont modify this files) 2011-12-19 06:50:20 +01:00
create-android-project.sh * merge upstream/master to master 2011-12-25 11:48:03 +08:00
create-bada-project.bat modify project configure 2011-10-25 14:12:42 +08:00
create-linux-android-project.sh fixed #919: make script support global variable 2011-12-23 16:00:31 +08:00
install-templates-msvc.bat Seprate wizard install script from build-win32.bat to install-templates-msvc.bat 2011-03-15 15:59:22 +08:00
install-templates-xcode.sh * merge upstream/master to master 2011-11-30 21:38:20 +08:00

README.mdown

cocos2d-x multiplatform

cocos2d-x is a multi-platform 2D game engine in C++, based on cocos2d-iphone and licensed under MIT. Now this engine has been ported to WOPhone, iOS 4.1, Android 2.1 and higher, WindowsXP & Windows7.

Multi Platform

  • cocos2d-iphone-cpp: tested on iPhone 3.2, 4.1 & 4.2 SDK
  • cocos2d-android-ndk: based on ndk-r4(crystax.net version) & ndk-r5, tested on Android 2.1, 2.2, 2.3 emulator, HTC G2, G3, G6, G7 device
  • cocos2d-wophone: well tested on WOPhone of ChinaUnicom, both emulator & device.
  • cocos2d-win32: well tested on WindowsXP & Windows7. It depends on PowerVR OpenGL ES 1.1 libraries for win32 system

Document

Contact us

Lua Support FIX Readme

  • CCScheduler support local function
  • Support autorelease C++ object
  • When C++ object deleted, set Lua object userdata to nil
  • Add CCNode:setPosition(x, y), CCNode::getPosition(), huge performance boost
  • Remove needless class and functions from tolua++ .pkg files, improved performance
  • CCMenuItem support script function
  • CCScene script callback
  • CCLayer touch & multi-touches events handler

How to use:

-- use CCSchedule::scheduleScriptFunc()

local scheduler = CCScheduler:sharedScheduler()

local handle    -- save script callback handle

local frameCount = 0
local function onEnterFrame(dt)
    print("onEnterFrame:", frameCount, dt)
    frameCount = frameCount + 1
    if frameCount >= 60 then
        -- remove script callback
        scheduler:unscheduleScriptFunc(handle)
    end
end

handle = scheduler:scheduleScriptFunc(onEnterFrame, 1.0 / 60, false)

-- use CCMenuItem:registerScriptHandler()

local function onMenuItemTap(menuItemTag)
    print(menuItemTag) -- output "1"
end

local menuItem = CCMenuItemImage:itemFromNormalImage("button.png", "button.png")
menuItem:registerScriptHandler(onMenuItemTap)

local menu = CCMenu:node()
menu:addChild(menuItem)
menuItem:setTag(1) -- menuItemTag

scene:addChild(menu)

-- use CCScene script callback

local function newScene()
    local scene = CCScene:node()

    local function sceneEventHandler(isOnEnter)
        if isOnEnter then
            if scene.onEnter then scene:onEnter() end
        else
            if scene.onExit then scene:onExit() end
            scene:unregisterScriptEventsHandler()
        end
    end

    scene:registerScriptEventsHandler(sceneEventHandler)
    return scene
end

local myScene = newScene("MyScene")
function myScene:onEnter()
    print("MyScene:onEnter()")
end

function myScene:onExit()
    print("MyScene:onExit()")
end

CCDirector:sharedDirector():runWithScene(myScene)

-- use CCLayer touch event handler

local layer = CCLayer:node()
local function onTouch(event, x, y)
    -- event: CCTOUCHBEGAN, CCTOUCHMOVED, CCTOUCHENDED, CCTOUCHCANCELLED
    print(event, x, y)
    if event == CCTOUCHBEGAN then return true end
end

layer:registerScriptTouchHandler(onTouch, false)

-- use CCLayer multi-touches event handler

local layer = CCLayer:node()
local function onTouches(event, points)
    -- event: CCTOUCHBEGAN, CCTOUCHMOVED, CCTOUCHENDED, CCTOUCHCANCELLED
    print(event)

    for i = 1, #points, 2 do
        print(string.format("x: 0.2f, y: 0.2f", points[i], points[i + 1]))
    end
end

layer:registerScriptTouchHandler(onTouches, true)

TODO:

  • When C++ object deleted, remove Lua object userdata