cocos2d-x

Cocos Creator 通用框架设计 —— 资源管理

筅森魡賤 提交于 2020-07-27 04:48:39
如果你想使用Cocos Creator制作一些规模稍大的游戏,那么资源管理是必须解决的问题,随着游戏的进行,你可能会发现游戏的内存占用只升不降,哪怕你当前只用到了极少的资源,并且有使用cc.loader.release来释放之前加载的资源,但之前使用过的大部分资源都会留在内存中!为什么会这样呢? cocos creator 资源管理存在的问题 资源管理主要解决3个问题,资源加载,资源查找(使用),资源释放。这里要讨论的主要是资源释放的问题,这个问题看上去非常简单,在Cocos2d-x中确实也很简单,但在js中变得复杂了起来,因为难以跟踪一个资源是否可以被释放。 在Cocos2d-x中我们使用引用计数,在引用计数为0的时候释放资源,维护好引用计数即可,而且在Cocos2d-x中我们对资源的管理是比较分散的,引擎层面只提供如TextureCache、AudioManager之类的单例来管理某种特定的资源,大多数的资源都需要我们自己去管理,而在cocos creator中,我们的资源统一由cc.loader来管理,大量使用prefab,prefab与各种资源复杂的引用关系增加了资源管理的难度。 资源依赖 资源A可能依赖资源B、C、D,而资源D又依赖资源E,这是非常常见的一种资源依赖情况,如果我们使用 cc.loader.loadRes("A") 加载资源A,B~E都会被加载进来

曾经我也有一个做游戏的梦想,这几本游戏开发的书籍推荐给为未来的游戏工程师

[亡魂溺海] 提交于 2020-07-25 09:11:47
​ 想当年,我也是一名想做游戏开发的程序员,大学的时候照葫芦画瓢做了一个半成品的《炉石传说》一度让我以为我将来会成为一名游戏开发工程师,可惜后来我被C++的学习成本给全退了,于是乎和游戏开发这一领域从此是路人。 虽然现在也不能说这个选择到底是否正确,但是我对于游戏的热爱还是没怎么减少,只不过再也没时间玩了(o(╥﹏╥)o)今天我就来推荐一些关于游戏开发的游戏书籍,如果你刚好也是游戏开发爱好者,那么希望这些数据可以帮你指出一条明路。 这里主要推荐的是游戏开发入门、cocos2d、unity3d等常见游戏引擎的书籍,最后则是关于游戏引擎方面的书籍,不过不得不说的是,国内的游戏大厂确实越来越少了。 游戏开发书单 ​ 游戏开发 世嘉新人培训教材 《游戏开发:世嘉新人培训教材》全面介绍了游戏开发人员需要掌握的相关技术知识。内容由浅入深,从命令行游戏开发讲起,然后介绍如何开发简单的2D游戏,最后介绍如何开发出一个包含模型和动画的3D游戏,涵盖了计算机图形学(3DCG、2DCG、字体、光照、动画)、计算机运算(碰撞处理、计算误差)、编程(模块化、bug预防、性能优化)、游戏处理(状态迁移、实时处理、加载)和声音处理等知识。 作者简介 平山尚(作者) 1977年生于日本北海道,曾在京都大学研究生院工学研究科进行基因研究,毕业后进入世嘉株式会社,参与了《电脑战机》(PS2)、《超级网球大奖赛3》

Cocos Creator 通用框架设计 —— 资源管理

淺唱寂寞╮ 提交于 2020-07-24 20:25:10
如果你想使用Cocos Creator制作一些规模稍大的游戏,那么资源管理是必须解决的问题,随着游戏的进行,你可能会发现游戏的内存占用只升不降,哪怕你当前只用到了极少的资源,并且有使用cc.loader.release来释放之前加载的资源,但之前使用过的大部分资源都会留在内存中!为什么会这样呢? cocos creator 资源管理存在的问题 资源管理主要解决3个问题,资源加载,资源查找(使用),资源释放。这里要讨论的主要是资源释放的问题,这个问题看上去非常简单,在Cocos2d-x中确实也很简单,但在js中变得复杂了起来,因为难以跟踪一个资源是否可以被释放。 在Cocos2d-x中我们使用引用计数,在引用计数为0的时候释放资源,维护好引用计数即可,而且在Cocos2d-x中我们对资源的管理是比较分散的,引擎层面只提供如TextureCache、AudioManager之类的单例来管理某种特定的资源,大多数的资源都需要我们自己去管理,而在cocos creator中,我们的资源统一由cc.loader来管理,大量使用prefab,prefab与各种资源复杂的引用关系增加了资源管理的难度。 资源依赖 资源A可能依赖资源B、C、D,而资源D又依赖资源E,这是非常常见的一种资源依赖情况,如果我们使用 cc.loader.loadRes("A") 加载资源A,B~E都会被加载进来

Why my OpenGL custom shader gives me this error?

醉酒当歌 提交于 2020-07-21 09:08:27
问题 I'm using a custom shader with cocos2d 3.17 for my macOS app on XCode11 but I have some troubles. myShader.frag #ifdef GL_ES precision lowp float; #endif uniform sampler2D u_texture; varying lowp vec4 v_fragmentColor; uniform mat4 u_rotation; void main() { mat4 t1= mat4(1); mat4 t2= mat4(1); t1[3] = vec4(-0.5,-0.5,1,1); t2[3] = vec4(+0.5,+0.5,1,1); vec2 pos = (t2 * u_rotation * t1 * vec4(gl_PointCoord, 0, 1)).xy; gl_FragColor = v_fragmentColor * texture2D(u_texture, pos); } myShader.vert

基于cocos2dx -js h5项目优化记录

心已入冬 提交于 2020-05-01 23:35:19
在记录优化内容前选搞清楚web渲染流程的四个主要步骤: 解析HTML生成DOM树 - 渲染引擎首先解析HTML文档,生成DOM树 构建Render树 - 接下来不管是内联式,外联式还是嵌入式引入的CSS样式会被解析生成CSSOM树,根据DOM树与CSSOM树生成另外一棵用于渲染的树-渲染树(Render tree), 布局Render树 - 然后对渲染树的每个节点进行布局处理,确定其在屏幕上的显示位置 绘制Render树 - 最后遍历渲染树并用UI后端层将每一个节点绘制出来 以上步骤是一个渐进的过程,为了提高用户体验,渲染引擎试图尽可能快的把结果显示给最终用户。它不会等到所有HTML都被解析完才创建并布局渲染树。它会在从网络层获取文档内容的同时把已经接收到的局部内容先展示出来。 优化思路:   为了保障首屏内容的最快速显示,就需要做资源的拆分,那么以什么粒度拆分、要不要拆分,不同页面、不同场景策略不同。以达到渐进式页面渲染 优化内容: 1.html文件内容整理:   1.html文件中剥离css代码和非必要js代码,尽量不要融合到一起,毕竟多种代码混合会给你管理页面代码带来极大的负担。而且html文件内容复多少会影响html页面加载速度。   2.html文件中加载css文件     只下载和首屏页面布局有关文件,其他css文件等游戏启动后在空闲时间偷偷下载或者使用前夕再下载

从零开始学习cocoStudio(1)--cocoStudio是什么?

爱⌒轻易说出口 提交于 2020-04-30 14:01:57
一、cocoStudio是什么? CocoStudio是一套专业的永久免费的游戏开发工具集,帮助开发者快速创建游戏资源,将大部分繁琐的游戏开发工作使用编辑器来快速制作,CocoStudio包含了游戏开发中核心的几个游戏编辑器,UI编辑器、动画编辑器、场景编辑器、数据编辑器,用于处理游戏中的UI界面、动画资源、游戏场景、游戏数据,针对于开发团队中不同的职业进行深度设计,规范了整个开发流程,让开发团队中每个人各执其职,发挥自己最大的作用。从而达到高效率,高质量,低风险,低成本的效果。 二、CocoStudio核心编辑器 CocoStudio研发团队在经历长期的游戏开发和技术研发后,总结出游戏中必须的四套工具,功能分别如下: 1.动画编辑器: 用于编辑游戏中使用的角色动画、特效动画、场景动画等动态的游戏资源。主要使用人员是美术设计师,美术设计师可以将绘制好的图片资源导入到动画编辑器中,然后按照策划设计来编辑各种动画效果,并且在编辑器中演示编辑后的内容。动画编辑器支持关键帧动画,序列帧动画,骨骼动画等多种动画编辑方式。并支持碎图导出,整图导出等多种资源优化方式。同时动画编辑器支持对Flash,PSD,Plist资源的解析。 2.UI编辑器: 用于编辑游戏中的所有的图形界面,主要使用人员是美术设计师。美术设计师可以将绘制好的界面图片资源导入到UI编辑器中,按照相应的设计方案来摆放、设计、编辑

手机游戏加密那点事儿_2d资源加密_1

♀尐吖头ヾ 提交于 2020-04-28 09:33:44
版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/chengyingzhilian/article/details/25076419 本文章讲述利用cocos2d-x 开发手机游戏的一些加密心得。 如有问题。请多指正。 很多其它信息详见: http://blog.csdn.net/chengyingzhilian/article/details/25540441 本文地址: http://blog.csdn.net/chengyingzhilian/article/details/25076419 好了,进入本文的主题—— 资源加密 : 关于图片资源的打包当然是採用 TexturePacker 了。 官方网址: http://www.codeandweb.com/texturepacker 个人认为是2d里面最好的资源打包工具,没有之中的一个。 TexturePacker它是一款把若干资源图片拼接为一张大图的工具。 TexturePacker能够直接选定一个目录,将里面的小图片生成一个大图片。并输出plist文件的工具。 使用该工具,合图就很easy了。TexturePacker自带有资源加密的功能。 关于怎样使用。 在此不再赘述。可自行搜索教程。 在此仅仅想说明两点网上很少提及的: 1.命令行。 2.加密。 一、命令行

cocos creator 入门理解点

二次信任 提交于 2020-04-27 08:38:36
  简单解释, 【来源:官方文档】  Cocos是触控科技推出的游戏开发一站式解决方案,包含了从新建立项、游戏制作、到打包上线的全套流程。开发者可以通过cocos快速生成代码、编辑资源和动画,最终输出适合于多个平台的游戏产品。 Cocos的主要产品有Cocos Studio、Cocos2d-x(Cocos Framework)、Cocos Code IDE。 Q : Cocos Creator 是游戏引擎吗? A : 它是一个完整的游戏开发解决方案,包括了 cocos2d-x 引擎的 JavaScript 实现(不需要学习一个新的引擎),以及能让你更快速开发游戏所需要的各种图形界面工具 Q : Cocos Creator 的编辑器是什么样的? A : 完全为引擎定制打造,包含从设计、开发、预览、调试到发布的整个工作流所需的全功能一体化编辑器 Q : 我不会写程序,也能使用 Cocos Creator 吗? A : 当然!Cocos Creator 编辑器提供面向设计和开发的两种工作流,提供简单顺畅的分工合作方式。 Q : 我使用 Cocos Creator 能开发面向哪些平台的游戏? A : Cocos Creator 目前支持发布游戏到 Web、Android 和 iOS,以及点开即玩原生性能的 Cocos Play 手机页游平台,真正实现一次开发,全平台运行。 Q :

cocos2dx blender 骨骼动画实现

不羁的心 提交于 2020-04-22 04:05:16
前言 cocos2d-x 中相关部分代码介绍 背景知识介绍 参考 http://www.3dkingdoms.com/weekly/weekly.php?a=4 一 简单3d 模型支持 第一步实现对3d 模型的简单支持,完成一个CCSprite3D 类 参考CCSprite 类 以及 CCGLProgram 代码 主要修改 draw 方法。 添加了定点数组pos 绘制索引数组index. 以及若干 3d 变换相关的成员方法 平移 旋转 缩放。 对draw方法的改造,首先增加对opengl 矩阵进行计算的stdTransform, 将3d空间中的变换 矩阵乘到 MV 矩阵上面。 注意cocos2d 使用了两种投影方式,一种是 平行投影,一种是3d 透视投影,默认使用的3d 投影, 这种方式下MV矩阵也被修改,将坐标原点移动到了屏幕的右下角。 3d绘制需要 开启depth_test 深度测试。 之后只需要将顶点数组传入vertexAttribPointer 中 将索引数组传给glDrawElements 中即可. 测试时可以手动写一个 正方体的 顶点数组数据。 注意要对模型进行一定的缩放,否则屏幕上面会看不到。 使用 画 line 以及 画顶点 方式 绘制 可以用来调试。 二 3d 模型 基本变换支持 http://en.wikipedia.org/wiki

cocos2d-x 4.0 版本修改点

扶醉桌前 提交于 2020-04-13 20:44:04
【今日推荐】:为什么一到面试就懵逼!>>> 转自: https://discuss.cocos2d-x.org/t/cocos2d-x-v4-0-released/48487 Features support metal on iOS/macOS use CMake for all platforms update GLFW to 3.3 update minizip to 1.2 remove deprecated functions remove h5 engine and JSB remove tiff remove SimpleAudioEngine remove experimental namespace fix bug that system font can not work correctly on macOS 15 fix lua crash on 64-bit devices fix bugs for iOS 13 UIWebView uses WKWebView instead VideoPlayer uses AVPlayerController instead 点赞 收藏 分享 文章举报 haima1998 发布了229 篇原创文章 · 获赞 244 · 访问量 179万+ 他的留言板 关注 来源: oschina 链接: https://my