太空之战是什么?带你了解科幻电影中的星际战争

天美租号

今天跟大家伙儿聊聊我这几天捣鼓的“太空之战”小游戏,一开始我真没想做这么大,就想着练练手,结果越做越上头。

我就是想搞个简单的飞机大战,用Unity搭了个场景,建了个飞船模型,丑是丑了点,但好歹能动。然后就是扣代码,先让飞船能上下左右动起来。这里面我就用了Unity自带的Input系统,贼方便,几行代码就搞定了。

我开始琢磨怎么发射子弹。这部分稍微麻烦点,得先创建一个子弹的Prefab,然后写个脚本控制子弹的移动速度和方向。一开始我直接用的Translate,结果子弹速度太慢,后来改成AddForce,速度是上去了,但是子弹到处乱飞,控制不住。我用了* += * speed *; 这方法,总算搞定了,子弹嗖嗖的。

太空之战是什么?带你了解科幻电影中的星际战争

有了子弹,就得有敌人。我随便找了个小行星的模型,复制了一堆,让它们随机在屏幕上方生成,然后往下移动。这部分用了*来控制生成的位置,还有Rigidbody的velocity来控制移动速度。敌人有了,还得让它能被打爆,我给小行星加了个碰撞体,然后写了个OnCollisionEnter方法,检测到子弹碰撞就销毁。

最开始那会儿,就是biubiubiu,小行星DuangDuangDuang,玩几分钟就腻了。我开始往里加东西。是加了得分系统,打爆一个小行星加1分,分数显示在屏幕上。然后是加了血条,飞船被小行星撞一下掉一格血,血条没了游戏就结束。

为了增加点难度,我还加了敌人的种类。除了普通的小行星,我还加了一种速度很快的陨石,还有一种能发射子弹的敌机。这敌机可把我折腾坏了,一开始我直接把飞船的子弹脚本复制过去,结果敌机对着自己开火,贼搞笑。后来我仔细研究了一下,发现是*的方向搞错了,改了一下总算正常了。

再后来我又加了Boss战。Boss是个巨型飞船,血厚攻高,还带护盾。打Boss的时候,满屏幕都是子弹和特效,贼刺激。为了让Boss战更爽,我还加了个技能系统,攒够能量可以放个大招,一炮清屏。

整个游戏做下来,我感觉自己好像真的在太空打了一仗。虽然画面简陋,bug也多,但好歹是个完整的游戏了。下一步,我打算再加点音效和背景音乐,让它更有感觉。代码我也准备优化一下,现在写的有点乱。这回实践让我收获满满,也希望我的分享能给大家带来一些启发。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,65人围观)

还没有评论,来说两句吧...