要说这个《火柴人街霸》,那真是从我心底里埋了好久的一个念想。好几年前,我那时候玩电脑,特喜欢看那种火柴人打架的动画,一拳一脚的,看着就觉得带劲。后来又玩了不少街霸类的游戏,就想着,要是能把这俩东西合一块儿,自己弄一个《火柴人街霸》,那得多好玩。
脑袋里那点子火花
刚开始,这事儿就纯属是琢磨。我不是啥专业搞这个的,就是个瞎琢磨的普通人。那时候脑子里就画着草图,一个火柴人,简单几笔,但是得能跳,能出拳,能踢腿。我就想,这玩意儿要是能动起来,还能跟另一个火柴人“街霸”一下,那肯定特有意思。
我这人有个毛病,想干啥就得去折腾。于是我就开始搜罗。先是找那种简单的动画制作软件,想着至少把火柴人的动作先搞定。下了好几个,挨个试,结果发现,光让一个火柴人动起来就够费劲的了。手画帧,一帧一帧地挪,画出来的动作那叫一个僵硬,跟个机器人似的。那会儿真是画得我手都快抽筋了。
撸起袖子干活
光动画不行,还得能“打”起来。我寻思着,光有画面没互动,那不就是个动画片嘛于是我就开始琢磨怎么让它变成个游戏。我上网找那些基础的编程教程,看人家怎么写游戏的。那些代码看着就跟天书一样,我当时真是头大,感觉自己是不是自不量力了。
不过我这人就是轴,认准的事儿非得磕到底。我就硬着头皮,找了个最简单的游戏开发环境,也不知道叫反正就是能让我把画好的火柴人放进去,然后能用键盘控制它动。我先是实现了火柴人的左右移动,就是按“A”左走,“D”右走。当时看着我的火柴人在屏幕上晃悠,那成就感,别提了!
- 角色动画: 我从最基础的站立、走路、跳跃开始。一个火柴人,就那么几根棍儿,愣是让我捣鼓出了一套几十帧的动作。画的时候,就得想象它怎么挥拳、怎么踢腿,一点一点地把动作拆开来。画完了再导入,看着它一卡一卡的,慢慢调,慢慢顺。
- 攻击判定: 这是最难搞的。我总不能让火柴人出拳,结果对方没反应?我就得给拳头、腿脚这些地方画上“碰撞框”,让它们碰到对方的“身体框”的时候,能触发一个反馈,比如对方身上闪一下光,或者退后一点点。一开始那判定,真是稀烂,拳头都穿过去了,对方纹丝不动,我气得直想砸键盘。
- 简单的输入: 我没敢搞什么复杂的搓招,就想着先来点简单的。比如按“J”出拳,按“K”踢腿。再结合方向键,就有了跳踢、蹲拳啥的。每次按下去,能看到火柴人做出相应的动作,真的感觉自己把一堆乱七八糟的东西给串起来了。
磕磕绊绊的那些事儿
这过程中,遇到好些个坎儿。最开始就是动作卡顿。我画的帧数不够,或者帧率没设置火柴人就跟抽风一样,一动一动的。我就花好多时间去调,增加帧数,或者调整每帧的显示时间,慢慢才让它看起来没那么“鬼畜”。
还有就是碰撞判定,上面也提了,真是把我折磨坏了。有时候明明看着打到了,却没反应;有时候明明离得老远,却也能判中。我就得一遍遍地去调整那些个看不见的“框框”,缩小放大,挪位置,直到感觉差不多了为止。那会儿经常搞得我晚上睡不着觉,脑子里全是那些个方块和线条。
最可气的是,有时候代码一不小心写错了,整个程序就崩溃了,啥都玩不了。我一个劲儿地检查,一行一行地找,有时候找半天发现就少打了一个括号或者多了一个符号,真是哭笑不得。不过每次改对了,程序能跑起来,那种踏实劲儿,也是只有自己才能体会。
看到一点光亮
就这样,磕磕绊绊了好几个月,我的《火柴人街霸》才勉强有了个样子。两个火柴人,能左右走,能跳,能出拳,能踢腿,而且拳脚打到对方身上,对方还会闪一下,有点被打到的感觉。虽然简单得不能再简单,画面也粗糙得要命,但看着它真能在屏幕上“打”起来,我心里那个激动,真是比什么都强。
这东西,从一个模糊的想法,到我坐在电脑前瞎琢磨,再到一点点把代码敲出来,把动画画出来,看着它在屏幕上动起来,虽然只是个粗糙的雏形,但这就是我亲手捣鼓出来的。它可能永远不会是真正的游戏,也不会有人玩,但对我来说,它就是我心里的那个“火柴人街霸”。
