
cocosStudio使用注意事项:
1用cocosStudio的合图功能,注意合图的Spacing间隙这个值 设置成2,默认0会有点问题
2比较大的,比如背景图这种,就不要拖到合图中,合图的大小必须是2的n次方,不要超过20482048
3当一个合图里面内容有很多的时候,注意有没有超过合图文件的大小,如果超出,可以更改合图的大小,或者再建一张合图
4有些资源,studio中拖进去了,但是没有放到合图里的,并且csb中也没使用到的,studio是不会发布这个资源的,可以在即将用到的csb的非屏幕范围内,拖进去
5美术使用studio做动画的时候,可以先在自己的studio工程中建好路径,然后让美术也按这样的路径建一个studio工程,等美术弄好之后,只要把对应文件路径下的资源拷贝到你游戏studio工程下面,
然后再拖进工程就行了。如果前期没有沟通好,也没有关系,拿到美术给的studio工程,然后把路径改成自己要的路径,然后再执行上面的步骤就行了。
6当使用基础容器时,如果不需要接受触摸事件的,就把Touchable给关掉,以免把下面的触摸事件给接收掉
主要简单讲解下坐标系统,由于Creator是基于Cocos2dx,也就是使用OpenGL的坐标系,即原点在屏幕左下角,x轴向右,y轴向上。然后讲解下本地坐标与世界坐标,最后讲下坐标转换。
坐标系
基于OpenGL坐标,也就是原点在屏幕左下角,x轴向右,y轴向上。下面讲解的世界坐标也就是与OpenGL坐标系方向一致。
本地坐标
本地坐标是相对于父节点而言的,也就是相对于父节点的位置。通过node的getPosition()来获取坐标。
世界坐标
世界坐标也就是上面说的OpenGL坐标,原点在屏幕左下角,x轴向右,y轴向上。例如触摸事件中得到的坐标就是世界坐标。
锚点
锚点是对应于Node属性中的AnChor。其中(05,05)是位于中心,(0,0)是位于左下角,(0,1)是位于左上角,(1,0)是位于右下角,(1,1)是位于右上角
坐标转换
取得节点的世界坐标
世界坐标转换成某个节点下的坐标
节点的本地坐标转到另一个节点的本地坐标下
最后
通过本文的讲解,希望给新手们有所帮助。坐标转换的应用可以到触摸事件Demo查看。最后还是那句话,喜欢就动动手指点喜欢,关注我吧。我会不定时更新Cocos Creator教程哦~
1创建新工程
打开Cocos Code IDE,切换到Lua工作环境
选择菜单,新建一个Cocos Lua项目,输入项目名:NoOneLeftBehind。
点击下一步设置屏幕方向和分辨率,确认完成
这个时候你就可以点击运行按钮,没有问题的话示例demo就会d出。
因为分辨率被我们更改过的关系,游戏画面有点变形。
2游戏逻辑
现在我们就可以往游戏项目中添加自己的代码了。由于游戏的代码细节并不是本文的重点,所以这里只简单地介绍《一个都不能落下》的实现原理。整个游戏项目源码可以在我的Github上下载。
Amainlua是游戏的入口,在main()函数中我们可以找到场景跳转的代码,这在接口上和Cocos2d-x是保持一致的,因此我们可以很容易上手。在这里我们更改第一个场景为主菜单场景。
--create scene
local scene = require("MenuScene")
local menuScene = scenecreateScene()
if ccDirector:getInstance():getRunningScene() then
ccDirector:getInstance():replaceScene(menuScene)
else
ccDirector:getInstance():runWithScene(menuScene)
end
本文参照官方文档,涉及camera可以参考 Cocos 30 camera
区别于 3D 模型对象,我们将不涉及模型的渲染体统称为 2D 渲染对象。 2D 渲染对象的处理在底层的数据提交上与 3D 模型存在差异,其遵循自己的规则做出了一些针对性的调整以实现更好的效率表现和使用体验。
2D 渲染对象的收集采用树状结构,RenderRoot 节点(带有 RenderRoot2D 组件的节点)为 2D 对象数据收集的入口节点, 所有的 2D渲染对象需在 RenderRoot 节点下才可以被渲染 。
由于 Canvas 组件本身继承 RenderRoot2D 组件 ,所以 Canvas 组件也可以作为数据收集的入口。 2D 渲染节点必须带有 UITransform 组件作为渲染顶点数据、点击或者对齐策略等功能生效的必要条件。
2D 渲染也可以支持对模型进行渲染,唯一的条件是带有模型组件(例如 MeshRenderer/SkinnedMeshRenderer)的节点必须添加 UI/UIMeshRenderer 组件才可以和 UI 在相同的管线上进行渲染。
引擎中所有不拥有的 model 的渲染对象都为 2D 渲染对象。与 3D 对象不同,2D 对象本身不拥有 model 信息,其顶点信息是由 UITransform 组件的 Rect 信息持有并由引擎创建的,且本身没有厚度。由于引擎的设计要求,2D渲染对象需要为 RenderRoot 节点(带有 RenderRoot2D 组件的节点)的子节点才能完成数据的收集 *** 作。
所以 2D 渲染对象的渲染要求有两点:
由于 2D 渲染对象在 Camera 的可见性判断上和 3D 渲染节点并无区别,所以用户需要自己控制节点的 layer 属性并设置 Camera 的 Visibility 来配合进行分组渲染,如果场景中出现多个相机的情况,错误的 layer 设置导致节点重复渲染或不渲染。
这里请 3D 12 版本升级的用户注意,我们纠正了之前的 Canvas 只会渲染其子节点的行为,目前需要用户自己管理节点的 layer 和相机的 Visibility,之前使用了多 Canvas 渲染的用户可能会需要对项目做出调整以达到更合理的场景结构。
>
全文共5000+字,分为8个章节,由本人历时一周整理而来。由于篇幅问题,将本文分为8个章节分开发布。全文 ( 不 ) 详细描述了cocoscreator 引擎的240版本中,web平台的js部分引擎的渲染流程。请将文章配合源码一起食用! 由于我尚在学习引擎源码中,文章可能有不正确的部分,所以我会不断更新内容。如有错误或补充,请留言交流! 全部章节链接: 一: 渲染流程中用到的核心类 二 : 渲染流程详解 三: RenderFlow 的运行逻辑 四: Assembler 的作用 五: ModelBatcher 数据合批 六: 材质系统 全文
以上就是关于cocosStudio使用注意的一些暗坑全部的内容,包括:cocosStudio使用注意的一些暗坑、cocoscreator调是opengl、如何用cocos ide 打开引擎中sample的例子等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)