好了,不废话,现在就开始本期的手把手小游戏开发课,因为比较基础,高手还请绕道。
这次要开发的做一个3D游戏,主题很明确,就是要模仿《欢乐球球》。以前很畏惧做3D的游戏,因为我空间感很差,经过这段时间的磨炼,差不多已经不晕3D了。多了一维计算就丢给AI吧,虽然有时AI有幻觉但是还是可以用。
因为上次说过3D游戏的视觉效果就是要比2D的强,所以几乎不用特意去找素材就可以做一个核心玩法。先把结果发出来给大家看看,是不是视觉效果还不错。
好了,如果你坚持看到这里了,说明你真的想学习开发一款属于自己的游戏。可以给我一个三连,我很需要你的支持鼓励。为了所有人都公平,可以从0基础做到上面的效果,我们还是从环境搭建开始。
第一步:运行环境
做游戏用JavaScript非常方便,无需安装任何运行时软件,你的电脑应该有浏览器,只要有浏览器就能运行游戏,要是没有浏览器,额,那我想问你平时是怎么上网的。。。随便一款浏览器都可以,当然最好别是IE,懂得人都懂。
第二步:编码环境
编码环境我们采用VS code,选择官网,点击下载,根据你的电脑系统点击mac或者Windows,下载好了,安装完成。或者用AI编辑器如cursor,windsurf,trae都没问题
第三步:游戏引擎
熟悉我的朋友,都知道我常用cocos creator,如果你熟悉其他引擎,比如layaair,unity,或者gamemaker,或者godot,都没有关系,毕竟AI这么全能,任何引擎对它来说都是一样的。
点击下载mac或者window版本,安装完成打开软件,注册账号,登录,下载最新引擎编辑器版本,创建项目一个3D项目,这个很关键,别选错成2D了。编辑器版本可以选择最新的,你就可以开始让AI做你的牛马了。
第四步:游戏素材
这次开发只需要一个素材,把小球换成僵尸,僵尸模型哪里来?AI给你做一个。打开https://3d.hunyuan.tencent.com/,登录进去,选择文字游戏道具工作流程。
接下来,你只需要通过文字就可以得到一个3D模型。
比如我说生成一个可爱的僵尸,额,结果给我一个愤怒的僵尸,那我将就着用,你也可以换成其他的,甚至可以把你的自拍照生成一个模型。
得到结果后将模型以obj文件导出。
拖入到游戏编辑器中,备用
第五步:游戏场景搭建
这个时候AI要上场了,再不上场,游戏教程都要做完一半了。由于我是“新手”,那么就开始问AI。
cocos creater 3.8 制作一个类似《欢乐球球》的游戏,3D场景,一根蓝色大圆柱,上面有很多方块组成的台阶,方块有两种颜色,灰色和红色,初始化阶段最顶部的台阶有一个小球,蹦蹦跳跳,摄像机跟随小球。挪动屏幕可以选择方块台阶,小球能够在灰色台阶上跳跃,碰到红色台阶游戏结束,每下一个灰色台阶得1分,帮我制作这个游戏。
我这次的提示语写的非常长,一次性描述了整体的核心玩法逻辑。
接下来按照AI的提示一步一步执行。
创建3D场景,添加圆柱体作为主结构。
生成台阶,围绕圆柱体,每一层有多个方块,颜色随机,但顶部初始为灰色。
添加小球,设置刚体和碰撞体,使其能弹跳。
实现摄像机跟随小球移动。
处理玩家输入,旋转圆柱。
小球跳跃逻辑,比如施加力或调整位置到目标台阶。
碰撞检测,处理颜色判断,游戏结束和得分。
UI显示得分和游戏结束界面。
可能遇到的问题:
如何动态生成台阶,并确保它们围绕圆柱正确排列。可以使用循环,根据角度放置每个Cube。
小球跳跃的物理控制,可能需要调整力或速度,确保它正确落到目标位置。
摄像机平滑跟随,避免抖动。
输入处理,比如触屏滑动转换为旋转角度或目标位置。
考虑的很完善,接下来就一步一步来操作。
1、创建蓝色3D圆柱体
创建立方体:在层级管理器中右键选择「创建 -> 3D对象 -> Cylinder」。
设置蓝色材质
在资源管理器中右键「材质 -> 新建 -> 材质」,重命名为「BlueMat」
将材质拖拽到圆柱体节点的MeshRenderer组件中,这样就得到了一个蓝色的圆柱体。 圆柱有点小,调整一下scale,缩放比例(5.25,100,100),记住3D里面都是以scale熟悉来控制节点的大小,没有长宽高。 Metallic设为0 Albedo颜色调整为蓝色(RGB 102,143,255)2.选中材质,在属性检查器中设置:
现在柱子很长了。柱子搞完嘞,接下来制作僵尸。
2、添加僵尸
将僵尸模型拖放到scene中,重命名为
拖进去你发现僵尸看不到,别慌,是位置被圆柱体挡住了,需要把僵尸位置调整一下。
已经出来了,不过方向好像不对。
调整一下摄像头的位置,因为要稍微俯视效果,得让玩家多看点下面的方块。
选择camera,设置position和rotation的属性,数值参考图片上。预览游戏
差不多了,就是僵尸有点小,那么可以放大一点,就不过多介绍。
3、制作方块台阶
因为台阶是可以多次复用的,所以要用预制体,凡是能够多次复用的物体,都要第一时间想到预制体。
在场景中新建得到一个Box,然后拖拽到assets面板中,获得预制体。
点击预制体,添加碰撞组件,为了处理碰撞使用。
复制一个,制作红色的预制体,新建一个材质,设置为红色,步骤参考上面圆柱体设置材质,是一样的。
因为台阶要整体移动,所以需要把他们放到一个组里面。新建一个容器节点
为了视觉效果,可以先手动搭建基层台阶看看。
假设每一层都有灰色和红色两种,多复制几层出来,然后设置一下每一层的位置和旋转角度。
方块Z方向位置突出一些,这里设置为3.5,红色为-3.5
floor节点Y方向从0开始,每一层,减去8,旋转角度每一层可以随意,为了演示,我这里设置为60,每一层设置的旋转角度都不一样,错开,视觉效果就出来了。
然后记得设置砖块的物理刚体为静态的,不然会掉下去
万事具备了,只缺代码逻辑。
第六步:手指旋转砖块
创建StepsCtrl组件在资源管理器中新建TypeScript脚本「StepsCtrl」,挂载到Steps节点。可以将脚本直接拖拽到属性栏,也可以直接在属性栏添加脚本组件,两种方式自己选。
核心代码实现:
绑定touch事件,然后根据滑动距离,转换成旋转角度。
把代码复制到编辑器就可以开始调试。
点击编辑器顶部「三角形」按钮启动浏览器预览
手指水平滑动屏幕,如果方块旋转正常就可以了。
因为这里圆柱体没有特别的纹理,如果有可以一起旋转。
第七步:僵尸蹦蹦跳跳
本游戏玩法的核心来了,那么继续让AI教学。
Ball改为zombie,因为写球是更好让AI理解游戏玩法,你写个僵尸下台阶估计AI一脸懵。AI给的答案有点语法问题,需要调试下。
先给僵尸加上物理组件和物理材质。
简单模拟,给僵尸添加球星碰撞体模型,还要设置碰撞的弹性系数,因为僵尸可以一直弹不会停下来。摩擦全部设置为0,反弹设置为1,反弹系数代码也可以设置。
然后添加控制球的代码,要处理碰撞,碰到红色游戏结束,碰到灰色反弹。AI很友好,落地动画和弹跳动画都帮忙写出来了。
加上代码之前看效果,看上去还凑。
那么接下来的问题就是要处理摄像头,要跟随僵尸一起移动,不然没法玩。
第八步:摄像机跟随
新建一个CamerFollow脚本,跟随节点是僵尸。
因为我们事先已经调整好游戏的摄像头视角,在后续移动过程中,摄像机节点的位置相对僵尸节点的位置保持一致就行。
代码如下:
游戏开始先计算好摄像头和僵尸在Y方向上的位置差值
在每一帧位置计算的时候加上差值,如果移动位置过大,做一个线性插值计算,让摄像头移动动画缓和一点,将脚本绑定到摄像头上。
操作完之后看效果
结果符合预期。
第九步:动态生成砖块
因为之前的方块是我提前摆好,现在需要动态生成无限多的方块。前面几个我们就固定用摆好的,在Y坐标-24之后,我们就动态生成,每间隔8的单位生成一个。然后生成新的同时要回收旧的方块,不然方块多了游戏会卡。
看一下效果
最后还要打磨一下手感,僵尸的速度要加快一点,把节奏感搞起来,加一些音效,震动反馈的效果,粒子动效,游戏结束逻辑。
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://zblog.hqyman.cn/post/10226.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~