Html5
文章平均质量分 73
弃天笑
多年深耕游戏开发行业,擅长Java游戏服务端,H5,Unity3D、Cocos Creator客户端
展开
-
用WebStorm开发TypeScript
为什么是TypeScript最近在做H5的游戏,最终选定的TypeScript作为开发语言。主要是看重他有强类型和Class,作为习惯使用AS3,Java等强类型编程的人来说,还是习惯这种编程写法。听一些直接使用javascript开发稍微大的游戏的同事说,没有强类调试什么的都比较困难。我个人平时做小游戏用得比较多是纯js,比较大型的倒没尝试,所以这个不好下断论。另外一个主要原因是因为用TypeSc原创 2017-01-07 15:54:33 · 29966 阅读 · 1 评论 -
JavaScript实现H5游戏断线自动重连的技术
断线重连的需求尤其是手机上,会因为网络的不稳定或者其他原因,导致用户的socket链接断开。这个时候如果直接让玩家退出游戏,重新登录,无疑是非常影响用户体验的事情。所以根据这个需求,就有需要程序来实现断线后自动重连回去的技术,是用户能够再次快速开始游戏进行战斗。一、断线重连原理原来其实很简单,就是在断线的时候,根据用户的点击(有些时间短的就不用点击,默认是自动重连回来),程序自动识别,是要刷新重新进原创 2017-08-29 12:45:26 · 12240 阅读 · 8 评论 -
JavaScript Canvas2D实现SpriteSheet角色动画
一、SpriteSheet目前市面上H5游戏的图片资源,基本都是采用SpriteSheet打包成图集来使用的。这样可以减少网络加载的次数,从而提升性能。另外的原因就是随着webgl的普及,把多张图片打包成一张纹理,减少纹理的频繁上传,这样也可以提升性能。本文主要是讨论使用Canvas实现的2D序列帧动画的SpriteSheet的解析和动画播放。二、实现准备使用HTML DOM CanvasRend原创 2017-08-23 20:01:09 · 5270 阅读 · 2 评论 -
解决前端Html5和Egret跨域请求Http数据的例子
最近在做平台的接入,需要做一些像其他web服务器请求相关数据的功能。那么就遇到了一个跨域请求网络数据的问题了。这里记录一下相关的解决方案。一、服务端修改Header最主要是服务端支持服,返回的时候必须增加一个HeaderAddHeader("Access-Control-Allow-Origin","*");实际部署的时候,* 应该修改为指定的域名 2. 客户端使用XMLHttpRequest原创 2017-06-08 20:22:41 · 18946 阅读 · 3 评论 -
H5手游页游的资源版本管理(带Egret例子)
Html5网络游戏和网页游戏,是属于打开浏览器就可以直接玩的,而且是边玩边下载的游戏。 由于每个版本更新,只是更新一小部分资源,如果每次进行版本更新都导致用户重新加载全部游戏资源,那么会导致用户消耗的流量以及不能快速进入游戏,严重影响体验。所以需要对网络资源加载这一块做深入的分析研究,拿出一个资源管理方案。一般浏览器都会有缓存url对应的中资源,只有当url改变的时候才会进行重新加载,根据这个特性原创 2017-08-16 11:12:57 · 8582 阅读 · 3 评论 -
加载zip压缩的javascript代码以及在Egret H5实际应用
随着H5游戏项目越做越大,那么随之而来的javascript也越来越来大。下面是来自实际项目使用的技术分享,从最开始的简单压缩应用到最后的Egret H5项目实战。主要起因是策划对最快进入登录界面有硬性要求(3秒),那么最开始加载的文件越少越小越好。对H5的游戏程序进行压缩,可以大大缩小应用程序的加载时间。本文分两个主题,普通的javascript代码解压使用实际Egret游戏项目的javas原创 2017-07-31 13:30:42 · 9940 阅读 · 20 评论 -
Jenkins搭建Egret H5开发的自动化构建(持续集成)
一、H5游戏开发进行H5游戏开发,不仅仅是开发这边事情,还会涉及到美术、策划、以及测试。所以必须为他们也搭建一些运行程序,以便可以及时地了解和测试到最新的开发进度。同时游戏本身也会分成诸多版本,例如测试版、稳定版、数值版、外服等等。这一列的游戏运行环境,总不能手工去进行游戏开发内容的同步,必须做到自动化,才能提高开发效率。因为必须搭建一个自动化构建服务器来满足这一些的需求。二、自动化构建(持续集成)原创 2017-07-16 23:05:29 · 6291 阅读 · 4 评论 -
创建和调试Egret5.0的WebAssembly项目
一、Egret5.0Egret升级到5.0了,增加了他们说的黑科技:WebAssembly。但是直接使用官方创建5.0的WebAssembly项目例子,竟然无法跑起来。结合了一下4.1.0的版本以及5.0的介绍,查找了相关资料,总算解决了相关问题,可以正常跑起WebAssembly工程了。这里总结一下相关的错误以及开发过程。二、创建WebAssembly项目直接使用EgretWing工具进行创建一个原创 2017-07-04 00:35:00 · 3922 阅读 · 0 评论 -
JavaScript和TypeScript的单例写法(面向对象)
一、单例类的作用在我们平时开发H5游戏过程中,有某别对象,希望在内存中只有一份实例,其他任何地方想要获取到这个实例,只能通过这个类提供的静态方法来获取到实例,而任何地方进行new来进行构造的话,都会报错。总结一下这个单例类的要求这个类只允许进行一个new的调用构造函数行为提供静态方法来访问唯一实例提供重复new会报错的设计具备合理优化的设计模式二、单例设计模式后面是借鉴的AS3的经典写法,原创 2017-06-11 21:56:29 · 13259 阅读 · 0 评论 -
开发H5游戏引擎的选择:Egret或Laya?
一、H5游戏开发的引擎介绍开发H5游戏的引擎有很多,比如egret、laya、cocos-js等等。这里主要是分析的是egret和laya,因为我们团队是从as3转过来的。所以天然地在有as3基因的egret和laya之中挑选一个。Egret Egret Framework是一款使用JavaScript(TypeScript)编写的HTML5开源免费游戏框架。核心定位是开放,高效,优雅。基于原创 2017-06-01 22:20:16 · 76278 阅读 · 36 评论 -
Egret4.1.0的高清文本显示效果设置
用过Egret4.0.3的人都知道,文本显示有点模糊的问题。在论坛上查了资料,回答是4.1.0会进行修复。所以官方一升级引擎,就赶紧对项目进行升级了。先看看官方的升级信息吧:Egret4.1.0 Egret Engine 4.1.0 2017-05-23 更新日志 命令行工具 【新增】引擎提供模块化更新机制,开发者无需担心引擎升级导致其他问题而不升级引擎版本。原创 2017-05-24 12:44:32 · 5618 阅读 · 0 评论 -
同时开发两款H5的ARPG游戏的设计和实践
前话这里主要是想记录一下自己的想法,以及一些设计思想,然后在实际开发过程中,是否会遇到一些自己所想不到的事情,以及怎么的解决过程。事实上,写这种文章,远比写技术性的文章难多了,个人感觉还很难写好。这里写也仅是自己的观点,一种想法和思考,不代表完全正确,共勉而已。一、开发背景两款ARPG游戏,一款相对简单一些,偏挂机的ARPG游戏,另外一款是比较类似传统的ARPG页游。跟传统的项目换皮再上线还是有比较原创 2017-05-21 14:24:51 · 6636 阅读 · 2 评论 -
解决白鹭的EgretWing工具残留多份问题
使用白鹭引擎开发H5,因为用到了白鹭提供的EgretWing工具,目前主要是用来发布。但是偶尔也会调试一下的。但是有个问题,就是经常调试关闭之后,会出现EgretWing残留的问题,导致内存中很多分EgretWing,然后电脑就变卡了。手动删除很麻烦。所以就写了个小脚本来删除,没什么技术含量,纯粹是记录一下,免得到时候重写。 主要是用bat写的:主要是清除掉所有在运行的EgretWing.ex原创 2017-03-24 20:25:42 · 3544 阅读 · 0 评论 -
H5(JavaScript/TypeScript)慎用constructor.name作标识
做个简单的错误笔记,主要是使用js的原型构造函数名字作为唯一key引起的错误。 开发语言:TypeScript/JavaScript 开发工具:白鹭工具和引擎(Egret)prototype.constructor.name引起的错误最近在做项目写底层的时候,为了底层的通讯和便捷性,预先缓存了类(构造函数),其中有一种方式,是通过prototype.constructor.name来作为key绑原创 2017-03-22 20:55:04 · 6171 阅读 · 8 评论 -
网游通讯传输可变长度的数值和数组
何为可变长度的数值(int,long等)其实现在大部分网络游戏(端游、页游、手游都一样),在客户端和服务端通讯,关于数值都会采用可变长度的方式来传输,从简而减小通讯量。 一般情况,客户端和服务端进行网络的socket通讯,都是采用二进制数值来进行的(也有采用字符串)。 可变长度的int是指根据实际的数值在网络传输中动态地改变长度。比如int在传输中可以变为byte,short,从而减少in原创 2017-03-20 21:53:56 · 1239 阅读 · 0 评论 -
WebStorm扩展工具(External Tools)调用Bat脚本小结
最近用java写了个小程序,用来检测TypeScript项目里的js文件,然后在对应的html文件里插入引用,比如<script src=TestModule.js></script>主要的目的是为了每次增加一个TypeScript或者JavaScript文件,然后再自动插入到指定的html文件里面去。这样可以避免我们手动添加文件的步骤。当然,会分测试和正式发布,正式发布会做一些合并之类的功能,不过原创 2017-01-10 20:39:16 · 5673 阅读 · 0 评论 -
Java根据SVN版本号生成H5游戏资源版本
版本号自动化需求H5游戏的庞大资源,每个资源的版本号不可能是手动维护,必须采用脚本或者软件来自动生成。具体的版本号管理的问题,可以看我上篇文章:H5手游页游的资源版本管理。 以及另外一篇关于版本号的文章:Java自动生成H5游戏资源版文件的版本号 这里大部分原理机制是一样,生成的文件基本一样,只是这里是采用同svn的版本号作为资源的版本号,代替了之前版本的日期时间。主要原因是采用时间不太稳定,比如原创 2017-09-30 10:45:34 · 5550 阅读 · 28 评论