在线体验链接:
http://example.creator-star.cn/block3d/

上面图中是打砖块游戏的主要 3D 节点元素,Shawn 这两天在学习 Unity 与 Creator3D 感受到制作 3D 游戏与 2D 游戏最大的不同是 3D 游戏是在模拟一个真实世界,下面我对打砖块游戏场景中的主要 3D 节点做个简要说明。

主灯光

当我们创建场景时,引擎为会我们默认创建两个节点:灯光、摄像机。
Main Light它是一只平行灯光,模拟真实世界中的太阳,你将它放在任何位置场景效果的变化都不大,调整角度会影响3D物体的表面的光泽。

3D摄像机

Camera 摄像机所照摄的界面就是我们运行时所看到的画面。

我们这里使用的是透视视角,它像一个锥体,通过锥体能可视化地控制摄像机的参数表现:

  1. 控制锥体底部的四个点可以调节摄像机的视野;
  2. 控制底部的中心点调节摄像机的远近;
  3. 控制摄像机的position、rotation调整摄像机的位置与角度;

在【主菜单】 > 【Develop】> 【Camera Privew】可以观察到实时的摄像机画面,请看下图:

地面

ground 是用 Plane 3D 节点模拟的地面,可以通过下面菜单创建:

Plane 像一张纸,只有x、y,可以设置 Plane 的大小,不论怎么设置它的 Scale y 他在场景中的高度都不会变。

我们重点看一下地块节点和它的组件:

可以看到在 Creator 3D 中节点属性已经被精简了,只有基本的Postion、Rotation、Scale三个基本的属性(Layer属性还没了解作用)。

温馨提示:2D 节点同样如此,2D节点中的锚点、Size属性被移到名为 cc.UITransformComponent 的组件上了,color 被移到 cc.SpriteComponent 组件上,而且没有Opacity属性,由 color 属性统一接管。

3D 物理最为重要的是它的 cc.ModelComponent 组件,其中Mesh属性是控制 3D 物体的形状,比如:立方体、球体、胶囊体等,引擎内置了如下 Mesh 资源:

像"#"井号一样的图标就是 Mesh 资源了,它主要保存的是模型的顶点数据。除了 Mesh 属性,还有一个与 3D 物体表现有关的就是材质了,看下图:

这里为了实验地面不同的贴图,我这里自定一个材质资源,在资源管理器中,鼠标右键创建 Material:

从 2D 游戏开发过渡到 3D 有一个关键的点就是理解材质系统,当创建一个材质资源,看到密密麻麻的属性时,心都麻了半截:

经过 Shawn 的连蒙带猜,将 ground 地块的材质设置如下:

需要注意,这样设置的材质颜色比较暗,还要把材质属性面板拉到底部,将 Emissive 颜色属性设置为白色,地板看起来就亮了。

我之前还有一种做材质的做法,使用的是无光照的材质,比使用标准材质要简单一些:

尝试了这么多,总算是把地面材质给弄的像点样子了,下面是为地块添加碰撞组件:

在 Creator 3D 中物理引擎不需要使用代码激活,直接将 cc.BoxColliderComponent 组件挂在节点上即可,需要注意地面只需要挂上碰撞组件就行了,如果添加了物理刚体组件,地面会向下掉落,这不是我们想要的。

砖块

砖块是使用的 Cube 3D节点创建,它的 cc.ModelComponent 默认为 box.mesh 看下图:

砖块的材质需要重新定制一个,方法与前面的地面材质相同,只要我们一修改这个材质资源,场景中的所有砖块都会发生变化,这里就不在唠叨了。

下面我们为砖块添加 cc.RigidbodyComponent 组件,在节点属性面板下方点击 Add Component 按钮,看下图:

Creator 3D 目前还是预览版本,组件没分类,看起来显的有点乱,RigidBody 组件在倒数第3个,还需要再添加上 BoxCollider 在倒数第5个,节点组件属性如下:

在 RigidBody 组件上,将 Mass 设置小一点,它表示物理的质量。BoxCollider组件默认就好,IsTrigger 属性不能勾上,勾上之后物理碰撞效果就没有了,但可以用代码接收到碰撞事件。

在空中的砖块,当你运行起来发现他会自然掉落,与地面接触会产生碰撞,而这一切我们都不用编写代码哦!

小结

将砖块节点多复制一些在场景中,制作成一堵墙我们的游戏场景就差不多了,我们下次继续子弹球体的制作与创建,以及使用键盘控制摄像机移动。

感谢你的关注与阅读,欢迎你来「Creator星球游戏开发社区」公众号分享你的技术与经验,愿我们在前进的道路上砥砺前行,共同成长!

本文由博客一文多发平台 OpenWrite 发布!

Cocos Creator 3D 打砖块图文教程(一)的更多相关文章

  1. Cocos Creator 3D 打砖块教程(二) | 子弹发射与摄像机平滑移动

    在线体验链接: http://example.creator-star.cn/block3d/ 前面一篇文章,我们讲了[打砖块]游戏中的3D物体的场景布局.材质资源.物理刚体与碰撞组件,接下来本篇文章 ...

  2. cocos creator 3D | 蚂蚁庄园运动会星星球

    上一篇文章写了一个简易版的蚂蚁庄园登山赛,有小伙伴留言说想要看星星球的,那么就写起来吧! 效果预览 配置环境 cocos creator 3d 1.0.0 小球点击 3d里节点无法用 cc.Node. ...

  3. cocos creator 3D | 拇指射箭

    拇指射箭!你能射中靶心么? 效果预览 配置环境: cocos creator 3d v1.0.0 玩法介绍: 长按屏幕,拖动瞄准,放手发射.风向.重力和距离影响最终结果!越靠近中心得分越高!最高分10 ...

  4. 浅析射线检测 raycast 的使用 !Cocos Creator 3D !

    哎呀?为什么我设置了节点点击回调没反应呀? 记得在写小鸡拍拍的时候遇到一个问题,想要捕捉排球的点击事件,按照 2d 的写法,给3d 节点添加 node 事件,结果点了没反应.代码大概是以下的样子. t ...

  5. cocos creator 3D | 拇指投篮 | 3D项目入门实战

    你的命中率是多少呢?文章底部试玩! 效果预览 配置环境: Cocos Creator 3D v1.0.1 玩法说明: 触摸屏幕,向上滑动投篮!注意篮板是会移动的哦!看看你的命中率是多少! 实现原理 为 ...

  6. Cocos Creator - 入门教程项目 - 博客频道 - CSDN.NET

    3457 教程司令部 [20160418] | Cocos Creator - CocoaChina CocoaChina_让移动开发更简单cocoachina.com 2033 Cocos Crea ...

  7. Qt Creator中的3D绘图及动画教程(参照NeHe)

    Qt Creator中的3D绘图及动画教程(参照NeHe) http://blog.csdn.net/cly116/article/details/47184729 刚刚学习了Qt Creator,发 ...

  8. 欢乐水杯(happy glass)中流体的一种实现!图文视频讲解 ! Cocos Creator!

    使用cocos creator v2.2.2 实现流体效果 ! 图文+视频讲解! 效果预览 实现原理 整体思路是参考论坛中的一个帖子 这款游戏中水的粘连效果在Construct3中利用图层很容易实现, ...

  9. cocos creator主程入门教程(七)—— MVC架构

    五邑隐侠,本名关健昌,10年游戏生涯,现隐居五邑.本系列文章以TypeScript为介绍语言. 这一篇将介绍在游戏客户端常用的架构MVC架构.一个游戏的MVC如下划分: M:1)单例全局的数据中心Wo ...

随机推荐

  1. atcoder D - 11(组合数学)

    题目链接:http://arc077.contest.atcoder.jp/tasks/arc077_b 题解:有n+1个数只有一个数字是有重复出现的,要求一共有多少不同的组合显然和这两个数的位置有关 ...

  2. 2017 省赛选拨 火车入站 CSU 1757 模拟

    1757: 火车入站 Submit Page   Summary   Time Limit: 1 Sec     Memory Limit: 128 Mb     Submitted: 512     ...

  3. 【Swagger】可能是目前最好的 Spring Boot 集成 swagger 的方案

    [Swagger]可能是目前最好的Spring Boot集成 swagger 的方案 ![](https://img2018.cnblogs.com/blog/746311/201909/746311 ...

  4. Redis哨兵模式实现集群的高可用

    先了解一下哨兵都 做了什么工作:Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务: 监控(Monitoring): Sentinel ...

  5. spring boot监听器的实现

    spring boot监听器的实现 如下所示: import javax.servlet.ServletContextEvent; import javax.servlet.ServletContex ...

  6. Maven学习归纳(五)——继承与聚合实例讲解

    一.Maven的继承 1.1 什么是继承? 继承:父工程拆分出很多子工程,可以通过父工程,统一管理依赖的版本 1.2 为什么要使用继承呢? 在A.jar 依赖着——>B.jar依赖着——> ...

  7. chrome,firefox浏览器字体发虚解决办法

    打开微软自家的edge浏览器,字体就没有问题,刚开始以为是浏览器的问题,调整半天也没有效果,后来怀疑是Windows系统的问题,于是尝试调整字体,成功解决! 解决方案: 进入个性化->字体-&g ...

  8. 上传本地Jar包到阿里云的云效私有仓库

    一.前言 前2天玩了一下上传本地jar到maven中央仓库,随后我们老大又给我说了一个叫云效的私有仓库也可以玩,小编试了一下,果然很舒服,配置很简单,效率很高,几分钟就能搞定,只需要自己有个阿里云的账 ...

  9. 深入理解Three.js中正交摄像机OrthographicCamera

    前言 在深入理解Three.js中透视投影照相机PerspectiveCamera那篇文章中讲解了透视投影摄像机的工作原理以及对应一些参数的解答,那篇文章中也说了会单独讲解Three.js中另一种常用 ...

  10. 【Java基础】关于枚举类你可能不知道的事

    目录 谈谈枚举 1. 枚举类的定义 2. 枚举类的底层实现 3. 枚举类的序列化实现 4. 用枚举实现单列 5. 枚举实例的创建过程是线程安全的 谈谈枚举 如果一个类的对象个数是有限的而且是不变的,我 ...