Cocos2d-JS 性能优化

抖音很火的召唤神龙的小游戏完整代码-召唤神龙 抖音很火的解压小游戏,完整代码分享。有兴趣的可以试着写一下。 1. index <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>召唤神龙</title> <!--http://www.html5rocks.com/en/mobile/mobifying/--> <meta name="viewport" .. 阅读详情
缓存的创建和清除
为了提供性能,Cocos2d-JS提供了几个缓存,分别应用与不同的情况。这些 缓存类有纹理缓存,精灵帧缓存,动画 缓存和着色器缓存。
场景与资源
不同的场景中资源的占用不同,而资源的占用决定了缓存创建和清除的时机。
 场景与资源
不同的场景中资源的占用不同,而资源的占用决定了缓存创建和清除的时机。
缓存创建和清除时机
使用纹理和精灵帧缓存时,一个原则是:“尽可能将所有资源加载到缓存”。
事实上作为游戏开发人员,需要照顾那些配置比较低的设备。用户不可能采用“尽可能将所有资源加载到缓存”一刀切的方式。但是可采用将缓存分为短周期和长周期的方式。
1.短周期缓存中内容一方面玩家花费的时间短,另一方面不跨场景,没有必要长时间缓存。
可以在该场景进入函数onEnter()中创建缓存。在该场景退出函数onExit()中清除。
注意:一定要慎重使用在onExit()函数中的removeSpriteFrames()函数,removeSpriteFrames()会清除素有缓存里的帧。
2.长周期缓存
长周期缓存中内容一方面玩家花费时间长,另一方面可能跨场景。为了获得流畅的用户体验,不能经常反复创建和清除缓存。而是长时间缓存。长周期缓存可以分为两种情况:贯穿整个游戏的长周期缓存和关卡长周期缓存。
贯穿整个游戏长周期缓存
贯穿整个游戏长周期缓存是在游戏刚刚启动时,给用户展示Loading等信息时创建的缓存。
关卡长周期缓存
关卡长周期缓存是开始某个特定关卡等场景时场景的缓存。
清除的时候与贯穿整个游戏长周期缓存类似。一般不需要考虑清楚缓存的问题。
图片与纹理优化
背景图片的优化
1.不要Alpha通道
2.拼图
3.加载到纹理缓存的时机
4.考虑使用瓦片地图
JSB内存管理
 JavaScript语言有自己的内存管理机制,它是自动内存回收的。而在Cocos2d-JS中的JSB是通过Cocos2d-x在本地平台运行的。那么JSB的内存管理就离不开Cocos2d-x内存管理约束。
因此,使用Cocos2d-js引擎开发游戏的时候,如果游戏运行于Web平台,他的内存管理是采用JavaScirpt固有的内存管理机制。如果游戏运行与JSB本地平台。那么引擎提供的特有对象,采用Cocos2d-x引用计数内存管理方式。
使用Bake层
Cocos2d-JS引擎开发的游戏运行于Web平台的时候,如果采用Canvas模式渲染场景中不怎么变动的内容,则会消耗大量的渲染时间。Canvas模式渲染过程是调用drawImage绘制场景中的对象。即便静止不动也会逐一进行绘制。但是同样的渲染内容,对于OpenGL和WebGL渲染就不会有太大性能开销。
针对Cocos2d-JS中的Web平台Canvas渲染模式,可以使用Bake层,Bake层可以将本身以及其子节点都备份到Canvas上。只要自身或其子节点不做修改,下次绘制时,将直接把Canvas上的内容一次渲染出去。这样,原来需要多次的渲染过程,现在只需要一次就可以完成了。
注意:如果是经常变化的节点对象,采用Bake层渲染不仅不会提高性能,反而会影响性能。
使用对象池
对象池类cc.pool、放入到池中的对象需要实现unuse和reuse函数。unuse函数是对象被放入池中时调用。reuse函数是从池中获得重用对象时使用的。
在使用对象池cc.pool时需要往对象池中添加对象。
cc.pool.putInPool(object)
当调用putInPool()函数添加对象时,cc.pool底层将调用object.unuse()函数进行初始化处理。
为了从对象池中查找对象可以通过如下语句实现:
var object =cc.pool.getFromPool(“MySprite”,args);
getFromPool()函数中的MySprite是类名,args是参数。通过这个类名和args参数可以获得可重用对象。如果返回值为空,则说明没有找到合适的可重用对象,在对象被返回之前,cc.pool底层将调用reuse函数。并用参数args来初始化该对象。
在使用getFromPool()函数查找对象之前,最好使用如下函数判断一下池中是否存在可重用对象:
var exist=cc.pool.hasObject(“MySprite”);
从池中删除一个对象可以使用如下代码:
cc.pool.removeObj(object);
清空整个池可以使用如下代码:
cc.pool.drainAllPeople();
Web平台需要搭建Web服务器,Web服务器的主要功能是提供网上信息浏览服务。
1.Apache
Apache HTTP Server仍然是世界上用的最多的Web服务器,市场占有率达60%左右。它的成功之处主要在于它的源代码开发支持跨平台的应用。可以运行在几乎所有的UNIX、Windows、Linux系统平台上
2.Tomcat
Tomcat是一个开放源代码。运行Servlet和JSPWeb应用软件的基于Java的Web应用软件容器。
3.IIs
Microsoft的Web服务器产品为Internet Information Services(IIS),IIS是允许在公共Intranet或Internet上发布信息的Web服务器,IIS是目前最流行的Web服务器产品之一。 
4.WebSphere
WepSphere Application Server是一种功能完美、开放的Web应用程序服务器,是IBM电子商务计划的核心部分。他是基于Java的应用环境,用于建立、部署、和管理Internet和Internet Web应用程序
5.WebLogic
Oracle WebLogic Server是一种多功能、基于标准的Web应用给服务器,为企业构建自己的应用提供了坚实的基础。Oracle WebLogic Server在使应用服务器成为企业应用架构的基础方面继续处于领先地位。
【cocos2dx面试题干货】--2021年最新cocos2dx面试干货(引擎篇) 【cocos2dx面试题干货】--2020年度最新cocos2dx面试干货(引擎篇 ) 大家好,我是Lampard~~ 经过春招一番艰苦奋战之后,我终于是进入了心仪的公司。 今天给大家分享一下我在之前精心准备的一套面试知识。 由于我面试的岗位是cocos2dx的开发岗,今天就先给大家分享一下引擎方面的知识。 本人亲测80%的引擎相关题目都... 阅读详情

相关推荐

cocos2d-js-min.9c507.js

cocos2d-js-min.9c507.js

【cocos2d-js官方文档】十九、Cocos2d-JS单文件引擎使用指引

这篇指引主要介绍如何使用从在线下载工具下载下来的Cocos2d-JS的单文件引擎。 你有可能下载了下面三个版本中的一个: Cocos2d-JS Full Version: 完整版引擎包含Cocos2d-JS引擎的所有功能特性以及所有扩展,使用这个版本可以帮助你发掘Cocos2d-JS令人惊艳的创造力和可能性。你可以从官方文档首页中查看Cocos2d-JS所支持的特性列表。 C

qinning199的专栏 6924

在支持HTML5的浏览器上运行WebGL程序的方法

主要介绍了在支持HTML5的浏览器上运行WebGL程序的方法,文中列举了一个hello world立方体动画的运行实例,需要的朋友可以参考下

Cocos Creator 微信小游戏平台启动与包体优化

本篇内容适用于微信小游戏平台,引擎版本:Cocos Creator v2.4,测试数据由微信云测试平台提供。小游戏平台与启动加载/首屏渲染如果不了解首屏渲染是什么,以下是官方文档和一篇优化帖子:[微信官方性能优化指南][微信小游戏首屏启动优化]有一个官方文档没提到的细节是这个耗时统计也包括开放域项目的耗时,所以如果你的微信小游戏有子域,也记得要一起优化。本篇所提到的优化首屏渲染的方法,能有效降低微...

Cocos的博客 999

因时机器人-灵巧手配置方案(Ubuntu18.04)

因时机器人-灵巧手配置方案(Ubuntu18.04)

CH_monsy的博客 3851

视频监控设备(NVR、IPC等)如何通过国标GB28181接入到视频监控平台,以及接入过程如何测试视频接入是否成功

GB/T28181标准广泛的应用,视频监控设备通过国标GB28181接入视频监控平台的过程变成程序化、标准化的互联过程,确保了视频监控设备能够在不同系统、不同网络环境下实现远程、跨区域、跨级别的访问和控制。版本有GB28181-2011、2016、2022几个常用版本,威迪斯特的视频监控平台完全支持GB28181的这几个版本,能够实现不同品牌视频监控设备的国标视频接入(国标视频监控接入),或者为国标28181视频接入(国标28181视频监控接入),也为国标281818接入(国标GB/T28181接入。

weixin_70208651的博客 1万+

从硬件报告到可写盘的黑苹果 EFI:OpCore-Simplify 四步上手指南

装黑苹果最磨人的往往不是系统本身,而是配 OpenCore 引导:对设备 ID、挑 kext(可理解为驱动组件)、手写 ACPI 补丁,一套流程下来能折腾好几天。OpCore-Simplify 就是为这一步而生的命令行工具——你导入一份硬件报告,它自动完成兼容判断、补丁与驱动选配,四步操作就能在 Results/ 目录里生成一套完整可写盘的 EFI。 ## 从硬件报告到成品 EFI 的最短路径

gitblog_00018的博客 217

ENVI5.6 自动化流程:GF系列卫星影像批处理与质量优化

本文详细介绍了如何利用ENVI5.6构建针对GF-2、GF-6、GF-7系列卫星影像的自动化批处理流水线。通过配置Batch Processing工具,实现从正射校正到图像融合的全流程批量处理,并分享参数设置、质量监控与故障排查的实战经验,旨在显著提升海量遥感影像的处理效率与成果质量。

efc1234567的博客 604

Cocos2d-JS 精灵的性能优化

1.使用纹理图集 纹理图集已称为精灵表,它是把许多小的精灵图片组合到一张大图里面,使用纹理图集(或精灵表)有如下主要优点: (1)减少文件读取次数,读取一张图片比读取一堆小文件要快 (2)减少渲染引擎的绘制调用并且加速渲染 (3)Cocos2d-JS全面支持Zwoptex和TexturePacker,所以创建和使用纹理图集是很容易的。 通常使用纹理图集制作工具Zwoptex和Textur

AiCoding_D的博客 2258

UReport2 报表设计器 在线表格

UReport2官网 一、UReport2报表设计器 UReport2是一个开源的可视化报表设计器,功能强大,操作简单,可以实现复杂的报表统计,有各种各样的导出和打印功能,支持导入Excel表格! 1、报表设计器 2、设计一个简单的用户列表展示 二、可编辑表格 扩展了layui的表格,支持多元化数据编辑(单选,多些、日期、下拉联动),开发简单、高效、便捷。有了它就可以轻松开发类似进销存系统的表格录入功能了,用户拿来即用! 三、主从表录......

ejinxian的专栏 2万+

使用Qt Creator调用eBUS SDK

在新界面,勾选左下角“ Show unreachable Network Devices",可以看到没有成功连接的网络相机,原因是IP地址配置错误。每个版本的OpenCV的依赖项的名字都不同,我这里是opencv_world490.lib与opencv_world490d.lib。函数,可以看到在这里是图像缓存区,能够对捕获的图像进行一些操作。在Visual Studio打开项目属性,在VC++目录这里,把Opencv的路径添加进去。这时,会自动跳转到mainwindow.cpp,生成该按钮对应的槽函数。

qq_35685051的博客 1289

cocos2d-js实战开发:打造跨平台游戏MoonWarriors的完整流程

想要使用JavaScript开发跨平台游戏?cocos2d-js是你的最佳选择!🚀 作为Cocos2d-x引擎的JavaScript版本,cocos2d-js让游戏开发变得前所未有的简单。本文将带你一步步了解如何使用cocos2d-js开发经典的飞行射击游戏MoonWarriors,从环境搭建到最终发布,掌握完整的跨平台游戏开发流程。 ## 📋 什么是cocos2d-js? cocos2d

gitblog_00909的博客 341

解决 maven编译项目-Fatal error compiling: 无效的目标发行版: 21 -> [Help 1]

惊奇的发现,maven没有用环境变量中设置好的JAVA_HOME目录,至此发现错误原因,原来执行java -version默认使用系统环境变量JAVA_HOME,而maven优先使用了windows的用户变量JAVA_HOME(这里之前忘记修改,仍然指向java8路径),修改用户变量JAVA_HOME指向java21或删除该用户变量JAVA_HOME(如无它用)后即可。打开maven包所在的目录,在maven的配置文件 mvn.cmd 文件中,设置java_home的目录。

litlit023的专栏 1801

如何快速上手cocos2d-js:从零开始的10分钟入门教程

想要快速掌握跨平台JavaScript游戏开发吗?cocos2d-js作为一款强大的开源游戏引擎,让您能够使用JavaScript语言开发出可在Web浏览器和原生平台(iOS、Android、Windows、Mac)上运行的游戏。本教程将带您从零开始,在10分钟内完成第一个cocos2d-js游戏项目,体验"一次编写,到处运行"的开发魅力。🎮 ## 📋 环境准备与项目创建 ### 一键安装

gitblog_00815的博客 150

使用 Fargate 在 AWS ECS 上运行 Spring Boot 应用程序

本文介绍了使用AWS Fargate支持的ECS部署SpringBoot应用的完整流程。主要内容包括:1)将SpringBoot应用打包为Docker镜像并推送至ECR;2)创建任务定义配置CPU、内存和网络等参数;3)设置ECS服务管理任务运行;4)配置负载均衡器分配流量;5)设计VPC网络和安全组规则确保安全访问;6)使用SSM参数存储管理敏感信息。整个过程实现了无服务器化部署,既保持了应用控制权,又免除了基础设施管理负担,是扩展Web服务的可靠方案。

介绍AWS Azure GCP devops Terraform 等技术 512

小红书urlscheme和Activity

本文档详细介绍了小红书App的Deeplink跳转规范,涵盖了多个功能模块的跳转协议。主要内容包括:主页各Tab(关注、发现、购买)的跳转方式;不同类型笔记(图文/视频/长笔记)的详情页跳转参数;用户相关页面(主页/绑定/资料/消息等)的跳转协议;搜索功能(输入页/结果页)的跳转方式;以及话题、标签、专辑、H5页面等特殊场景的跳转实现。文档还提供了各跳转协议所需的参数说明,包括参数类型、默认值、是否必填等详细信息,并标注了不同版本和平台的兼容性要求。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 786

cocos2d-JS 性能优化 - 对象缓冲池 ( cc.pool )

对象缓冲池 ( cc.pool ) : 作用 :优化创建效率 , 尤其是针对需要多次创建的情况 . 缓冲池 API :缓冲池 ( cc.pool ) 提供的函数并不多 , 只有5个 . cc.pool.putInPool(obj); //将对象放入缓冲池 cc.pool.hasObject(objClass); //判断缓冲池是否存在可用的指定对象 cc.poo

Yu 4872

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

cocos2d-js 界面优化

测试环境: iphone4、iOS6.1.2、chrome 37.2062.60,Cocos2d-js 3.6   之前写了不少,实际项目也按这个去优化了,也有效果,但到最后才发现,尼玛,之前都搞错了,之所以有效果是歪打正着。。。。这次就直接总结一些得到的结论算了吧   0、pc 端浏览器大部分都支持 webGL,移动端浏览器大部分都还是 canvas 渲染模式,最新的 i

Cleve_baby的博客 515

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Rainbond 内置 etcd gRPC Proxy 全解析:无状态 L7 反向代理的原理、配置与实战

etcd gRPC Proxy 是一个运行在 gRPC 层(L7)的无状态 etcd 反向代理,核心价值在于降低核心 etcd 集群的整体处理负载:通过合并(coalescing)Watch 与 Lease API 请求实现水平扩展,通过缓存 key range 请求保护集群免受滥用客户端冲击。本文以 Rainbond 仓库内置的 etcd 源码([grpc_proxy.md](https://l

gitblog_00954的博客 242

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

bake 前端cocos2d_Cocos2d-JS项目之UI界面的优化

测试环境: iphone4、iOS6.1.2、chrome 37.2062.60,Cocos2d-js 3.6之前写了不少,实际项目也按这个去优化了,也有效果,但到最后才发现,尼玛,之前都搞错了,之所以有效果是歪打正着。。。。这次就直接总结一些得到的结论算了吧0、pc 端浏览器大部分都支持 webGL,移动端浏览器大部分都还是 canvas 渲染模式,最新的 iPhone6以上(ios8+)、小米...

weixin_29001655的博客 156

Cocos2d-JS项目之UI界面的优化

测试环境: iphone4、iOS6.1.2、chrome 37.2062.60,Cocos2d-js 3.6 之前写了不少,实际项目也按这个去优化了,也有效果,但到最后才发现,尼玛,之前都搞错了,之所以有效果是歪打正着。。。。这次就直接总结一些得到的结论算了吧 0、pc 端浏览器大部分都支持 webGL,移动端浏览器大部分都还是 canvas 渲染模式,最新的 iPhone6以上...

weixin_30577801的博客 75

bake 前端cocos2d_Cocos2d-JS项目之四:UI界面的优化

测试环境: iphone4、iOS6.1.2、chrome 37.2062.60,Cocos2d-js 3.6之前写了不少,实际项目也按这个去优化了,也有效果,但到最后才发现,尼玛,之前都搞错了,之所以有效果是歪打正着。。。。这次就直接总结一些得到的结论算了吧0、pc 端浏览器大部分都支持 webGL,移动端浏览器大部分都还是 canvas 渲染模式,最新的 iPhone6以上(ios8+)、小米...

weixin_33374400的博客 157

如何用cocos2d-js动作系统与特效打造生动游戏:5个关键技巧指南

cocos2d-js是一款强大的HTML5游戏引擎,它提供了完整的动作系统和特效功能,让游戏开发者能够轻松创建流畅的动画效果。无论你是游戏开发新手还是经验丰富的开发者,掌握cocos2d-js的动作系统与特效技巧都能显著提升游戏的表现力。本文将为你揭示5个关键技巧,帮助你快速掌握这个强大的游戏动画工具。 ## 🎮 1. 基础动作类型:移动、旋转、缩放的核心技巧 cocos2d-js的动作系统

gitblog_00412的博客 998

Cocos2d-JS项目之四:UI界面的优化

测试环境: iphone4、iOS6.1.2、chrome 37.2062.60,Cocos2d-js 3.6 之前写了不少,实际项目也按这个去优化了,也有效果,但到最后才发现,尼玛,之前都搞错了,之所以有效果是歪打正着。。。。这次就直接总结一些得到的结论算了吧 0、pc 端浏览器大部分都支持 webGL,移动端浏览器大部分都还是 canvas 渲染模式,最新的 iPhone...

weixin_30364325的博客 68
上一篇: Cocos2d-JS 基于HTTP网络通信
下一篇: mac电脑开发android找不到设备
AiCoding_D
博客等级 码龄11年 4粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值