想起我第一次打开那个源码编辑器。
界面花花绿绿的,积木块堆在左边,像个玩具箱。
我想做个跑酷游戏。不是那种大制作,就那种——小人一直跑,后面有东西追,跳啊跳的那种。
然后发现,操,比我想的难。
克隆体,操,别让它们成精
一开始我特傻。
障碍物用一个做一个,结果跑到后面卡成PPT。
后来才知道克隆体这玩意儿。就那个“当作为克隆体启动时”。
但有个坑。
你生一堆克隆体,不管他们,他们就不死。越攒越多,最后满屏幕都是鬼魂一样的方块在飘。
要删啊兄弟。
离开屏幕就得删。用那个“删除此克隆体”。
我现在写代码都条件反射了:生一个,就得想着什么时候弄死它。
像极了谈恋爱。
为什么我的小人跳不起来
跳跃。
听起来简单对吧?
按一下空格,上去,下来。
我写了三遍。
第一遍,小人直接飞出宇宙。
第二遍,他跳了一下,然后就飘在空中下不来了,跟吃了迷幻蘑菇似的。
第三遍,我终于懂了。
要有个变量叫“重力”。还有个变量叫“跳跃高度”。
还有他妈的一个叫“是否在地面”的布尔值。
伪代码大概是:
如果 按空格 且 在地面:
开始跳
在地面 = 假
然后在每帧里:
如果 在跳:
y坐标 += 5
跳跃高度 -= 1
如果 跳跃高度 <= 0:
在跳 = 假
大概吧。反正最后能跳了。
那一刻我对着屏幕喊了一声“yes”。
隔壁室友以为我疯了。
广播这事儿,真特么玄学
“广播消息”这个积木,我开始根本不用。
我想的是,A碰到B,直接让A死掉不就完了?
结果逻辑全乱套。
A碰到B,A死了,B还在,然后B又碰到A的尸体?操。
后来学乖了。
用广播。
“玩家死亡”这条消息发出去,所有角色都听到。
障碍物停止生成,背景停止滚动,计分板别他妈再加分了。
像公司倒闭了,所有人放下手里的活,准备跑路。
广播这玩意儿,真好。
碰撞检测,玄学中的玄学
有时候小人明明撞到障碍物了,没反应。
有时候离着八丈远,死了。
我盯着屏幕看了半小时。
最后发现,造型的中心点没对齐。
那个小锚点,在脚底下和在心里,效果完全不一样。
还有那个“碰到颜色”的积木。
我用过。
后来放弃了。
因为背景颜色稍微有点渐变,它就识别不出来。
就像你妈认不出你染了头发。
变量命名,我恨我自己
一开始我建了个变量,叫“速度”。
后来忘了是角色的速度,还是背景的速度,还是障碍物的速度。
又建一个,叫“速度2”。
再后来,满屏幕都是“速度3”、“速度4”、“速度最终版”、“速度再也不改了版”。
我像个给狗起名的傻子。
“小黑”、“小黑2”、“真的小黑”。
现在我用前缀。
[1]
虽然长一点,但至少不会乱。
为什么要做这个破游戏
我也不知道。
可能是想证明自己能行。
可能是无聊。
可能只是想看那个小人,在屏幕上跳来跳去,躲过那些方块。
有一次我调了一晚上bug。
凌晨三点,终于跑通了。
小人跳了十几次,没死。
我看着屏幕,笑了。
然后退出,睡觉。
第二天打开,第一把就死了。
操。
如果你也想做
别一开始就想做个完整的。
先让一个小方块能动。
再让它能跳。
再加一个障碍物。
再加一个。
再加一个。
直到游戏变得难到你自己都玩不过去。
然后你就成功了。
真的。
我那个游戏现在我自己都过不了第一关。
但每次打开,还是会玩两把。
然后死掉。
然后笑一下。
关掉。
做游戏这事儿,挺傻的。
但挺开心。

