网页版的传奇3,可惜半途而废了。
发布于 10 年前 作者 coordcn 10016 次浏览 最后一次编辑是 8 年前

2011年写的,回过头来看,那个时候的代码很是难看啊。 传送门

我们不能打一辈子星际,但可以做一辈子朋友。 我们不能打一辈子传奇,但可以做一辈子兄弟。

17 回复

顶,同是被传奇毒害的80后~

绝对谈不上毒害,青春无悔。

源码太挫了,用chrome查看源码就看到了。

为啥加了这么多js,页面打开速度还是这么快呢?

@chapgaga 加载速度不快,估计是因为文件本身很小,图片(png)和数据(js)都是ajax获取的。还有可能是304缓存的作用,加载一次,以后就快很多。

异步获取,如果没有实际获取,就不绘制。更好的办法或许是在没有获取到需要的数据的时候,用一些通用的图片代替绘制,否则就会出现透明人或怪。

这个代码已经没有什么价值了,数据组织上可能还有点参考价值。现在要重写的话,我可能会直接用cocos2d,毕竟webgl在效率上要比canvas好很多。图片长宽也会控制成2的次方。地图应该直接用渲染好成图,不再分层(原来按照传奇模式分为基层,草层,树层等),传奇那样处理是为了更好表现物体的遮挡效果,不分层的话,直接做区域透明来表现遮挡,效果肯定没有传奇那么精细,但是效率上要好很多,可以少绘制很多图层。魔法什么的也会用粒子系统来实现,传奇原来的魔法效果都是固定的图片,带宽比较浪费。

比较可惜的是没有跟后端通讯的实现,我现在正在写一个服务端,lua方面的,如果能够实现的话,说不定会补上。

@coordcn 楼主是搞游戏开发的么?用lua这么Low的语言,哈哈

@chapgaga 在我眼里lua比javascript更好一点,他们很类似,但是lua更适合将异步转同步。callback模式的异步是有很大的缺陷的,ES6,7很多新的语言特性都是为了缓解这个问题而增加的,而lua本身就提供了异步转同步的基础工具coroutine,所以我觉得lua更好一点。

当然语言本省没有好坏,只有适用与否。

@coordcn lua语法没js复杂吧?你用啥编辑器写lua的? lua的解释器好像很小,写长一点的代码,可读性就很差?

@chapgaga lua比javascript语法相对简单点,但对c语言系列的还是需要适应的。

编辑器全部用vim。可读性没什么问题,懂javascript上手很快的。

@coordcn canvas的语义是画布,本身现实生活中在画布上做3D动画就不合适,个人感觉用canvas和webgl比较不妥 ╮(╯_╰)╭

@CarlosRen canvas本身包含2d和webgl对应的context,拿两者比较的确不妥。canvas元素我个人把它理解成动态图像的一个容器,具体是用2d还是3d实现就看个人取舍。可以比较的是不同context下提供的API,webgl提供的更加底层,效率和表现力上相对更加丰富些。用3d的接口实现2d效果是可以的,cocos2d就是用webgl实现了2d,在平台不支持的时候,退化成2dcanvas。

lua比js更好一些+1 也可以使用下可以解释到lua得moonscript

回到顶部