【问题标题】:using getPosition() and setPosition() in Lua with Gideros使用 Gideros 在 Lua 中使用 getPosition() 和 setPosition()
【发布时间】:2014-06-25 22:01:25
【问题描述】:

我正在使用 SceneManager。: 现在,问题是我在这个级别上有很多对象,但我只希望其中一个在触摸时上下移动,对象取自纹理包,基本上是一个动画:

如果我做self:getPositionself:setPosition,这个关卡中的所有对象都会改变它们的位置,当用户触摸屏幕时我如何改变只有self.anim[frame]的位置?

--在Play.lua中

self.anim = 
{
    Bitmap.new(pack:getTextureRegion("flappy1.png", true)),
    Bitmap.new(pack:getTextureRegion("flappy2.png",true)),
}

然后是这样的:

self:addChild(self.anim[1])
self:addEventListener(Event.TOUCHES_BEGIN, self.whenTouched, self)
self:addEventListener(Event.TOUCHES_END, self.whenuntouched, self)

function Play: whenTouched()
  x,y = self:getPosition()
  self:setPosition(x, y-20)
end

function Play: whenuntouched()
  x,y = self:getPosition()
  self:setPosition(x, y+20)
  print("down")
end

【问题讨论】:

  • 能否请您修复您的代码缩进?

标签: lua gideros


【解决方案1】:

正确的方法是为此动画创建单独的图层,例如:

self.animationHolder = Sprite.new()
self:addChild(self.animationHolder)
self.anim = 
{
   Bitmap.new(pack:getTextureRegion("flappy1.png", true)),
   Bitmap.new(pack:getTextureRegion("flappy2.png",true)),
}
self.animationHolder:addChild(self.anim[1])

然后你需要在self.animationHolder 中添加/删除子元素来制作动画(我实际上建议使用 MovieClip,但这是另一个主题)

当你为 self.animationHolder 设置位置时,只有动画会移动,而不是场景中的所有对象;)

【讨论】:

  • @artursosin:哦,层。对。谢谢:)
猜你喜欢
  • 2014-11-23
  • 1970-01-01
  • 1970-01-01
  • 2014-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-16
  • 2015-05-02
相关资源
最近更新 更多