TypeScript
弃天笑
多年深耕游戏开发行业,擅长Java游戏服务端,H5,Unity3D、Cocos Creator客户端
展开
-
用WebStorm开发TypeScript
为什么是TypeScript最近在做H5的游戏,最终选定的TypeScript作为开发语言。主要是看重他有强类型和Class,作为习惯使用AS3,Java等强类型编程的人来说,还是习惯这种编程写法。听一些直接使用javascript开发稍微大的游戏的同事说,没有强类调试什么的都比较困难。我个人平时做小游戏用得比较多是纯js,比较大型的倒没尝试,所以这个不好下断论。另外一个主要原因是因为用TypeSc原创 2017-01-07 15:54:33 · 29742 阅读 · 1 评论 -
TS/JS错误:TypeError: Cannot read property 'prototype' of undefined
总结一下解决这个错误的引起和过程。 错误信息:TypeError: Cannot read property ‘prototype’ of undefined 开发语言:TypeScript 编译后语言:JavaScript 开发工具:LayaAir今天在调试一个新写的框架的时候,突然出现这个问题。 一般情况下,出现这个问题,是缺乏相应的js文件,但是看了一下html文件,发现相关的js文原创 2017-02-08 19:51:47 · 22494 阅读 · 0 评论 -
JavaScript的Console扩展和输出级别控制
扩展Console的原由Console作为日志输出调试的功能还是很强大的。可以打印正常的日志信息,错误信息(log,info,warn,error)等等,还可以详细详细显示函数调用栈,信息的输出函数名以及代码位置,功能可谓非常强大。 但是有个问题就是无法根据日志的等级来自由控制输出权限。比如我设置一个等级,只能输出warn和error这样。虽然有可能发布的时候,会把Console基本有从代码中原创 2017-03-09 19:49:51 · 6989 阅读 · 2 评论 -
网游通讯传输可变长度的数值和数组
何为可变长度的数值(int,long等)其实现在大部分网络游戏(端游、页游、手游都一样),在客户端和服务端通讯,关于数值都会采用可变长度的方式来传输,从简而减小通讯量。 一般情况,客户端和服务端进行网络的socket通讯,都是采用二进制数值来进行的(也有采用字符串)。 可变长度的int是指根据实际的数值在网络传输中动态地改变长度。比如int在传输中可以变为byte,short,从而减少in原创 2017-03-20 21:53:56 · 1193 阅读 · 0 评论 -
H5(JavaScript/TypeScript)慎用constructor.name作标识
做个简单的错误笔记,主要是使用js的原型构造函数名字作为唯一key引起的错误。 开发语言:TypeScript/JavaScript 开发工具:白鹭工具和引擎(Egret)prototype.constructor.name引起的错误最近在做项目写底层的时候,为了底层的通讯和便捷性,预先缓存了类(构造函数),其中有一种方式,是通过prototype.constructor.name来作为key绑原创 2017-03-22 20:55:04 · 5968 阅读 · 5 评论 -
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 · 5521 阅读 · 0 评论 -
JavaScript和TypeScript的单例写法(面向对象)
一、单例类的作用在我们平时开发H5游戏过程中,有某别对象,希望在内存中只有一份实例,其他任何地方想要获取到这个实例,只能通过这个类提供的静态方法来获取到实例,而任何地方进行new来进行构造的话,都会报错。总结一下这个单例类的要求这个类只允许进行一个new的调用构造函数行为提供静态方法来访问唯一实例提供重复new会报错的设计具备合理优化的设计模式二、单例设计模式后面是借鉴的AS3的经典写法,原创 2017-06-11 21:56:29 · 13052 阅读 · 0 评论 -
创建和调试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 · 3861 阅读 · 0 评论 -
H5手游页游的资源版本管理(带Egret例子)
Html5网络游戏和网页游戏,是属于打开浏览器就可以直接玩的,而且是边玩边下载的游戏。 由于每个版本更新,只是更新一小部分资源,如果每次进行版本更新都导致用户重新加载全部游戏资源,那么会导致用户消耗的流量以及不能快速进入游戏,严重影响体验。所以需要对网络资源加载这一块做深入的分析研究,拿出一个资源管理方案。一般浏览器都会有缓存url对应的中资源,只有当url改变的时候才会进行重新加载,根据这个特性原创 2017-08-16 11:12:57 · 8412 阅读 · 3 评论