今天跟大家伙儿唠唠我最近折腾的“猫狗大战”小游戏,别看名字挺唬人,就是个简单的扔东西对战小玩意儿,纯粹是自己瞎琢磨练手。
我寻思着得有个界面,就先拿Unity搭了个简单的场景,地上画两条线,一边站猫,一边站狗。猫和狗的模型是网上找的免费素材,贼拉可爱。
接下来就是让这俩货能扔东西。我给它们分别加了个“发射点”,就是个空物体,用来确定扔出去的东西从哪儿飞出去。然后写了个简单的脚本,监听鼠标点击,一点击就从发射点实例化一个“炮弹”,就是个小球,加了个刚体让它能飞。
这玩意儿飞是能飞了,可是没准头!我就开始研究怎么控制方向和力度。捣鼓了好半天,搞了个简单的抛物线公式,根据鼠标点击的位置和猫/狗的位置,计算出一个初始速度,然后把这个速度赋给炮弹的刚体。力度大小就根据鼠标点击的距离来控制,点得越远,扔得越狠。
这里边儿有个坑,就是这个抛物线公式,网上找的很多都不太好用,要么算出来方向不对,要么力度太大,炮弹直接飞出天际。我调了好久,才找到一个相对靠谱的,然后又根据自己的场景稍微改了改,总算能扔到对面去了。
扔是能扔了,还得能砸到对方才行!我给猫和狗都加了碰撞体,然后写了个脚本,检测炮弹有没有砸到它们。砸到了就扣血,血条空了就算输。这部分比较简单,没啥好说的。
为了增加点趣味性,我还加了风向和风力。屏幕上显示一个箭头,指示风向,风力大小也用数字显示。炮弹在飞行过程中会受到风的影响,风越大,吹得越歪。这个实现起来也不难,就是给炮弹的刚体加一个力,方向和大小根据风向和风力来计算。
我还加了点简单的UI,显示双方的血条,风向风力,还有胜负信息。整个游戏就这么个雏形了。
- 遇到的问题:
- 抛物线公式的调整,这个花了我不少时间。
- 风力对炮弹的影响,一开始没搞明白怎么加力才能模拟出真实的效果。
- UI的显示,一开始位置老是跑偏,后来才发现锚点没设置对。
这回“猫狗大战”小游戏的制作过程还是挺有趣的,虽然代码写得比较粗糙,bug也肯定还有不少,但毕竟是从头到尾自己做的,还是挺有成就感的。以后有机会再继续完善,加点更花哨的功能,比如特殊技能啥的。哈哈!