cocos游戏开发入门碎碎念

382 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 7 天,点击查看活动详情

起源

最近开始学习游戏开发,相比Unity,cocos开源,并且在其官方文档中,有详细的如何发布到抖音,微信,H5等的详细介绍,便于发布与制作。

在阅读并跟随官方文档制作完第一个游戏:*一步两步

便想着能制作一个稍微复杂点的游戏,因此便去B站上找一些视频教程。

Cocos引擎官方的B站账号上,便找到了一个鹰击长空的视频教程,讲师叫放空。

下面记录一些自己在学习过程中的坑与注意事项吧。

视频中的事件监听接口过时

在视频中,讲师介绍的事件监听接口是systemEvent,而目前我所使用的版本为3.7,其事件监听接口改为input

对比如下:

// 过时接口
systemEvent.on(SystemEvent.EventType.KEY_DOWN, this._keyDown, this);
// 3.7版本
input.on(Input.EventType.KEY_DOWN, this._keyDown, this);

脚本只有绑定了场景中的节点才会生效

比如视频教程中的UIMain.ts文件,其中注册了事件监听,但是比如将其绑定到场景中的一个节点,可以是空节点,或者canvas等等,事件监听才会生效。

滚动背景

这部分内容我一开始没理解,昨晚上突然发现,其实很简单,可以这么理解这个场景,你的眼镜在场景中就是那个镜头Main Camera,只能看到一块矩形区域,但是如何做出连续向下滚动的星空背景呢,就需要两张一模一样的图,轮番移动,保证摄像头区域内始终有图像在滚动,类似与轮播图可以循环滚动。

奇怪,我为什么在这么简单的事情上纠结了这么久。

视频中对于坐标的介绍很模糊不清

在我跟随着视频讲师一步一步做游戏的时候,到第11个视频:飞机移动和子弹发射,发现我的子弹怎么样都出不来。坐标与讲师的几乎一样。

后来根据自己一点经验,发现有可能是设置坐标的基准点不一样。

根据自己的判断,在脚本中,有两个设置位置的方法:setPostionsetWorldPosition,显然两个有所区别,setWorldPosition显然是全局的坐标系,那么setPosition的(0, 0, 0)是哪个呢,显然就是其父节点。

部分未解决的疑问

笔者刚接触游戏开发,所以想问一下,视频中的素材,尤其是贴图,是如何制作的呢?比如那个复杂的飞机,和飞机复杂的贴图,是使用cocos软件本身来制作的,还是使用其他软件来制作的?3D贴图又是如何来制作和适配模型的?