从零开始23天完成一款Android游戏开发(三)

移动开发 Android 游戏开发
Part 3:我想开发一款 Android 游戏有一段时间了,但从来没有一个好的 idea。最近,我一直在玩一款跑酷游戏,发现它实在太有意思了。这款游戏也让我意识到,一款 Android 游戏没有必要非要有什么大的来头和复杂的游戏设置,简单随意就好。

【Part3 – 第 6 至第 8 天】

第 6 天:第一批外星人和屏幕方向

好了,现在有了一些复古风格的外星人它们正在到处飞。抱歉,暂时还没有 demo。这款 Andriod 游戏目前只有 .apk 格式的安装包。想必你不大可能安装一个陌生人发给你的安装包。总的来说,目前背景和星星已经可以载入而且还会慢慢移动。为了让星星滚动我在星星图案上调用 了 setV ()和 setV2()函数,并逐个增加计时器的值。像这样:

  1. scrollTimer -= delta*0.014;if (scrollTimer < 0.0f)    scrollTimer = 1.0f;sStars.setV (scrollTimer);sStars.setV2(scrollTimer+1); 

然后出现了一些外星人,它们会向右移动。这就是这款游戏目前所有的功能。我仍然在学 libGDX,因此会花大量时间 Google、阅读手册或是看视频。

小贴士:我注意到一些借助 libGDX 开发的游戏通常会固定屏幕方向。在翻转设备时游戏界面不会转动。我在 SO(StackOverflow)的一些缺头少尾的跟帖和评论中找到了一个简单的解决办法:只要将 AndriodManifest.xml 文件中的 landscape 用 sensorLandscape 替换就可以让屏幕随着设备一起自动翻转。

第 7 天:改变布局和屏幕方向

现在可以射击外星人了。由于是复古风格的图形,我决定在外星人爆炸时采用大像素(在 Gimp 里使用无差方式将外星人图片放大 5 倍)。然后写了一点碎片管理代码,在 libGDX 从中央向其它方向随机发射碎片时进行中间计算。

[[109866]]

也许你注意到屏幕上没有图形表示你自己。这是有意为之的。如果你没有意识到这一点也没关系,因为这是第一人称射击游戏。搞笑吧!嘿嘿,至少从技术上来说是这 样的。你不必知道你在哪儿,只要射击敌人就好。在一些测试版本中,我也尝试了对外星人做一些尺度上的变换以增加纵深感,让你感觉它们从远处过来。但在安卓 设备上用手指是很难射击那些很小的东西的,所以我放弃了这个想法。

为了让这个游戏更加有趣,射击外星人用的激光枪需要不断补充能量。每把可以射击 10 次,然后需要点击屏幕左下角的能量按钮。我现在还不确定它的特性——因为还需要测试。

当我在测试这个功能的时候有件事让我很头疼:当射击外星人的时候我的食指会满屏幕点,很难看清屏幕上发生了什么。然后我看了一些自己手机上各种安卓游戏,意 识到如果屏幕方向是纵向的效果会更好。在纵向模式下,食指不是从屏幕下方而是从右边过来的(当然你需要习惯使用右手)。在这种模式下,屏幕的大部分区域还 是可见的。我还改变了外星人飞行的方向,外星人会从屏幕上方出现而不是之前的从左向右出现。

同样基于这个原因,我还改变了游戏的主要设计。你可以一直玩到让一个外星人越过你,而不是之前的只能在固定时间内玩。起初我的想法是你可以每次玩一分钟, 在这一分钟内你要尽量多得分(类似于水果忍者的加分规则)。现在我的想法是,虽然你可以有 3 条命,然而一旦你让外星人越过了你游戏就到此结束。

后来我还修改了背景星云图。之前我写过怎么用 Gimp 画带有星星的夜空和星云图,但是每次不得不为了满意的效果而做很多实验。可以通过对两个图层做减法并增加一些固有噪声,然后镀上一层渐变颜色以达到效果。 问题是当对两个图层做减法的时候总会产生一些“小”星云图,而我想要的是整个屏幕都充满色彩。我用画笔随机地在画纸上点一些点,然后着上不同颜色。我把星 星分成 3 个图层:第一个图层,给每个点加上一个两像素的阴影(没有补偿),第二个图层进行模糊化,第三个图层让它保持原样。这个技巧可以画出很好的星星效果,奥秘 在于保证相近的点有不同颜色或不同的清晰度。而这也正是真正星空所具有的特点。看起来相近的星星其实相距N光年之遥,只是从地球上看起来他们比较接近而 已。

第 8 天:星空之战

我在试着给这个游戏起个新名字。虽然想了一个“星空之战”,但是是否合适感觉仍然有待研究。我尝试了一些字体,后来决定使用一种叫做 Ruslan Display 的字体。

[[109867]]

今天我改进了外星人爆炸效果的算法。我一直在思考怎么让敌人看起来有一波一波的进攻。先有 10 波敌人,紧接着 boss 出场。通过一关以后游戏会有些加速,还会加入一些新的敌人。在每 10 级里(10,20,30…)都会有一个新的 boss。这个算法会一直重复执行,直到游戏者输掉为止。如果发现你想消灭所有外星人,游戏的速度会被设置为开始速度的两倍这样你需要付出很多的努力。

下面是现在对能量提升的设想:

有时限的能量提升,可以在游戏过程中收集到:

  • 盾牌(在屏幕的底部,防止一个外星人通过)
  • 分数倍乘提升器
  • 快速火力(只需手指持续按下然后到处移动)
  • 大炸弹(毁灭掉所有屏幕上的外星人)
  • 超能力(跳过十波敌人,但是获得所有分数)
  • 银河忍者(用绝地武士之剑腰斩敌人——水果忍者的风格)
  • 自动补充能量(自动为激光枪补充能量)
  • 多火力(同时有 3 或 4 个激光枪开火)
  • 多生命(启动游戏时有 4 条命)

  永久性的能量提升,可以在每次玩的时候不断升级:

  • 快速火力
  • 盾牌
  • 银河忍者
  • 自动补充能量

相关:

从零开始23天完成一款Android游戏开发(一)

从零开始23天完成一款Android游戏开发(二)

从零开始23天完成一款Android游戏开发(四)

从零开始23天完成一款Android游戏开发(五)

从零开始23天完成一款Android游戏开发(六)

从零开始23天完成一款Android游戏开发(七)

从零开始23天完成一款Android游戏开发(八)

翻译:bigosaur   ImportNew.com

译文链接: http://www.importnew.com/6551.html

责任编辑:闫佳明 来源: importnew
相关推荐

2014-03-13 14:02:28

Android手游速成

2014-03-13 14:42:13

2014-03-13 14:27:51

2014-03-13 14:55:04

2014-03-13 14:12:52

2014-03-13 15:06:30

Android手游速成

2014-03-13 15:15:33

Android手游速成

2022-05-27 10:00:06

C++游戏引擎

2013-10-31 16:31:19

2017-09-04 13:51:29

Android

2016-08-10 14:59:41

前端Javascript工具

2021-12-30 09:10:28

游戏开发开发技术热点

2011-04-06 15:55:50

开发webOS程序webOS

2019-08-12 09:36:49

2014-07-22 13:09:21

android

2015-07-17 10:02:11

三消游戏怎么做

2020-09-28 15:13:04

鸿蒙

2020-07-02 15:32:23

Kubernetes容器架构

2020-11-09 11:56:49

HarmonyOS

2019-01-18 12:39:45

云计算PaaS公有云
点赞
收藏

51CTO技术栈公众号