cocos做飞机大战笔记【cocos基本操作】


前言

  • 制作3d游戏选择3.x的版本,制作2d游戏选择2d的版本
  • 项目升版本或降版本的时候一定要做好项目备份
  • 高版本打开过的项目再重置回低版本,需要删除项目下的library文件夹,因为此处存放的是项目缓存,通常不进入版本管理
    在这里插入图片描述

创建特殊行为的对象

对于有特殊行为的对象,比如RPG游戏里的人物、怪物,打飞机的飞机这类主角模型。

1.先创建一个预制根节点

点击scene->鼠标右键->选择创建->点空节点->名称为charactor
在这里插入图片描述

2.将模型实例到根节点下

在这里插入图片描述
在这里插入图片描述

3. 挂载控制脚本

在assets下创建文件夹script->然后在script下创建文件Player
在这里插入图片描述
然后将脚本拖入charactor节点
在这里插入图片描述

4. 将根节点与其子节点形成预制

将charactor拖入资源管理器的任意位置就是预制支原体
在这里插入图片描述

什么是预制

预制可以看作是对场景中的游戏物体的描述文件,可以被存储在assets文件夹中,方便在其他场景中重复利用。预制本身不包含任何模型,贴图等真正资源

可以把预制理解为模板,方便任何场景复用,如果真正资源丢失,预制也就失去了作用

cocos生命周期

在这里插入图片描述

一些好用的装饰器

  • executeInEditMode 可以理解为只执行脚本
    只是想测试单个功能,还不需要调试游戏
    在这里插入图片描述
  • ccclass 将标准语法类声命为cc类
  • property 属性声明为组件属性
    就是暴露给编辑器,可以在游戏编辑器中来操作这个属性
    在这里插入图片描述
  • requireComponent 组件添加依赖的其它组件
    在这里插入图片描述

注:原在节点上有此脚本的话,可能需要删此脚本组件再添加才可以好使

  • menu 将当前组件添加到组件菜单中,方便用户查找
    默认脚本在manager中,改个位置试试
    在这里插入图片描述

做一个场景

创建一个背景板

首先创建一个空节点movingSceneBg,然后在节点里面创建plane
创建plane:点击右键->创建->3D对象->plane 平面
在这里插入图片描述

创建一个材质

显然只有这个模型没贴图是不行的,接下来来创建一个材质
鼠标右键->创建->Material
在这里插入图片描述

使用材质

在这里插入图片描述
接着再拷贝一个调整到相应位置,并预览看下效果
在这里插入图片描述
在这里插入图片描述
其实想要的效果是撑满屏幕,并不是这样的,这就要从摄像机上搞点事情啦

正交相机

因为例子不涉及进大远小的效果,这里把相机调成正交相机
在这里插入图片描述
然后调整视距宽与相机位置到效果位置在这里插入图片描述

调试

在这里插入图片描述

  • 调试资源管理器面板
    比如资源导入报错的时候可以截图去论坛寻求帮助
  • 场景管理器面板
  • 构建时候的面板

事件系统

主要包括全局系统事件和节点系统事件

  • 全局系统事件 主要用来监听用户输入
  • 节点系统事件

全局系统事件

  • 鼠标事件
    • MOUSE_DOWN 鼠标按下
    • MOUSE_MOVE 鼠标移动 (在按下状态)
    • MOUSE_UP 鼠标抬起
    • MOUSE_WHEEL 鼠标滚轮
  • 触摸事件
    • TOUCH_START 触摸开始
    • TOUCH_MOVE 触摸移动
    • TOUCH_END 触摸结束
    • TOUCH_CANCEL 取消触摸
      通常是用在电话接入或者弹出信息的时候,可以用做暂停游戏或存档等操作
  • 键盘事件
    • KEY_DOWN 键盘按下
    • KEY_UP 键盘抬起
  • 设备重力传感事件
    • DEVICEMOTION 重力感应

节点系统事件

  • 鼠标事件
    • MOUSE_DOWN 鼠标按下
    • MOUSE_MOVE 鼠标移动 (在按下状态)
    • MOUSE_UP 鼠标抬起
    • MOUSE_ENTER 鼠标进入
    • MOUSE_LEAVE 鼠标离开
    • MOUSE_WHEEL 鼠标滚轮
  • 触摸事件
    • TOUCH_START 触摸开始
    • TOUCH_MOVE 触摸移动
    • TOUCH_END 触摸结束
    • TOUCH_CANCEL 取消触摸

使用

  • 监听事件 (object).on(type,callback,target?,useCapture?)
  • 只执行一次 (object).once(type,callback,target?,useCapture?)
  • 关闭事件监听 (object).off(type,callback?,target?,useCapture?)
  • 要监听的对象
  • type 需要监听的事件类型
  • callback 执行的回调函数
  • target 函数执行的this指向问题(通常给this)
  • useCapture只用节点事件才有这个值
  • 全局使用systemEvent.on(…)
  • 节点使用this.node.on(…)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值