mirror of https://github.com/axmolengine/axmol.git
442e06e62e | ||
---|---|---|
Box2D | ||
CocosDenshion | ||
HelloLua | ||
HelloWorld | ||
chipmunk | ||
cocos2dx | ||
doxygen | ||
licenses | ||
lua | ||
template | ||
tests | ||
tools | ||
.gitignore | ||
AUTHORS | ||
CHANGELOG | ||
README.mdown | ||
build-linux.sh | ||
build-win32.bat | ||
build-wophone.sh | ||
cocos2d-win32.vc2008.sln | ||
cocos2d-win32.vc2010.sln | ||
cocos2d-wophone.sln | ||
create-android-project.bat | ||
create-android-project.sh | ||
create-bada-project.bat | ||
create-linux-android-project.sh | ||
install-templates-msvc.bat | ||
install-templates-xcode.sh |
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
- Website: www.cocos2d-x.org
- Online API References
Contact us
- Forum: http://forum.cocos2d-x.org
- Twitter: http://www.twitter.com/cocos2dx
- Sina mini-blog: http://t.sina.com.cn/cocos2dx
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