接触 UE4 时间不短,深感其学习曲线之陡。而现有的教程多数着重介绍 UE4 的基本组成模块,但是如何把这些模块组合起来形成实际的游戏,能找到的资料不多,所以想着把自己在学习中重制的一些经典游戏公开出来,供大家参考。主要想说明的是如何利用 UE4 实现各种游戏机制,画面音效上并无特别的着力,有各位看不过去的地方还请海涵。
今天先介绍一下打砖块。
level map 如下,
其中预设组件包含,
俯视摄像机
Ball BP(小球)
Paddle BP(用户控制的滑动板)
Brick BP(砖块)
TriggerVolume
各 BP 后面会详细介绍,TriggerVolume 用于小球运动到画面底部时,重新 spawn 一个小球出来,将在 level BP 中设置。
小球等的 bp 比较简单,component 部分可以只放一个 static mesh。当然如果有兴趣还可贴上材质。
Paddle 主要处理用户输入,当用户按键时,对 Paddle 进行左右移动。
Brick 中只需响应 OnHit,在被击中时自我销毁即可。这里省略了音效或者积分机制。
Ball 同样需要响应 OnHit,操作是将速度根据法线进行映射。
另外在 Tick 中,根据小球当前的速度和运动方向控制小球的移动。
最后是 level BP,主要操作包括,begin play 时设置摄像机,并 spawn 小球。
另外响应鼠标左键,使得点击左键后,spawn 出来的小球才开始运动。
最后还需添加 TriggerVolume 的 BeginOverlap,这样小球在运动到屏幕底部时会被销毁,之后在指定的位置重新 Spawn 一个静止的小球。
以上便是打砖块的基本游戏机制。可以发现实际的编码量其实很少。当然我们还有很多 feature 并未添加,比如砖块的积分,消掉全部砖块之后的通关判断,小球掉落的命数以及游戏结束等。
下一次介绍贪吃蛇,请容忍画面的不堪。