爱

手游网游通

试管婴儿全攻略服务平台

使用Creator3D开发H5小游戏「打砖块」—子弹发射与摄像机移动

本站编辑 2025-08-10 09:34 59 人阅读

前面一篇文章,我们讲了【打砖块】游戏中的3D物体的场景布局、材质资源、物理刚体与碰撞组件,接下来本篇文章重点介绍“子弹的发射”与“摄像机移动”,有了这两部分我们的【打砖块】游戏就可以初步玩起来了。子弹

前面一篇文章,我们讲了【打砖块】游戏中的3D物体的场景布局、材质资源、物理刚体与碰撞组件,接下来本篇文章重点介绍“子弹的发射”与“摄像机移动”,有了这两部分我们的【打砖块】游戏就可以初步玩起来了。

子弹的发射

子弹是由3D物体Sphere球体创建,并将节点改名为bullet,看下图:

在层级管理器中将bullet节点拖动到资源管理器中,将它创建成一个Prefab预制体。同时在bullet子弹节点上挂载球体碰撞组件()和刚体组件(),如下图所示:

有了bullet预制体,我们就可以用代码去实例化它,并将他发射出去,创建一个shoot的TypeScript脚本并将它挂载到Camera摄像机节点上:

这里需要注意两点:

触摸事件是使用进行注册的;

工程中没有代码提示,需要从引擎安装目录中复制文件到工程中,我是在Mac系统上,可以用下面命令复制:

cp/Applications//Contents/Resources/resources/3d/engine/bin/.declarations//
摄像机移动

在3D游戏中,通常的做法是使用WSAD四个键进行上下左右的移动,其核心是控制摄像机节点的位置。在我们这个游戏中为了简化游戏操作,我们只控制摄像的x和y方向的移动:

w:y方向增加

s:y方向减小

a:x方向减小

d:x方向增加

创建一个movement的脚本用于控制摄像机的移动,下面是组件的设置:

下面重点分析使用键盘控制摄像机移动的相关代码:

//使用注册全局键盘事件start(){(_DOWN,,this);(_UP,,this);}

在按钮下键盘事件onKeyDown中标记移动的方向:

onKeyDown(event){(event);letrotation=;letposition=();switch(){:=1;break;:=-1;break;:=-1;break;:=1;break;}}

当按键松开时,将offset变量归0:

onKeyUp(){=0;=0;=0;}

重点是在组件的每帧事件update中真正控制摄像机节点的移动:

update(deltaTime:number){//计算要移动的目标位置(,,);//插值计算(,,,deltaTime*);//移动节点();}

为了平滑移动,Shawn这里参考了官方Demo案例中的做法,使用对当前坐标到要移动的坐标进行插值计算。

小结

Creator3D打砖块是Shawn制作的第一个3D游戏,也是公众号上第一次写的3D相关的教程,目前他只能算是一个DEMO,还有很多不足的地方,如有不正之处还请大家多多指正。

原创不易,特别是一个新的东西,如果文章对你有用,也感谢你点个在再看或分享给朋友,你的鼓励是我创作的动力,愿我们在前进的道路上砥砺前行,共同成长!

分享到:
上一篇

已经是第一篇了

下一篇

已经是最后一篇了