【问题标题】:Corona SDK - buttons and character sprite animations not showing up on my phone, but is fine in emulatorCorona SDK - 按钮和角色精灵动画没有显示在我的手机上,但在模拟器中很好
【发布时间】:2013-04-27 22:25:11
【问题描述】:

简述我的情况:http://i.imgur.com/wUpMgX5.jpg

这是我的 main.lua 文件:http://pastebin.com/1t2rhim1

当我尝试在三星 Galaxy Note II 上玩 .apk 游戏时,从 ---PLAYER--- 开始的任何 main( ) 中的内容都没有显示。当我在计算机上模拟时,一切都很好。

我的游戏基本上是一个标题屏幕,我在其中按下一个单词,然后它跳转到显示背景并绘制出一个 D-Pad、3 个按钮和 2 个带有 HP/MP 条的字符,由此它变成了一个格斗游戏。但是,只显示背景。

我已尝试禁用背景,但其他图像不显示。

不知道是不是因为我的Corona SDK不是专业版,所以我可以画多少有限制,或者,

存在基于屏幕分辨率的问题,但我在编写这款游戏时考虑了 Galaxy SIII 或 Note II 分辨率 (1280 x 800),因此角色不应出现在屏幕外或其他任何地方。

--

如果可行,我不明白如何进行无限更新循环。我对Java半熟悉,对Python不太熟悉,对Lua完全陌生。我也想进一步模块化我的代码。

如何循环播放?我想让 AI 工作,但目前该代码只运行一次。我尝试在 main 函数的末尾放置一个 while-true-then 循环,但它使我的模拟器崩溃了。

【问题讨论】:

  • 我也有同样的问题。你修好了吗?您能否更新您的代码或将解决方案添加为您自己的答案
  • 罪魁祸首大多数时候是以混合大小写命名文件或在其中包含任何大写字母。完全避免大写。即使像 someBall.png 这样的东西也可能会搞砸。同样,我有一个名为 /images 的子文件夹,我会将我的 sprite/image 文件称为“/images/ball.png”之类的东西,但我尝试将所有第一个斜杠都放在“images/ball.png”中。我不认为这解决了它,但经过一大堆修复后它起作用了。最好的方法是继续在手机上进行测试,以确保您的模拟器和手机做同样的事情。

标签: android coronasdk


【解决方案1】:

不确定为什么您的精灵不会显示,但没有专业版不是问题。免费的 Corona SDK Starter Edition 可以做 Pro 版可以做的所有事情,除了应用内购买。

乍一看您的代码没有任何问题,但确实注意到加载的文件(如背景图像)存储在项目的根目录中,与 main.lu 处于同一级别 -- 而不加载的精灵在子目录中。我要做的第一件事是检查这些文件夹的名称——Dennis 和 David 文件夹实际上是按照你在源文件中的方式大写的吗?模拟器不会关心,但设备会关心。

就无限循环而言,您可以创建一个运行时侦听器,它可以在每一帧调用一个函数,如下所示:

运行时:addEventListener("enterFrame", myUpdateFunc)

myUpdateFunc 函数每秒将被调用 30 或 60 次,具体取决于您在 config.lua 文件中的设置方式。

[编辑:再看看你是如何调用精灵的,你真的是想在丹尼斯面前放斜线等吗?即使案例是正确的,我也不确定你的意思是你在那个代码中所说的。 :)]

【讨论】:

  • 嘿,这就是我的目录的样子:i.imgur.com/If27SIr.png。即使您对文件夹有所了解,我的其他图标/按钮也没有加载,它们位于同一根目录中。不过感谢其他信息!!!
  • 嘿,我解决了精灵问题。事实证明,将图像放在文件夹中对于 Android 构建来说是有问题的!那个,或者大写的文件夹,但无论哪种方式,现在一切都很好。松了一口气!
【解决方案2】:

Android 和 IOS 基于 linux,这意味着它区分大小写。人们在创建显示对象或播放文件或仅加载故事板场景时不关心案例的常见问题。这意味着游戏在windows系统上可以正常运行,但在linux下无法正常运行。 尝试检查您在代码中引用的文件是否与项目文件夹中的文件名匹配(检查文件名的大小写)。 希望这能解决您的问题。

【讨论】:

    【解决方案3】:

    确保您没有遇到文件名区分大小写的典型问题。模拟器会忽略组成文件名的字母的大小写,设备是敏感的。这很容易被忽略。检查所有文件名,而不仅仅是图像。检查您的音频、您的 .lua 文件等。

    还要确保通过 USB 线将您的设备连接到您的计算机,并使用“adb logcat”命令,并确保您没有在设备上收到任何错误。

    【讨论】:

      【解决方案4】:

      只有三个原因:
      1.文件名区分大小写
      2. 您的设备不支持纹理内存。
      3. 代码有错误。

      所有这些都可以通过输入打印语句并将您的设备连接到计算机并使用“adb logcat”命令查看日志来检查。

      【讨论】:

        【解决方案5】:

        因为你先创建了背景。将它移到按钮和图像下方,它应该可以工作。

        【讨论】:

          猜你喜欢
          • 2016-04-05
          • 2015-02-08
          • 1970-01-01
          • 1970-01-01
          • 2012-06-25
          • 2021-01-17
          • 2010-10-25
          • 1970-01-01
          • 2011-03-29
          相关资源
          最近更新 更多