首页 滚动 > > 正文

【飞机游戏】【Cocos】【P0】创建背景、飞机和子弹|每日速读

来源:哔哩哔哩 发布日期:2023-06-24 17:24:03 分享到:

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 广告

河北印发出台通用机场布局规划(2021-2030年)

到2030年,全省形成以A类通用机场为主体、B类通用机场为补充,功能完善、覆盖广泛的通用机场体系,全省通用机场达到23个。其中,到2025年全

复原民国旧菜单 一批“消失的名菜”重现羊城

  中新网广州12月5日电 (记者 程景伟)“粤宴中国·消失的名菜”活动4日晚在广州博物馆镇海楼广场举行,一批业已失传或十分罕见的传统粤

青海再度“双清零”:战“疫”催生定点救治医院反思与成长

  中新网西宁12月5日电 题:青海再度“双清零”:战“疫”催生定点救治医院反思与成长  作者 潘雨洁  全面停诊、四下无人;火线冲

世界海拔最高高铁客运站山丹马场站运营

  中新网兰州12月5日电 (记者 杨艳敏)记者从中国铁路兰州局集团有限公司获悉,12月5日10时29分随着嘉峪关南至西安北D2696次动车组列车

千年古都洛阳为何要建青年友好型城市?

  中新网洛阳12月5日电 题:千年古都洛阳为何要建青年友好型城市?  记者 肖开霖 李贵刚  千年古都洛阳日前公布《洛阳市建设青年

甘肃万余河长公示牌拥有“电子身份证” 局地启“千里眼”治水

  中新网兰州12月5日电 (记者 冯志军)记者5日从甘肃省水利厅获悉,今年以来,甘肃全面推动河长公示牌信息化建设,为全省河流换发“电子

满洲里市向呼伦贝尔市“手递手”异地转运3批次隔离人员

  (抗击新冠肺炎)满洲里市向呼伦贝尔市“手递手”异地转运3批次隔离人员  中新网呼伦贝尔12月5日电 (记者 张玮)5日,内蒙古自治区呼

2021年度法治人物沈云如:让群众过上“有身份的生活”

  中新网杭州12月5日电 题:2021年度法治人物沈云如:让群众过上“有身份的生活”  作者 郭其钰 张先登  行程10余万公里,为辖区3

x 广告

Copyright   2015-2022 西方海洋网版权所有  备案号:沪ICP备2020036824号-7   联系邮箱:5 626 629 @qq.com