【飞机游戏】【Cocos】【P0】创建背景、飞机和子弹

来源:哔哩哔哩 时间:2023-06-24 17:26:36

0 使用Cocos Creator引擎开发一个2D的飞机射击游戏。

0.1 创建背景对象,让背景滚动起来。


(资料图片仅供参考)

0.2 创建飞机对象,让飞机跟随鼠标位置移动。

0.3 创建子弹对象,设定其运动轨迹,并控制子弹的生命周期让它从飞机上发射出去,离开屏幕范围后销毁。

1 创建背景对象,让背景滚动起来。

1.0 获取游戏开发素材。素材可在(https://github.com/CodePoisonous/AirPlaneGame)的assets文件夹中获取。素材内容包括背景图片,各色飞机的模型、贴图文件,各色子弹的贴图文件以及音频文件。

1.1 启动引擎(使用的版本是3.7.3),新建一个项目,将资源导入到引擎中。

1.2 在res文件路径下创建一个back_ground文件夹,在该文件夹下右键创建一个名为bg_texture的material资源。将与back_ground文件夹平级的texture文件夹中的bg01贴图文件关联到bg_texture中。

1.3 在节点树上新建一个moving_scene_bg的空节点。在该空节点中创建两个3D Object的Plane类型节点bg01和bg02。并将之前创建的bg_texture绑定到这两个Plane节点的Material上。

1.4 将相机的视口调整为正交,调整好相机和两个Plane(bg01和bg02)的位置和比例,让两个背景前后相接的摆放好,相机朝下对准其中的一块背景图。 

1.5 在Assets中的Script脚本文件夹中创建一个控制背景图移动的TypeScript脚本文件。

1.6 背景移动的脚本思路大致是:先绑定两个背景图节点,然后让其同时在z轴正方向逐帧进行移动,当某张图超出了尺寸界限之后就回滚到初始位置再继续沿z轴方向移动。 

1.7 背景滚动的效果如下所示。

2 创建飞机对象,让飞机跟随鼠标位置移动。

2.0 在Assets的model文件夹中找到Plane01文件夹,里面装有飞机模型和飞机贴图资源。在Plane01文件夹中创建一个飞机的Material,将Material的Effect调成builtin-unlit(因为这个游戏不需要考虑光照的问题),再将飞机的纹理图绑定到这个Material上。 

2.1 在Hierarchy栏里新建一个Plane01的Empty Node。并将飞机的模型贴图绑到该节点上。再将我们创建的飞机的Material绑到模型节点上。

2.2此时我们可以在场景中看到一个飞机的模型。最后将我们创建的飞机节点保存到Assets的Plane01的文件夹下即可。

2.3 创建完飞机模型之后,我们就需要编写脚本来控制飞机的移动。当我们按住鼠标左键时,需要让飞机跟随我们鼠标的移动而移动。在Assets的script文件夹下创建一个ui文件夹,创建一个名为ui_main的脚本文件。(脚本的思路就是利用事件回调函数监控鼠标在左键按下时每帧鼠标的移动信息,并根据预设好的飞机移动速度来对飞机在屏幕中的位置进行调整,让飞机跟随鼠标的移动而移动。)

2.4 在Hierarchy中创建一个2D Object的sprite节点。将我们编辑好的ui_main脚本挂在sprite节点上。将飞机的节点也挂在到sprite节点上。

2.5 运行程序可得如下效果。

3 创建子弹对象,设定其运动轨迹,并控制子弹的生命周期让它从飞机上发射出去,离开屏幕范围后销毁。

3.0 在Assets的bullet文件夹下找到子弹的贴图资源,我们先创建一个子弹的Material,将贴图绑定到Material上。

3.1 在Hierarchy上创建一个Empty Node类型的bullet01节点,再在其下创建一个3D Quad类型的子节点body。将bullet01的Material绑定到body节点上。 

3.2 创建子弹的脚本文件来管理子弹对象的移动轨迹以及子弹对象的销毁(沿z负方向直线移动,超出屏幕后即可销毁)。 

3.3 创建两个Empty Node 节点:bullet_manager和game_manager。

· 其中bullet_manager节点创建的目的是为了让子弹对象实例化之后能挂载到该节点,只有在节点上的实例化对象才能在屏幕中显示出来。

· 另一个game_manager节点则是通过使用game_manager脚本来管理和调度整个游戏中对象之间的互动逻辑。 

3.4 game_manager脚本的大体思路就是:

· 先绑定飞机节点对象、子弹节点对象、子弹管理节点对象以及设置好射击的时间周期和子弹速度。

· 当脚本运行后,我们给飞机设置一个初始位置,并初始化当前射击时间。

· 在每帧的循环中使用ui_manager脚本获取鼠标是否被点击的信息,并将标识传递给game_manager。

· 当game_namger脚本识别到鼠标左键被按下时,根据射击时间,周期性的实例化子弹对象,并将子弹对象挂载到场景的子弹管理节点上,并根据当前飞机对象的位置来设置子弹的初始位置。

· 当子弹对象挂载到了子弹管理节点后,节点上绑定的bullet脚本将会运行起来,让子弹沿着它的运动轨迹飞行起来。 

3.5 运行游戏可看到效果如下。

X 关闭

【飞机游戏】【Cocos】【P0】创建背景、飞机和子弹

0使用CocosCreator引擎开发一个2D的飞机射击游戏。0 1创建背景对象,让

2023-06-24

2023年济宁市中考成绩可查询!

2023年济宁市初中学业水平考试(即中考)成绩查询平台已开放,考生可通

2023-06-24

高温橙色预警继续!局地气温达40℃!这份防护指南快收好 全球热头条

中央气象台今晨继续发布高温橙色预警:预计今天白天,华北、黄淮等地持

2023-06-24

提醒!高温时段非必要不外出 全球热点评

针对京津冀地区持续高温天气,昨天下午,中国气象局召开高温天气新闻通

2023-06-24

顶级松茸8000元/公斤,牛肝菌降至百元!端午小长假,野生菌热卖|全球快消息

端午节小长假,正值云南的野生菌大量上市,趁着休息来买野生菌的市民可

2023-06-24

莺莺的古诗有哪些 6.描写燕子的诗句

抄写作文网小编为大家提供莺莺的古诗有哪些6 描写燕子的诗句来供大家参

2023-06-24

打造一份独一无二的女孩成人礼物:如何亲手制作钢制苦无刀-焦点速递

你需要的东西花岗岩石材轮式台式磨床风镜重型工作手套等离子炬粉笔

2023-06-24

世界观察:范村乡_关于范村乡的简介

音频解说1、范村乡,隶属河南省开封市祥符区,地处祥符区南部,东与陈

2023-06-24

侏罗纪公园基因计划 侏罗纪公园基因计划如何解锁全部挖掘点)

侏罗纪世界3的故事诱因就是基因公司制造了大批的巨型蝗虫袭击不是基因

2023-06-24

奥迪竞选承诺R8 但承认它面临一个复杂的决定 实时焦点

奥迪体育表示,它仍然“致力于”其R8,但承认更换旗舰性能车是一个“复

2023-06-24

Copyright ©  2015-2022 北极科技网版权所有  备案号:浙ICP备2022016517号-19   联系邮箱:514 676 113@qq.com