客座文章:CoronaBlitz – 我的第一次游戏创作挑战赛

客座文章:CoronaBlitz – 我的第一次游戏创作挑战赛

Kyle Yamamoto 是独立游戏工作室 MochiBits 的联合创始人。最初使用 Cocos2D 时,该团队转而使用 Corona SDK,以利用 Corona 的跨平台功能。到目前为止,Kyle 和联合创始人 Howard Go 已经构建和发布了 11 个移动应用程序。

Kyle 最近参加了 Corona 开发者 Andrew Potozniak 发起的 4 小时编码挑战赛 CoronaBlitz。在今天的文章中,Kyle 将分享他第一次参加游戏创作挑战赛的经历。如果您想了解更多关于 Kyle 的信息,可以在 Twitter 上关注他:@_kyleyamamoto。要查看所有 CoronaBlitz 的参赛作品,请访问我们的论坛


Kyle当我第一次听说 CoronaBlitz 时,我就很想参加。为期一周的 4 小时时间框架对于一个游戏创作挑战赛的新手来说非常完美。

我有一个模糊的游戏想法,灵感来自 Pivvot、Brick Roll 和老式游戏 Mr. Ninja。幸运的是,这个想法与“收集”的主题非常契合。我不需要任何花哨的图形,游戏玩法也很简单。

基本前提是您是一个点,您只能做一件事:跳跃。您的方向由旋转的行星控制,您唯一的目标是收集屏幕上的所有硬币。没有死亡,也没有时间限制。

以下是我如何花费时间的逐小时细分

0:00-1:00 — 行星和硬币设置
我花了第一个小时来设置行星和硬币。我必须遍历所有行星和硬币,以确保它们没有相互覆盖,并确保它们之间以及与屏幕边缘之间具有最小的安全距离。

行星具有随机半径以及随机的旋转方向和速度。它们还有一个标记,所以我们实际上可以看到它们的旋转方向。我将行星和标记都放在它们自己的显示组中,这样我就可以旋转该组而不是每个单独的对象。

1:00-2:00 — 物理和相交
我简要考虑过使用真正的 Corona 物理,但决定自己绘制位置并使用数学进行碰撞检测!

我使用运行时 “enterFrame” 事件以每秒 60 帧的速度运行。因此,每一帧我都会旋转所有行星,并且如果该点有速度,则会移动该点。

移动所有内容后,我循环遍历所有硬币和行星,以查看该点是否发生碰撞。碰撞只是一个简单的半径检查(因为它都是球体)。如果该点与行星碰撞,我会将速度设置为零,然后开始围绕行星中心旋转该点。

感谢 Stack Overflow 帮助我节省了一些时间在旋转数学上。

实现说明:我决定将该点保留在自己的世界空间中,而不是将其放在行星的显示组中。我浪费了一些时间尝试获得适当的行星旋转,以便我可以在世界空间和行星空间之间移动。将点保留在世界空间中更容易,而且效果很好。

2:00-2:30 — 适当的碰撞距离
有一件事困扰着我,那就是当点附着在行星上时,有时由于速度过高和帧刷新,它会离得太近。该点的位置会更新到行星内部。为了解决这个问题,我只是在碰撞时将该点偏移到行星半径之外。

2:30-3:00 — 图形效果
我试图思考我可以做些什么来使其更具吸引力,结果只有几件事。

1) 点轨迹 – 如果该点在空间中移动,我只是在该点的旧位置插入一个圆圈,然后将其缩小并在 1/4 秒内淡出。我还添加了第二个在旧位置和当前位置之间插值的圆圈,以使轨迹更扎实。如果移动速度太快,您可以看到各个点。
2) 行星碰撞 — 在碰撞点添加一个球体。放大并淡出。
3) 硬币碰撞 — 在 Y 轴上缩放硬币并淡出。

3:00-3:45 — 声音、清理、初始化和播放
我使用 CFXR 来创建声音。它非常棒。

我还清理了代码,添加了一些注释,并使其在您获得最后一个硬币并重置游戏时,所有图形对象都会被释放并设置为 nil。

3:45-4:00 — 背景音乐
我使用 iPad 上的 GarageBand 和一个基本的街机合成器创建了一个 15 秒的循环。不,我没有弹奏所有那些音符,我只是按住一个键,听起来很酷。

结论
总的来说,我对 4 小时内所能做的事情感到非常满意。这个游戏玩起来真的很有趣。

使用 Corona SDK 启动和运行非常容易。我肯定会参加另一个 CoronaBlitz,也可能会参加其他游戏创作挑战赛!

我们计划采用我的原型并将其发布为真正的游戏。预计在 2013 年 10 月的某个时候发布。同时,这是游戏运行中的视频

inna
暂无评论

抱歉,评论表单目前已关闭。