24
2024
04
15:16:25

[JSVM2] - (开源)JS星际争霸(for JSVM2)



推荐点击下面图片,通过本站淘宝优惠价购买:

image.png

实在太牛B!!!竟然用JSVM2写的星际争霸,不得不发出来分享。

 

来源:http://jsvm.org/forums/1902/ShowPost.aspx

下载地址:[IE ONLY]JS Starcraft v1.01.061219 (for JSVM2).rar


地址都失效了,找到了一个付费还能下载的  https://www.jq22.com/jquery-info3253    演示 https://www.jq22.com/yanshi3253   反正我是无法操作。



把幻宇的JS星际争霸移植到了 JSVM 平台,并稍微理了一下代码,将样式表分离出来,页面代码规范了点,(幻宇写的js不加注释,每句后面都不加分号,汗~),寻径核心文件写成JSC并打成了js-lib包~

需要注意的是:目前该游戏只能在IE内核的浏览器(IE7.0也可以)上玩,因为这是幻宇早期的作品(仅支持IE),如果有爱好者感兴趣的话可以尝试完善成兼容多浏览器的版本~

呵呵,无聊时可以玩玩,对JS游戏感兴趣的可以研究研究~


Enjoy it~

 


背景介绍

  对很多人来说,JavaScript是一种颇 为神秘的语言,这种语言由浏览器解析,可以实现很复杂的功能,但在实际中又使用甚少。在以相对定位为基础的网站体系中,js并不是必不可少的,最早的浏览 器并不支持js,只需使用纯静态的html,也能建立功能完备的网站。对于页面开发人员来说,使用js的时候估计也就是用于数据合法性检查而已。近年来, 随着ajax概念崛起,js的使用有所增加,不过除了web邮箱等少数工具型的网站之外,其作用仍然是辅助性的。

  实际上,js作为 最流行的脚本语言,功能是非常强大的,笔者就曾经利用js来模拟星际争霸。大家都知道,星际争霸是即时战略游戏史上的里程碑,在玩家心目中的地位是不言而 喻的,泡在各种各样的网吧里玩星际曾经是笔者生活的一部分。仅凭一腔热血,我就着手用js来开发星际,这是一次坚难的历程,充满了挫折,也享受到了乐趣, 最后能够完成,却是开始时我也没有奢望到的。

  js星际源码最早发布于无忧脚本的论坛里,得到了很多网友的好评,让我感动之余,也唯 有更加努力。通过这次开发,我的js开发技术有了很多提高,还认识了许多喜欢js开发的朋友,幸哉!js星际现在的存放地址是
http://www.script8.com/works/sc/index.htm,有兴趣的朋友欢迎参与讨论。

解决方案

  寻径算法是游戏的基础,也是运算量最大的部分。我没有使用A*算法,因为对脚本来说开销太大了,而是自主开发一种新 算法,称之为交点法,特点是线性寻径,运算量比较小,缺点是不能保证结果为最短路径。交点法的基本思路简述如下:
  1.从起点到终点画直线, 与障碍物相交时,总会出现对应的穿入点和穿出点。
  2.从穿入点的两个方向同时绕行障碍物,选择先到达穿出点的路线作为前进路线,这样就得到 了一条比较原始的路线。
  3.对路线进行优化,判断两点是否形成通路,删除冗余点,得到最终的路径。
  寻径时大量使用了判断是否 障碍点的运算,一般的做法是遍历数组,分别比较才能得到结果。我把障碍点序列变成一个长字符串,通过字符串包含关系就可以判断出当前点是否障碍点,这样就 减少了很多运算量。

  js星际所实现的,相当于是星际争霸的开场部分,即采矿、制造建筑物和生产士兵,战斗部分略有涉及。在编码之 前,就需要有许多准备工作,光是图片的制作就非常烦锁,需要万分的耐心才行。另外,我还用hta技术开发了一个地图编辑器,用于生成地图数据。

   游戏里的控制面板比较精简,缩略地图和选择信息集成到右上角的一个小面板里,其他部分都属于游戏场景。每个移动单位有8个方向,以枪兵为例,需要用24 张图片来表现站立和走动各种姿态。这些图片都集成在一张大图里,根据走动或站立情况,显示其中的对应部分,比如在走动时,判断出走动方向,一边移动枪兵位 置,一边三张图片轮显,表现出走动的情形。

  游戏初始化时,载入地图数据,根据不同的建筑物属性,一方面生成场景,另一方面生成障碍 物列表,用于寻路之用。默认情况下,地图上有几个矿工,圈选后,点击目标可以自主行走,根据游戏要求,如果点击到的是矿石,就会在矿区和总部间来回走动, 每次往返都会增加矿藏量。

  至于哪一种建筑物能生产什么兵,每个兵需要多少资源,建筑物的生产顺序是什么,这些相对来说都比较容易, 无非是做更多的图片处理和更多的逻辑判断而已,限于篇幅就不详细介绍了。

经验分享

  不用太担心功能 的实现,因为js已经非常完善了,可以随心所欲地进行各种运算,使用绝对定位的机制,可以轻松创建界面,再利用时钟模拟多线程,实时移动图片,就可以表现 动画了,问题主要体现在速度和性能上。因为js作为一种脚本语言,其计算性能无疑是先天不足的,同时浏览器也不支持directX和openGL等硬加 速,动画能力无法另人满意。只有通过减轻运算量,合理分配动画资源,才能保证游戏的平滑运行。js星际的开发,正是处处遵循了这个原则,能简则简,能省则 省,非常节约地使用各种资源,才最终得以实现。

  千万不要在游戏中使用滤镜技术,特别是动态滤镜,滤镜渲染时会占用大量的cpu,在 cpu占用达到80%以上时,游戏就会感觉比较卡。这一点和flash做的同类程序有明显区别,即使cpu占用率接近100%,flash程序仍然能保持 相当的平滑。

  凭心而论,客户端的游戏开发,应该还是以flash为主。与之相比,js的好处是可与网站无缝连接,也不需要安装插 件。当然了,只要是好玩实用的游戏,即使是用js开发的,也未尝不可。



///




    SiriBen0
    2018/3/30 11:41:31
  • IE高版本也能玩,不过把对方兵一打死,直接游戏就死了,无任何后续操作了,所有农民和兵全部停止控制死在那里了,哈哈                                                                        

  • 回复
    怀念★往事0
    2016/12/16 11:12:01

    所有版本浏览器,均无法动弹。。。

    估计是不行了。。。。

        ―+、柬。劫〈?0
        2017/9/27 15:18:28

        ie可以

    回复
    -果冻--0
    2016/9/23 14:09:40
  • 只有IE5可以玩,其他的都没用                                                                        

  • 回复
    一直在路上0
    2016/7/18 9:07:34
  • 玩都玩不了

      • S黑猫警长0
        2019/5/24 16:07:52
      • ie可以兼容不好的,很老的代码   低版本IE可以看


    回复
    李天王0
    2016/7/13 18:07:48
  • 动都不能动啊,光看着?

      • 圈圈评论奖励 1 jQ币
        2016/7/13 18:07:27
      • 兼容不好的,很老的代码   低版本IE可以看

        墨子0
        2017/4/7 9:20:50

        我的ie可以玩...

        墨子0
        2017/4/7 9:20:50

        我的ie可以玩...

    回复
    吃可牛的[紫帝]0
    2016/3/29 20:03:53
  • 其实并没有什么卵用                                                                        

  • 回复
    Houshion0
    2016/1/4 14:01:38
  • 然而……

      • 圈圈0
        2016/1/4 14:01:02

        并没有卵用

    回复
    简单道人评论奖励 1 jQ币
    2015/11/29 18:11:19
    1. 不是flash。

    2. 不是canvas。

    那么,别说你这个所谓的星际现在一切主流浏览器根本动不了,就算动的了,你也就能做到这个地步了,稍微再复杂一点,浏览器就带不起来。

    用div去做这种复杂的游戏,你有才。

        圈圈0
        2015/11/30 9:11:53

        这是H5还没出来之前就有的代码

    回复
    simon_lee0
    2015/11/11 16:11:19
    bury ash0
    2015/10/30 14:10:19
    圈圈0
    2015/9/22 17:09:45

    @1?5?8?0?7?3?3?4?0?0?0?   用低版本IE

    回复
    1?5?8?0?7?3?3?4?0?0?0?0
    2015/9/22 16:09:19

    IE 火狐 谷歌都不能动

    回复
    1?5?8?0?7?3?3?4?0?0?0?0
    2015/9/22 16:09:12
    圈圈0
    2015/7/3 12:15:34
  • @ 11  IE低版本可以跑                                                                        

  • 回复
    Archuleta0
    2015/6/29 13:05:55
  • 然而并没有什么卵用 

    Mr_Z0
    2015/6/26 16:08:47
  • 然并卵                                                                        

  • 回复
    腊树丫.0
    2015/6/10 11:30:16
  • 其实真没卵用                                                                        

  • 回复
    Dekmas0
    2015/6/4 11:08:38
  • ie能动,ie9                                                                        

  • 回复
    lilizzz0
    2015/6/1 11:31:40
  • 都不可以运行                                                                        

  • 回复
    盒子0
    2015/5/30 12:54:43
  • 只能ie运行                                                                        

  • 回复
    blood_wolf0
    2015/5/28 15:55:53
  • 其实真没卵用                                                                        

  • 回复
    圈圈0
    2015/5/28 11:58:42
  • @Seven啊  其实真没卵用                                                                        

  • 回复
    110
    2015/5/28 10:56:42
  • 用FF、iE都不能动……                                                                        

  • 回复
    Seven啊0
    2015/5/28 9:53:19
  • 其实并没有什么卵用 


本文链接:https://www.hqyman.cn/post/5892.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:





休息一下,本站随机推荐观看栏目:


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

您的IP地址是: