2014 年 3 月 12 日
客座文章:Hex LED 和 CoronaBlitz #2
今天的客座文章由 Sergey Lerg 提供,他是使用 Corona 构建的游戏 Cubic Run 和 Laser Flow 的创建者。在这篇文章中,Sergey 讨论了他作为 CoronaBlitz #2 参与者的经验,以及他如何在一周内制作出一款完整的游戏。
我刚刚参加了 CoronaBlitz #2,我不仅很享受,而且还设法在不到一周的时间内创建了一个完整的游戏,Hex LED!
我的第一个游戏 Laser Flow 也是游戏果酱的产物。六个月前,我参加了 GlitchGames Game Jam,制作了 Laser Flow,从那以后,我的游戏为世界各地的玩家提供了许多小时的解谜游戏体验。
“在 4 小时内制作一款游戏,”他们说。好吧,这是一个挑战,但并非不可能。如果您在编码之前心中有想法,您确实可以使用 Corona 在 4 小时内实现它。Laser Flow 花了我一个月的时间才完成,因为它有很多关卡,但是 Hex LED 不需要那么多。我决定保持这款游戏简单轻巧。
趣闻 #1:在应用程序图标上,绿线比红色或蓝色大,但有时由于图标的形状引起的光学错觉,它看起来更小。
游戏玩法
CoronaBlitz #2 的主题是“能量/激活”,所以我考虑了 RGB LED(发光二极管)以及如何使用它们的颜色。每种颜色分量都需要不同的能量来点亮,并且您拥有的能量越多,可以驱动的颜色就越多。目标是组合能量并获得尽可能多的灯光。本质上,我的概念是 Triple Town、Threes 和 2048 的混合体。
六边形板为游戏玩法提供了很多变化。当我创建 Hex LED 时,我的分数约为 10,000,我认为不可能获得超过 20,000 的分数。但是,来自 #corona IRC 频道的朋友 treser2 对游戏进行了 Beta 测试,并设法获得了约 24,000 分。我很惊讶,因为我从未想过有人会获得如此高的分数!具有讽刺意味的是,几天后,我得了 30,000 多分 - 诀窍是获得两个 4096 的图块并将它们合并在一起。
趣闻 #2:最初只有一个图块集 - RGB LED - 但后来我决定添加传统的阿拉伯数字,因为有些人使用 RGB 集玩游戏时遇到问题。后来,我还添加了美丽的汉字数字,自那以后,它就成了我的最爱。
六边形板数学
为了学习如何使用六边形地图,我阅读了 RedBlocks Games 的一篇很棒的教程。最令人惊奇的是,该教程是互动的 - 它确实是我见过的最好的教程之一。
我选择为我的游戏使用轴坐标系,这是一个正确的决定。使用此坐标系,计算图块的移动和查找可能的移动要简单得多。更具挑战性的部分是让图块按照规则移动和合并。一开始,并非所有图块都在移动,因此图块在应该合并时并非总是合并,有时会出现间隙和重叠的图块。但是,几天后,我设法修复了它,游戏玩法变得像我希望的那样流畅。
趣闻 #3:汉字图块集由 1 到 10 的汉字数字组成,但是 11 或 12 没有独立的象形文字,所以我使用了 100 和 1000 代替。
有用的代码和提示
滑动识别
通常的左右滑动是通过查看 event.x - event.xStart
值来检测的,但是对于我的游戏,我必须使用径向坐标系来检测正确的滑动。基本上,我使用手指在屏幕上的滑动来计算角度。这是我的触摸侦听器的一部分
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
if ( event.phase == 'moved' ) then local dx, dy = event.x - event.xStart, event.y - event.yStart local distance = math.sqrt(dx ^ 2 + dy ^ 2) if ( (distance > 50) and self.lastSwipe ~= event.id ) then self.lastSwipe = event.id local angle = math.round(math.deg(math.atan2(dy, dx)) / 60) if ( angle == 3 or angle == -3 ) then elseif angle == 0 then elseif angle == 1 then elseif angle == 2 then elseif angle == -1 then elseif angle == -2 then end end end |
截图问题
当我在为 Google Play 商店准备商店列表时,我收到一条“您的 APK 似乎不是为平板电脑设计的”消息。这个报告本身就是一个谜。经过数小时的研究,我发现 Google Play 不喜欢我的截图,因为它们有太多的空白。为了避免这个问题,您的第一个 7 英寸平板电脑截图**必须**填充一些内容。因此,我在其中添加了一些促销文本,并通过了测试,尽管我花了一段时间才弄清楚如何定位文本,使其既看起来不错,又能获得 Google 的认可。
config.lua
我的 config.lua
文件很有意思。它对所有 iOS 设备和一些 Android 设备使用像素完美的设置,然后对其他任何设备依赖 320×480 “信箱”模式。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
local h, w = display.pixelWidth, display.pixelHeight if (w == 1024 and h == 768) or (w == 960 and h == 640) or (w == 1136 and h == 640) or (w == 2048 and h == 1536) or (w == 1280 and h == 720) or (w == 480 and h == 320) then while w > 700 do w = w * 0.5 h = h * 0.5 end w, h = h, w else w = 320 h = 480 end application = { content = { width = w, height = h, scale = 'letterbox', fps = 60, imageSuffix = { ['@2x'] = 1.2, } } } |
谢谢!
Hex LED 已经获得了很好的评价,有些人真的对它上瘾了。感谢 #corona IRC 频道中的所有 Corona 成员帮助我解决了一些小问题。当然,还要感谢 Tyraziel 和 Corona Labs 组织了精彩的 CoronaBlitz 游戏创作大赛!
还记得我的另一个游戏原型,无尽奔跑游戏 Cubic Run 吗?如果您下载并评价 Hex LED,我将把 Cubic Run 的源代码发送给您!
Hex LED 在 App Store 中的链接 — https://itunes.apple.com/app/id830218249
Hex LED 在 Google Play 中的链接 — https://play.google.com/store/apps/details?id=com.spiralcodestudio.hexled
Rauri
发布于 17:24, 3 月 12 日你难道不应该至少稍微尊重一下,提及你明显从中获得灵感的原始游戏吗?
另一个可以使用的词是剽窃。
这个新兴的开发者抄袭创意而不给予任何荣誉的世界令人非常悲伤。
Brent Sorrentino
发布于 17:29, 3 月 12 日您好 @Rauri,
对此表示歉意… 我编辑了 Sergey 的帖子,忘记提及他在这一点上的引用。他提到他的灵感来自 Triple Town、Threes 和 2048。我不知道其中是否有任何一款是您所说的“原始游戏”,但这是他所写的。
Brent
Brent Sorrentino
发布于 17:46, 3 月 12 日就此而言,我已将此引用添加到文章中。
Lerg
发布于 17:47, 3 月 12 日哎呀!没看到它被删除了。这是我的原始段落
“所以主题是能量/充能,我使用了 RGB LED(发光二极管)来玩弄它们的颜色。每个颜色分量都需要不同的能量才能点亮,你拥有的能量越多,点亮的颜色就越多。目标是结合能量并获得尽可能多的光。”
换句话说,我采用了 Triple Town、Threes、2048 中发现的概念,并将其包裹在一个六边形棋盘上。
我并不为我采用了他们的想法而感到羞耻。我巧妙地将它们移到了六边形世界,并制作了一些不同的东西,而不是制作另一个克隆品。我的游戏玩法肯定与这些游戏中的任何一款都不同。
David
发布于 18:19, 3 月 12 日毕加索说得最好
http://www.brainyquote.com/quotes/quotes/p/pablopicas380469.html
iWalter
发布于 09:59, 3 月 13 日在我们下载并评价他的 Hex LED 应用程序以获取 Cubic Run 源代码后,我们如何通知 Lerg?
Lerg
发布于 11:06, 3 月 13 日通过论坛写信给我 http://forums.coronalabs.com/user/273472-lerg/
谢谢!
Ed Maurina
发布于 12:11, 3 月 13 日@Sergey
很棒的文章。感谢您分享您的代码见解以及 Amit 的东西的有用反向链接。
和往常一样,我学到了几件新东西。我特别喜欢优雅的“滑动识别”代码。
iWalter
发布于 15:48, 3 月 13 日很棒的游戏,我刚刚发布了一篇评论。我会按照您的建议通过论坛与您联系。
Scott
发布于 19:12, 3 月 17 日@Rauri,我相信他们称之为钓鱼。很多游戏都采用了其他游戏的相同机制。我敢肯定,你的游戏中没有任何一款曾经使用过任何其他游戏的机制。你所做的一切都必须是 100% 原创的,对吗?
我相信这被称为钓你 🙂