• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >游戏开发 > h5的canvas做游戏,提高性能最好用几层canvas

h5的canvas做游戏,提高性能最好用几层canvas

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了h5 canvas,h5中canvas,h5 canvas 动画,h5 canvas特效,h5 canvas绘图等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: h5的canvas做游戏,提高性能最好用几层canvas
描述:

我刚刚开始做游戏,有没有大神提示一下,比如人物层,背景层,等等层。之间又是怎样联系的?

没理解我的意思= =

比如穿越火线,进入游戏后,右计分,任务层,还有人物层,背景层等等,是这样吗?


解决方案1:

一个 Canvas 足矣
做游戏的话,建议搞清楚 canvas, layer, sprite等概念

解决方案2:

不是大神,但还是想交流一下。
我前一段时间琢磨了一下canvas开发游戏,看了一下canvas的技术文档之后发现不用引擎去做canvas游戏会很累的。
一是canvas的点击事件需要通过坐标计算来实现,图形本身是不能绑定事件的。
然后在重绘这个方面,canvas本身没有层的概念,图像画上去就分离不了了。
http://tanpok.com/canvas/
这是我做的一个小demo,点击蓝点,加十分,生成下一个蓝点。
点击事件要计算坐标,但是我想如果需要常态点击事件,例如开始游戏之类的,我打算以div做事件处理。
然后言归正传,我是做了两个层,一个背景,一个是蓝点层。
背景层几乎是不动的,这部分能不重绘就不重绘,否则每一帧都全画幅重绘会很傻。
对于canvas多少层恰当,我觉得无论多少层,只要你没有让dom重绘,多少个都无所谓。

解决方案3:

我知道canvas绘制的模型可以自动调用硬件GPU加速,但没有做过h5游戏,所以没有测试过性能,你可以测试一下,用开发者工具或者模拟器可以得到数据

解决方案4:

头一回听说用很多层的。。。

解决方案5:

你还是去找个引擎比较好,从头开始做很麻烦,市面上引擎也有不少了

解决方案6:

  1. 做canvas的游戏,最好从一个引擎入手,入门级别的引擎比如:lufy(JS开源,并且有博客做指导),在实现一些效果之后,再查看源代码学习如果实现;

  2. 你说的这些层,并不用新建那么多的Canvas,一个Canvas足矣;

  3. 原始的canvas并不支持层,这些层都是引擎提供的概念,现市面上的引擎大部分类似Flash,层叫Sprite。

    层的概念:这好比一张JPG图片本身不支持层,但是PhotoShop里面有层的概念,很多张图片组合起来就形成了一个图标,保存成的PSD文件包含了这些信息。最终导出的JPG只是一张图,而Canvas本身就是一张一张的图往上贴,这就要提到FPS,看下一条;
  4. 所谓的FPS为60Hz,是指1秒钟将Canvas画布重绘60次,并且在重绘的过程中计算每一个「物件」、「刚体」的新位置,然后将这些「物件」绘制在对应的坐标上;

  5. 一个Canvas就是一个场景Stage,然后背景是一个层,人物是一个,然后引擎计算人物的坐标,以及背景的坐标,绘制上去。如果有操作,则计算新的位置,重新绘制上去。

  6. 这里的层也有层级概念,类似DIV等,当然,层是引擎实现的,层级也是引擎实现的。

  7. 鼠标点击事件在Canvas里面比较麻烦,入门最好使用引擎来做。

PC游戏都是不停的重绘(通过显卡、CPU),但是一个好的引擎,会通过计算后,发现并不用重绘背景,只重绘一小部分。比如egret引擎,支持脏重绘。(这其实也是Windows的重绘概念,一通百通)


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • h5的canvas做游戏,提高性能最好用几层canvas

相关文章

  • 2017-06-05 MVC40JqueryEasyUIcshtml视图引擎下,生成树
  • 2022-04-30Unity 3D物理管理器(Physics Manager)
  • 2017-06-05 cocos2d-x事件监听封装在自定义的精灵类中
  • 2017-06-05 在利用vlc在cocos2d上播放视频文件时,代码出现的问题
  • 2017-06-05 ITweenRotation这个怎么用啊
  • 2017-06-05 小子新人一枚,目前正在实习期间,WEB游戏开发,遇到了一个问题。。
  • 2017-06-05 win10端游全屏后不接受任何响应
  • 2017-06-05 UGUI-button问题,切换状态的时候,声音没办法播放?
  • 2017-06-05 unity利用Vuforia做AR游戏时识别不了图片
  • 2017-06-05 unity全景图片视频有明显的拼接线怎么处理附图片

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 关于Unity3DNetWork
    • 深圳地区接外包项目
    • cocos2diPhone转cocos2dX再去跨到android效率高吗,还是直接重写一遍好?
    • iOScocos2dx工程和原生工程整合
    • 关于手游更新的一些想法
    • Unity 3D Scene View视图
    • 为什么D3D9!Direct3DShaderValidatorCreate9这个函数没有参数呢?
    • 怎么在电脑上玩安卓游戏这种安卓游戏下雨效果是怎么做的?求思路
    • Unity 3D ToolBar控件
    • 我做了一个canvas游戏,当把地图摄像机放大地图物体时,fps很卡,动画不流畅,怎么破

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有