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 0874a38baa * update README 2011-11-30 21:55:40 +08:00
Box2D fix some warnings detected by xcode4.2, fix a stupid typo in RayCasts.h 2011-10-18 17:41:19 +08:00
CocosDenshion make HelloWorld and tests work ok on linux with eclipse 2011-10-16 02:21:17 -07:00
HelloLua fixed #753, visual orientation is wrong on ios5 simulator 2011-10-19 21:43:25 +08:00
HelloWorld fixed #753, visual orientation is wrong on ios5 simulator 2011-10-19 21:43:25 +08:00
chipmunk make tests build ok on linux android 2011-09-27 01:51:29 -07:00
cocos2dx * CCTouch:locationInView() & CCTouch:previousLocationInView() return const reference 2011-11-30 21:29:57 +08:00
doxygen add CC_PROPERTY_READONLY & CC_PROPERTY marco into doxygen.cocos2d-x PREDEFINED field. Thanks to Ningyu Ran's contribution http://www.cocos2d-x.org/boards/6/topics/4620 2011-10-20 17:49:29 +08:00
licenses Create a license folder, add license file of CocosDenshion, FontLabel, iconv, libjpeg, libxml2, and zlib. I apologize to authors of these libraries for my laziness. 2011-08-21 21:05:25 +08:00
lua * add Touch & MultiTouches lua support 2011-11-30 21:27:50 +08:00
template [iOS]fixed #667: [Xcode4 template] call AppDelegate::applicationDidEnterBackground() & AppDeleaget::applicationWillEnterForeground() when application enter background & enter foreground 2011-11-21 11:19:10 +08:00
tests 1. relative to bug #754, FontTest should use "fonts/abc.ttf" as external ttf name 2011-10-20 14:56:39 +08:00
tools * add Touch & MultiTouches lua support 2011-11-30 21:27:50 +08:00
.gitignore add ignore file types 2011-10-18 23:50:06 -07:00
AUTHORS update ChangeLog & Authors for v0.9.2 2011-10-20 17:49:43 +08:00
CHANGELOG update ChangeLog & Authors for v0.9.2 2011-10-20 17:49:43 +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 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-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 [android] roll back to use dynamic link in tempalte. 2011-06-25 14:13:08 +08:00
create-android-project.sh * format some files 2011-11-18 20:35:35 +08:00
create-linux-android-project.sh * format some files 2011-11-18 20:35:35 +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 * format some files 2011-11-18 20:35:35 +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