学习笔记:使用 Cocos Creator 3.4.0 开发空战游戏 02——玩家飞机
开发工具
- Cocos Dashboard 1.0.20
- Cocos Creator 3.4.0
- Visual Studio Code 1.63
- Microsoft Edge 97.0.1072.69
创建玩家飞机
- 在
层级管理器中 创建一个空节点, 命名为playerPlane, 在资源管理器中拖动的FBX模型assets/res/model/plane01/plane01到playerPlane节点中, 并将节点playerPlane下的模型名称plane01(模型根节点) 改名为body。
- 在
资源管理器中点击选中assets/res/model/plane01文件夹,右键->创建->材质, 命名为playerPlane。
- 将材质
playerPlane的属性Effect更改为builtin-unlit; 属性USE TEXTURE打勾, 飞机图片plane01拖动到MainTexture, 保存材质。
- 在
层级管理器中, 点击选中playerPlane/body/plane01节点, 将上一步创建的材质playerPlane拖动到其属性检查器中的Materials[0], 保存场景。
在
层级管理器中点击选中playerPlane/body节点, 修改缩放属性Scale的值为:X:8, Y:8, Z:8(放大8倍)。此时飞机与背景板重叠,在
层级管理器中点击选中movingSceneBg, 将其Position的Y轴修改为:-20(背景往下移)。
- 在
层级管理器中点击选中playerPlane节点,将其拖动到资源管理器中的assets/res/model/plane01文件夹制作成预制, 保存场景。
控制飞机移动
- 在
资源管理器点击选中assets/script/文件夹,右键->创建->文件夹, 命名为ui, 在该文件夹中添加脚本UIManager, 双击打开该脚本进行编辑。
1 |
|
在
层级管理器中点击选中场景airplane,右键->创建->UI组件->Canvas(画布), 名字默认。在
层级管理器中点击选中Canvas节点, 在属性检查器点添加组件->自定义脚本->UIManager, 将上一步编辑好的脚本UIManager挂载到Canvas根节点。将
层级管理器中的playerPlane节点拖到Canvas节点属性检查器的playerPlane属性中, 修改playerPlaneSpeed值为 8,保存场景,预览。
玩家飞机子弹
- 在
资源管理器点击选中assets/res/effect/bullet/文件夹,右键->创建->材质, 命名为bullet01, 修改Effect为bulitin-unlit, 此处子弹模型包含透明外环效果, 将Technique修改为3-alpha-blend模式; 选中USE TEXTURE, 将图片bullet01拖动到属性检查器中的属性MainTexture, 在属性检查器右上角点保存。
选中已经制作好的子弹材质
bullet01,Ctrl+D快速复制为4个(bullet02-bullet05), 分别将各个新材质的属性MainTexture更改为对应的图片, 保存。在
层级管理器中创建一个名为bullet01的空节点, 点击选中bullet01节点,右键->创建->3D对象->Quad(四方形), 将其改名为body。创建好的
Quad(四方形)垂直于背景, 将其Rotation的X轴改为-90, 摆正其位置, 修改其Materials为 材质bullet01; 缩放属性Scale(缩放)调整为5倍大小,Scale: X:5, Y:5, Z:5。
- 在
资源管理器的script文件夹中创建bullet文件夹, 并创建子弹脚本Bullet处理子弹的运行逻辑和子弹的销毁。
1 |
|
- 在
层级管理器点击选中bullet01节点, 在属性检查器中点击添加组件->自定义脚本->Bullet, 将脚本绑定到子弹根节点上; 然后将层级管理器中bullet01的节点拖动到资源管理器的assets/res/effect/bullet/文件夹中,变成预制。
在
资源管理器中点击选中assets/res/effect/bullet/bullet01预制,Ctrl+D快速复制为4个(bullet02-bullet05)。在
资源管理器中分别双击assets/res/effect/bullet/文件夹中的预制bullet02-bullet05, 将body中的Materials替换为对应的子弹材质, 保存场景。
- 在
层级管理器中删除或不显示(否则子弹会一直出现在屏幕上)子弹节点bullet01, 并保存。
控制子弹发射
- 在
资源管理器创建assets/script/framework文件夹, 然后创建名为GameManager的脚本。
1 |
|
- 修改
UIManager脚本本以更配合GameManager脚本使用
1 |
|
在
层级管理器中点击选中场景airplane,右键->空节点,命名为bulletManager, 创建子弹管理节点。在
层级管理器中点击选中场景airplane,右键->空节点,命名为gameManager, 在其属性检查器中分别添加玩家飞机节点playerPlane, 子弹预制:bullet01-bullet05, 子弹管理节点BulletRoot:bulletManager。
- 在
层级管理器点击选中Canvas节点, 将gameManager节点拖动到其UIManamet中GameManager的属性。
- 保存场景,预览。子弹速度慢,可以将
gameManager节点 的shootTime改为 0.1 , 缩短子弹发射间隔,提高速度,或是将bulletSpeed值改大。
===END===





