【问题标题】:Loading images from another LUA file - corona sdk从另一个 LUA 文件加载图像 - corona sdk
【发布时间】:2015-01-17 18:23:14
【问题描述】:

我一直想做的是从另一个 lua 文件中调用某些图像并将其加载到游戏中,这样就不必在每个需要图像的 lua 文件中单独创建它们。

我想将这个角色加载到 menu.lua 文件中,并在游戏移至 game.lua 时让它留在屏幕上。因此,不必在每个文件中再次创建角色,我想做一个简单的调用并让它一直存在直到它被删除。

谢谢。

local jumpForce = 350

** 随机播放器图形 **

Anims = {
 "images/birdAnim.png",
 "images/birdAnim2.png",
}

** 播放器动画 **

local sheetData = {width=45, height=35, numFrames=2, sheetContentWidth=90,     sheetContentHeight=35}
local imagesheet = graphics.newImageSheet(Anims[math.random(1,2)], sheetData)
local sequenceData = {
  {name="hop", start=1, count=1, time=300},
  {name="drop", start=2, count=1, time=300}
}

** 创建播放器 **

bird = display.newSprite(playerGroup, imagesheet, sequenceData)
bird.x = display.contentCenterX - 150
bird.y = 140       
bird.name = "bird"
physics.addBody( bird, "static", physicsData:get("player3") )
bird.isSensor = true 
bird:setSequence("drop")
bird:play()
group:insert(bird)

更新!!

** 播放器处理程序 **

local function movePlayer(event)
 if event.phase == "began" then
   bird:setLinearVelocity(0, -jumpForce)
   playSFX(sndJump)
   bird:setSequence("hop")
   bird:play()
 elseif event.phase == "ended" then
   bird:setSequence("drop")
   bird:play()
 end

 return true
end

** 播放器监听器 **

Runtime:addEventListener("touch", movePlayer)

【问题讨论】:

    标签: lua coronasdk


    【解决方案1】:

    你能给我们完整的代码吗?

    问题可能是当你从 main 切换到 game.lua 时 playerGroup 被破坏

    您可以在没有任何父级的情况下创建它,并且在您手动删除它之前它会一直保留

    【讨论】:

    • 动画表和数据是否需要声明两次?一个用于菜单,一个用于游戏?或者只在 menu.lua 中会好吗?我还没有设置它,现在它只是一个独立的代码块,只在 game.lua 文件中。我想添加它以便它在菜单文件中并交叉到游戏中,我只是不确定如何完成。
    • 你应该做一次,而不是把它放入场景组(self.view)......只需创建没有父级的组并将所有内容放入其中......分配给全局变量,你可以随时随地访问它
    • 嗨 iBad,我正在努力理解它应该如何组合以及如何在 menu.lua 文件中调用它。我删除了父组,图像仍保留在不同的屏幕上,但是在尝试控制下一个场景中的播放器时, movePlayer 函数出现错误。我已经在我的 OP 中提供了与玩家鸟相关的所有代码。
    • 你的错误说明了什么?什么是“组”和“玩家组”?
    • 错误提示“尝试索引全局'事件'(一个零值)这是在一个单独的文件中,并且与播放器处理程序的第一个 event.phase 代码行有关。我按原样删除了播放器组只是用来存放播放器图片
    【解决方案2】:

    当您切换场景时,图像表和序列数据将被删除。我建议您将它们全部放在一个单独的 LUA 文件中,以便 corona 在场景更改期间可以引用它。并创建一个处理对象的全局组。不要将其插入场景中的任何组。

    【讨论】:

      猜你喜欢
      • 2013-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-20
      • 2015-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多