首页 > 其他分享 >Cocos Creator 项目实战《3D切水果》

Cocos Creator 项目实战《3D切水果》

时间:2023-11-17 10:15:30浏览次数:33  
标签:Cocos Creator 配置 水果 如下 生成 节点 3D

今天跟大家分享一个Cocos Creator 3D切水果的实战案例,帮助大家掌握Cocos Creator开发3D微信抖音小游戏,开发工具我们采用的是Cocos Creator 3.6。先上一波游戏操作效果图,接下来通过本文来讲解这个游戏的一些核心的技术点。

 

 

 

游戏项目资源准备

 

我们刚开始做项目的时候,首先要准备好项目的资源,一个游戏项目包含的资源大致分为:3D场景, 3D角色,3D粒子与特效, 游戏音乐音效,2D UI界面, 游戏数据配置表等。我们把资源分类放好到资源包里面,如图:

 

 

资源包按照类别分类进行放好,项目的目录结构会非常的清晰。同时我们把游戏场景,3D模型,2D UI,都通过编辑器做成一个一个的预制体。如下图所示的水果的预制体:

 

 

每个水果的结果都类似,如下图榴莲这个水果, 根节点durain下面durain01, durain02两个节点,这两个节点分别表示水果切开后的两个模型节点,另外一个子durain节点是整体的水果的节点。西瓜也类似,每个水果有三个子节点(切开后左边模型节点,切开后右边模型节点,完整的水果节点)。

 

 

 

水果被切开以后,隐藏掉全节点,显示两个左右半边水果节点,然后左右的水果节点各自运动。《切水果》的3D场景非常简单,就是一个摄像机+3D背景。如图:

 

 

 

UI资源,都根据游戏的设计,做成一个一个的预制体,如下图:

 

 

 

注:需要资源的同学可以关注我们,领取!

 

 

《切水果3D》的关卡设计与配置表

 

  资源介绍完成以后,就是关卡设计与配置表,水果如何出,有哪些类型,这些不可能用代码写死,所以我们给策划提供了一个关卡配置表,同时每种水果以及相关的数据都会有配置表,在代码种我们做如下两个配置表,如下:

Fragment.csv 配置表:描述了水果的生成逻辑,包括生成的时间间隔,生成的方向,初始的力,水果的大小等,表格头如下:

 

 

 

根据难度登记分成了一些操作,然后先易后难的根据难度来生成对应的水果与操作,这样,越到后面难度越大。

fruit.csv配置表:每个水果的数值描述表,描述了每个水果的属性特征,代码里面读取每个水果的属性特征后,根据这些特征来生成对应的水果实例。

 

 

 

当我们要生成1001的水果的时候,我们从ID 1001,知道它是西瓜,对应的预制体是watermelon。这样就可以根据这条信息把对应的水果创建出来。

 

核心实现:生成水果与抛出水果

 

  在这个项目种的一个核心的实现就是生成水果与抛出水果,我们先来看生成水果,我们做一个GameMgr的脚本用来管理整个《切水果》的逻辑。GameMgr读取配置Fragment中的数据,根据这个数据来生成水果,代码如下

 

 

接下来我们看CreateFruitWithConfig函数, 如何来创建一个水果物体,代码如下:

 

 

节点创建出来以后,根据水果配置的参数,来设置具体水果的位置等信息,我们来看下ResetFruit函数代码如下:

 

 

 

 

水果的抛物线运动控制

  接下来我们来分析一下水果的抛物线运动控制,我们基于Update来迭代抛物线运动,根据我们配置表中的力的大小与方向来做抛物线,设置要给重力加速度,然后x, y上分别迭代,代码如下:

 

 

 

 

 

运动过程中,习惯还要旋转,所以不仅要有位移,还要有旋转,我们给水果一个速度wSpeed。让他围绕z轴旋转,代码如下:

 

 

 

今天的分享就到这里了,关注我,可以获取教程的项目源码。

 

标签:Cocos,Creator,配置,水果,如下,生成,节点,3D
From: https://www.cnblogs.com/rainy1unity/p/17838015.html

相关文章

  • Unity3D:ECS架构详解
    Unity3D是目前游戏开发领域最为流行的引擎之一,而Unity3DECS架构则是在Unity3D引擎的基础上,针对游戏开发中的实体组件系统进行优化和改进而设计的一种架构。本文将详细介绍Unity3DECS架构的技术细节和代码实现。对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开......
  • Cocos Creator 常见错误排查方法
    CocosCreator新手开发的时候经常会遇到一些错误不知道如何解决,今天把这些错误总结一下,下次遇到的时候,自己知道如何分析。 到底谁为null或undefine 我们在使用CocosCreator开发的时候,运行游戏项目,经常会遇到这样的问题: TypeError:Cannotreadpropertiesofnull(rea......
  • Cocos Creator中定时任务的实现
    在CocosCreator游戏开发中,经常需要使用定时任务,例如,赛车游戏游戏开始前的倒计时,玩家游戏结束之后等待3秒进入下一局,打地鼠游戏中,地鼠出洞3秒后消失,飞机大战中飞机每隔1秒钟发射一颗子弹等等。由于其应用场景非常多,因此,CocosCreator中为我们提供了方便的计时器,这个计时器源自......
  • 一篇文章搞定Cocos Creator中动画编辑器的使用
    在CocosCreator游戏开发中,动画特效的使用非常频繁,而动画特效的操作对初学者来说又相对复杂,所以,初学者一定要引起重视。对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀~动画编辑器使用1:创建一个节点;2:为这个节点添加一个动画组件cc.Anima......
  • Cocos Creator开发中的事件响应
    在CocosCreator游戏开发中,我们经常需要处理事件响应。所以,我们有必要对其中的事件响应内容熟记于心,因此,将其中重要内容归纳如下:对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。触摸事件1:触摸事......
  • CocosCreator脚本属性在属性面板的显示
    声明属性要声明属性,需要在cc.Class定义的properties字段中,填写属性名字和属性参数。cc.Class({extends:cc.Component,properties:{score:{default:0,type:cc.Integer,displayName:"分数",tooltip:"玩家的分数"}}}); 下拉列表要在属性检查器上显示为下拉......
  • g2o(5-2)2d-3d BA优化
    https://github.com/gaoxia   #include<iostream>#include<opencv2/core/core.hpp>#include<opencv2/features2d/features2d.hpp>#include<opencv2/highgui/highgui.hpp>#include<opencv2/calib3d/calib3d.hpp>#include<Eig......
  • g2o(5-3)3d-3d BA优化
    https://github.com/gaoxiang12/slambook/blob/master/ch7/pose_estimation_3d3d.cpp #include<iostream>#include<opencv2/core/core.hpp>#include<opencv2/features2d/features2d.hpp>#include<opencv2/highgui/highgui.hpp>#include&l......
  • Cocos Creator中骨骼动画组件的使用
    在CocosCreator游戏开发中,骨骼动画对于优化系统资源占用有很大帮助,很多时候我们都会使用。对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀~spine骨骼动画工具1:骨骼动画:把动画打散,通过工具,调骨骼的运动等来形成动画2:spine是一个非常流......
  • Cocos Creator常用基础操作总结
    场景操作cc.director.loadScene('场景名称');//场景跳转cc.director.preloadScene('场景名称');//预加载场景cc.director.getScene();//获取当前场景节点操作获取节点常用方法cc.find(“节点路径”)、this.node.getChildByName(“子节点名”)等。varnode=cc.find......