意外游戏
这是一个有关我如何制作游戏并将其发布到Apple商店的故事。
TL; DR
陀螺蛇应用商店
Github上的源代码
它始于一年前,当时我正在寻找要在App Store上发布的内容。 最初,我有了跟踪每月支出的想法,并利用“浮动操作按钮”(FAB)来记住最常见的支出类型。 那时,我与Swift一起玩耍,并开始研究如何在Swift上执行FAB。 那时,我不了解构建移动应用程序的混合框架,以某种方式的StackOverflow答案之一让我研究了Apple SpriteKit。
对我来说这是新事物。 具有内置物理和所有其他出色功能的游戏引擎。 然后,我带了一个YouTube视频,介绍了如何制作一个简单的Pong游戏。 我成功地遵循了该教程,我认为如果可以使用陀螺仪控制球,那就太好了。 目前,我已经放弃了制作货币追踪器的初衷,并决定制作一款疯狂的蛇状游戏。
起源
这款游戏的创意源于上一代游戏中的著名游戏。 在制作这款游戏的过程中,我回想起过去整天玩这款游戏的时间。 通过重新创建游戏使其只能倾斜智能手机才能玩,它很可能会吸引很多人玩。
逻辑
它背后的逻辑实际上非常简单。 我创建了一个Snake对象,该对象具有位于数组中的head和body类型的子对象。 还记得我之前提到的Pong游戏吗? 是的,我让它变成了蛇头。 由于头部的运动已经由陀螺仪控制,因此,该部分就完成了。 主体将根据其前身[n-1]中的对象进行移动,并且在倾斜手机时会产生蛇状的移动。 每次蛇击中一个苹果时,都会将一个新的蛇体推入阵列。 因此,当更多的蛇体被推到阵列上时,控制蛇变得越来越具有挑战性。
如果您一直在读到这里,那么您很幸运。 这是促销代码的链接。
最难的部分
我猜想开发这款游戏最困难的部分是使蛇头朝着前进的方向看。 幸运的是,我发现了一种算法,可以通过下面的代码来实现。
action1 = SKAction.moveTo(x: destX, duration: snake.snakeSpeed)
action2 = SKAction.moveTo(y: destY, duration: snake.snakeSpeed)
v1 = CGVector(dx:0, dy:1)
v2 = CGVector(dx:destX - snake.snakeHead.position.x, dy: destY - snake.snakeHead.position.y)
angle = atan2(v2.dy, v2.dx) - atan2(v1.dy, v1.dx)
body.zRotation = angle
body.run(action1)
body.run(action2)
图形
好吧,我不是图形专家,所以我只是挽救我在Google图片中发现的与绿蛇有关的任何东西。 通过一些GIMP技巧,我成功做到了。
SOUND FX-这部分很有趣
我决定将旧的8位SoundFX赋予游戏,这就是我的Youtube关键字。 我发现了很多样本。 你可以在这里看到它。 要从Youtube下载声音,我不确定这是否合法,我使用了一个名为youtube-dl的小工具。
结论
希望您喜欢阅读。 直到今天,还没有人掌握过游戏并将其发展到最终水平。 让我知道您是否可以达到21级。