我最近开始用corona sdk编程来制作一个简单的游戏。 我需要创建动态对象,当我移动一些对象时,它会自行删除。我可以创建动态对象,但我无法处理每个事件。
我想通过各种功能来完成这一切。
这是我的一段代码和最后一个函数(myObject:touch
)我想将它更改为一个新函数,它不仅会处理所有对象myObject
所以我需要发送对象名称作为该函数的参数。
你能帮忙吗?
function create_obj(img,xpos,ypos)
myObject = display.newImage(img)
myObject.x=xpos
myObject.y=ypos
end
function move_out(obj)
transition.to( obj, { time=2000, alpha=1, x=60, y=60, width=1 ,height=1, onComplete= remove_obj(obj) } )
end
function remove_obj(obj)
obj:removeSelf()
obj=nil
end
--create 1st object
local img1="icon1.png"
create_obj(img1,50,50)
--create 2nd object
local img2="icon2.png"
create_obj(img2,100,100)
--create 3rd object
local img3="icon3.png"
create_obj(img3,150,150)
function myObject:touch( event )
if event.phase == "began" then
self.markX = self.x -- store x location of object
self.markY = self.y -- store y location of object
elseif event.phase == "moved" then
local x = (event.x - event.xStart) + self.markX
local y = (event.y - event.yStart) + self.markY
self.x, self.y = x, y
elseif event.phase == "ended" or event.phase == "cancelled" then
move_out(myObject)
end
return true
end
myObject:addEventListener( "touch", myObject )
答案 0 :(得分:2)
我认为你在这里寻找的只是改变moveOut中的转换:
function move_out(obj)
transition.to( obj, { time=2000, alpha=1, x=60, y=60, width=1 ,height=1, onComplete=function() remove_obj(obj) end } )
end