首页 > 科技频道

【飞机游戏】【Cocos】【P0】创建背景、飞机和子弹-全球动态

来源:哔哩哔哩 时间:2023-06-24 17:40:41

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 运行游戏可看到效果如下。

相关稿件

【飞机游戏】【Cocos】【P0】创建背景、飞机和子弹-全球动态

赵丽颖落选白玉兰奖视后,胡歌和朱一龙落选视帝,谁更可惜

全球快资讯:本科没有学位证会有什么影响_本科没有学位证有什么影响

全球资讯:天枢位置及作用_天枢穴位位置图

全球速递!疑似姚景元老师晒其高考成绩 三战考401分超去年93分

A股:格林美的股价自高点腰斩,股民在离场,机构数量却在增加 环球最新

枣糕的做法大全教程_枣糕的做法大全

南非一矿场上月发生甲烷爆炸 造成至少31人死亡

焦点信息:深圳松岗MasterCAM四轴五轴编程培训

探讨整形外科手术中肾上腺素使用的最大剂量 天天快讯

【快播报】美疾控中心敦促公众暑期国际旅行前接种麻疹疫苗

白玉兰视后,凭什么给吴越?_要闻

世界热议:我和Ed Patrick是同道中人

当前速讯:广州启动气象灾害(雷雨大风)Ⅳ级应急响应

热议:晋城司法鉴定申请程序是怎样的? 天天热闻

番茄炖牛腩的做法刘凯?|视点

当前通讯!布林肯访华后指责中国

成都中医药大学招生计划-各专业招生人数是多少 焦点速看

河北公布高考分数线

世界聚焦:赛车涂装效果炸裂!Stüssy x Nike Dunk 太帅了!

麦露迪——开启女鞋行业创业新纪元

当前视讯!暨大今年在粤招生2324人,新增2个本科招生专业

你得了皮肤真菌病吗?|天天热文

今日报丨多股暴涨500%!光模块进入“狂飙”模式

建议这几个生肖今年趁早多存钱,防患于未然

前沿资讯!明天6月25日开始得财神青睐 赚钱最猛的生肖

每日速读!喜鹊叫 明天6月25日必定好运爆棚,开门接财神,双喜临门这三生肖

AGM推出PAD P1三防平板:联发科Helio G99+7000mAh电池

全球观点:3.5米!黄浦江米市渡站逼近红色警戒水位

保德国际预计年度亏损3.6亿_最新快讯