周末在咖啡厅敲代码的时候,邻桌两个玩《掘地求升》的哥们让我突然有了灵感——为什么不自己做个让人又爱又恨的平台跳跃游戏呢?于是我的GoreBox企划就这么蹦出来了。下面就跟大伙儿聊聊我这个大学生是怎么把想法变成可玩成品的。
在打开Unity之前,我掏出素描本画了张火柴人草图:
参考了《超级食肉男孩》的死亡回放机制后,我决定每次碰撞都让小球duang地弹起,这样既刺激又不会让玩家摔手机。
为了让小球变色不显突兀,我翻出《色彩设计原理》整理了这套方案:
状态 | 颜色代码 | 视觉反馈 |
正常 | FF6B6B | 警惕但不压抑 |
加速 | 4ECDC4 | 清凉的速度感 |
受伤 | FFE66D | 提醒但不刺眼 |
作为学生党,我选的装备都是免费+易上手的组合:
特别推荐《通关!游戏设计之道》这本书,里面对物理参数的讲解让我少走了三天弯路。
在PlayerController脚本里,我用了这段让小球滚起来的魔法:
void Update {
float moveX = Input.GetAxis("Horizontal") 10f;
float jumpForce = Input.GetButtonDown("Jump") ? 5f : 0f;
rb.AddForce(new Vector2(moveX, jumpForce), ForceMode2D.Impulse);
跟着我的实操笔记走,保准你的小球能蹦跶起来:
在Unity里新建2D工程,拖入这些组件:
用这段代码实现随机变色:
void RandomColor {
GetComponent.color =
Color.HSVToRGB(Random.Range(0f,1f), 0.8f, 0.9f);
用Bfxr生成了三组音效:
场景 | 音效特征 |
跳跃 | 短促的"biu"声 |
碰撞 | 闷响+金属回音 |
死亡 | 玻璃破碎声 |
凌晨三点遇到的诡异bug:
后来发现是碰撞体的摩擦力设成了-1,这教训够我记三年。
参数 | 初始值 | 最终值 |
重力 | 9.8 | 14.7 |
弹力 | 0.5 | 0.8 |
最大速度 | 20 | 12 |
现在看着小球在屏幕上欢快地蹦跳,听着室友"再来一局"的嚷嚷声,我知道这几个月的黑眼圈值了。要是你也想做个这样的魔性小游戏,照着这个路子走准没错。下次打算给游戏加个会吐钉刺的BOSS,不过那是另一个故事了...
下一篇:《王城战争》实战技巧分享