专栏首页Creator星球游戏开发社区Creator3D图文教程【打砖块】终于撸出来了,附送最新源码!

Creator3D图文教程【打砖块】终于撸出来了,附送最新源码!

回复【3D打砖块】可获取最新源码,在线体验链接:

http://example.creator-star.cn/block3d/

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

1

主灯光

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

2

3D摄像机

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

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

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

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

3

地面

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

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 的连蒙带猜,将grund 地块的材质设置如下:

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

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

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

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

4

砖块

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

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

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

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

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

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

5

小结

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

本文分享自微信公众号 - Creator星球游戏开发社区(creator-star),作者:张晓衡

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • CreatorPrimer|组件编码心得(下)

    这次是《组件编码心得》的最后一篇,第一次我们讲到将组件分为两大类:功能型和控制型;第二篇介绍了功能型组件与控制型组件的编码上需要注意的地方,最后还提到控制型组件...

    张晓衡
  • CreatorPrimer|组件编码心得(中)

    功能型组件一般会以纯脚本形式存在,如果做到了以上三点,我们编写的组件就可以像引擎内置的组件一样可以被随处使用了。甚至还可以跨越不同的项目,Shawn在Creat...

    张晓衡
  • Creator组件化的编程探索

    使用CocosCreator已经一年了,在此期间一直在摸索,如何才是组件化编程的最优实践。Shawn属于半野生的路子,水平不高,但不时会陷入一些问题瞎琢磨。我根...

    张晓衡
  • 华为利用AI将面部表情转化为声音

    世界卫生组织估计约有13亿人患有近视,多达2.17亿人有或轻或重的远距视力问题。这些损伤不仅使日常琐事变得复杂,例如遛狗和检查邮件,它们也会使人难以接受情绪暗示...

    AiTechYun
  • 如何让视频会议在小程序上开起来

    |导语  使用企业微信跨组织间会议门槛较高,要求外部客户或合作伙伴先建立在企业微信的线上组织才可入会,通过引入小程序入会能力,降低跨组织会议的门槛; 为解决微...

    腾讯大讲堂
  • Python做文本挖掘的情感极性分析(基于情感词典的方法)

    关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 我们会再接再厉 成为全网优质的技术类...

    昱良
  • MIT用AI为司机自私程度打分,让无人车了解如何与不同性格驾驶员“打交道”

    有人横冲直撞,也有人一味避让,尽管制定了交通法规用于规范驾驶行为,但在同一路段上不同驾驶行为难免还是碰撞出事故。而自动驾驶汽车(AV, Autonomous V...

    大数据文摘
  • 企业上云:可get这几种安全云网络服务

    企业云部署已经很快地从小规模应用(如短期项目或测试与开发环境)发展为支持更为重要的工作负载的复杂的大规模应用。随着云服务变得越来越多样化,企业对于云模型的满意水...

    静一
  • 「首席看软件架构」DDD,六边形,洋葱的,干净的,CQRS的整合架构

    这篇文章是软件架构编年史的一部分,一系列关于软件架构的文章。在这些文章中,我写了我对软件架构的了解,我如何看待它,以及我如何使用这些知识。如果您阅读了本系列以前...

    首席架构师智库
  • 【opencv实践】仿射变换和透视变换

    上面这副图就是我们今天要处理的了,我们想把它从拍照视角变成鸟瞰图,这是机器人导航中的常用手段,以便在该平面上进行规划和导航。

    周旋

扫码关注云+社区

领取腾讯云代金券