mirror of https://github.com/axmolengine/axmol.git
69 lines
1.6 KiB
Lua
69 lines
1.6 KiB
Lua
|
|
||
|
local size = CCDirector:sharedDirector():getWinSize()
|
||
|
local layer = nil
|
||
|
local kTagSprite = 1
|
||
|
|
||
|
local function initWithLayer()
|
||
|
local sprite = CCSprite:create(s_pPathGrossini)
|
||
|
|
||
|
local bgLayer = CCLayerColor:create(ccc4(255,255,0,255))
|
||
|
layer:addChild(bgLayer, -1)
|
||
|
|
||
|
layer:addChild(sprite, 0, kTagSprite)
|
||
|
sprite:setPosition(CCPointMake(20,150))
|
||
|
|
||
|
sprite:runAction(CCJumpTo:create(4, CCPointMake(300,48), 100, 4))
|
||
|
|
||
|
bgLayer:runAction(CCRepeatForever:create(CCSequence:createWithTwoActions(
|
||
|
CCFadeIn:create(1),
|
||
|
CCFadeOut:create(1))))
|
||
|
|
||
|
local function onTouchEnded(x, y)
|
||
|
local s = layer:getChildByTag(kTagSprite)
|
||
|
s:stopAllActions()
|
||
|
s:runAction(CCMoveTo:create(1, CCPointMake(x, y)))
|
||
|
local posX, posY = s:getPosition()
|
||
|
local o = x - posX
|
||
|
local a = y - posY
|
||
|
local at = math.atan(o / a) / math.pi * 180.0
|
||
|
|
||
|
if a < 0 then
|
||
|
if o < 0 then
|
||
|
at = 180 + math.abs(at)
|
||
|
else
|
||
|
at = 180 - math.abs(at)
|
||
|
end
|
||
|
end
|
||
|
s:runAction(CCRotateTo:create(1, at))
|
||
|
end
|
||
|
|
||
|
local function onTouch(eventType, x, y)
|
||
|
if eventType == CCTOUCHBEGAN then
|
||
|
return true
|
||
|
elseif eventType == CCTOUCHENDED then
|
||
|
return onTouchEnded(x, y)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
layer:setTouchEnabled(true)
|
||
|
layer:registerScriptTouchHandler(onTouch)
|
||
|
|
||
|
return layer
|
||
|
end
|
||
|
|
||
|
--------------------------------
|
||
|
-- Click And Move Test
|
||
|
--------------------------------
|
||
|
function ClickAndMoveTest()
|
||
|
cclog("ClickAndMoveTest")
|
||
|
local scene = CCScene:create()
|
||
|
layer = CCLayer:create()
|
||
|
|
||
|
initWithLayer()
|
||
|
|
||
|
scene:addChild(CreateBackMenuItem())
|
||
|
scene:addChild(layer)
|
||
|
|
||
|
return scene
|
||
|
end
|