`

二次开发 BrowserQuest ,关于人物地图移动的原理分析

 
阅读更多
在前面我的博客中,有关于如何修改 BrowserQuest 【以下都简称:BQ】,现在我对BQ中,游戏人物地图切换进行了分析。

不多说了,上图说明:

人物在游戏中的截图:




红色部位为切换地图的部位。

下面是tiled地图编辑工具打开的原始图:




红色部位为上图中游戏中的截图区域,当游戏人物走到矩形中时,通过判断人物行走的方位,即可切换到tiled地图中zones地图的下一区域,这样就达到了人物移动地图切换的目的。


游戏中主要代码:client/js/updater.js

/**
         * 更新地图,即更新精灵显示区域。
         */
        updateZoning: function() {
            var g = this.game,
                c = g.camera,
                z = g.currentZoning, /** 当前站立的区域 **/
                s = 3,
                ts = 16,
                speed = 500;
       
            if(z && z.inProgress === false) {
                // 获得当前游戏人物要走的方向
                var orientation = this.game.zoningOrientation,
                    startValue = endValue = offset = 0,
                    updateFunc = null,
                    endFunc = null;

                if(orientation === Types.Orientations.LEFT || orientation === Types.Orientations.RIGHT) { /** 精灵向左向右 **/
                    offset = (c.gridW - 2) * ts;
                    startValue = (orientation === Types.Orientations.LEFT) ? c.x - ts : c.x + ts;
                    endValue = (orientation === Types.Orientations.LEFT) ? c.x - offset : c.x + offset;
                    updateFunc = function(x) {
                        c.setPosition(x, c.y);
                        g.initAnimatedTiles();
                        g.renderer.renderStaticCanvases();
                    }
                    endFunc = function() {
                        c.setPosition(z.endValue, c.y);
                        g.endZoning();
                    }
                } else if(orientation === Types.Orientations.UP || orientation === Types.Orientations.DOWN) { /** 精灵向上向下 **/
                    offset = (c.gridH - 2) * ts;
                    startValue = (orientation === Types.Orientations.UP) ? c.y - ts : c.y + ts;
                    endValue = (orientation === Types.Orientations.UP) ? c.y - offset : c.y + offset;
                    updateFunc = function(y) {
                        c.setPosition(c.x, y);
                        g.initAnimatedTiles();
                        g.renderer.renderStaticCanvases();
                    }
                    endFunc = function() {
                        c.setPosition(c.x, z.endValue);
                        g.endZoning();
                    }
                }
           
                z.start(this.game.currentTime, updateFunc, endFunc, startValue, endValue, speed);
            }
        }


注:文章如有不正确的地方,欢迎斧正。
  • 大小: 118.4 KB
  • 大小: 441 KB
分享到:
评论

相关推荐

    H5游戏Browserquest端nodejs后台

    4. **游戏逻辑处理**:Node.js后台负责处理游戏逻辑,如角色移动、战斗结算、地图更新等。这些逻辑通常由JavaScript编写,便于前后端共享代码,提高开发效率。 5. **安全性**:BrowserQuest的Node.js后台还需要考虑...

    BrowserQuest

    BrowserQuest是一款基于HTML和PHP技术开发的多人在线网页游戏,它展现了Web技术在游戏领域的强大潜力。HTML(HyperText Markup Language)是构建网页内容的基础语言,而PHP(Hypertext Preprocessor)则是一种广泛...

    Mozilla的BrowserQuest的HTML5源代碼 遊戲

    在BrowserQuest中,这些技术用于保存用户进度、游戏状态和地图数据,使得游戏体验更加流畅。 3. **WebSocket**:BrowserQuest采用WebSocket实现玩家之间的实时互动,比如聊天、攻击、移动等操作。WebSocket提供了一...

    BrowserQuest改_客户+服务器V00.2.rar

    BrowserQuest改_客户+服务器V00.2是一个基于jbpm5技术的项目,它包含了一个客户端和服务器端的交互实现。jbpm5是Java Business Process Management(业务流程管理)的第五个主要版本,它是一个开源的工作流和业务...

    BrowserQuest源代码是一款HTML+PHP开发的多人在线网页游戏.zip

    BrowserQuest是一款基于HTML5和PHP技术构建的多人在线网页游戏,它的开源性质使得开发者能够深入研究其内部机制,学习...同时,对于经验丰富的开发者,分析BrowserQuest的源代码也能启发新的设计思路和解决问题的方法。

    BrowserQuest.zip

    通过研究BrowserQuest的源代码,开发者可以深入理解H5游戏的开发流程,学习如何构建一个完整的网络游戏系统,包括客户端和服务器端的交互、实时通信以及数据管理。这不仅有助于提升个人技能,也为开发自己的H5游戏...

    基于dockfile搭建BrowserQuest私服.rar

    dockerfile部署php项目,单纯Php环境下的cnetos,未使用其他容器,搭建BrowserQuest游戏私服

    BrowserQuest源代码.zip

    BrowserQuest是一款基于浏览器的多人在线冒险游戏,其源代码公开,为开发者提供了学习和研究Web游戏开发的宝贵资源。这个游戏使用HTML5、JavaScript和Mozilla的Web技术构建,展现了Web技术在游戏开发领域的潜力。让...

    H5小游戏源码 BrowserQuest源代码.zip

    源码的分享为开发者提供了一次深入理解H5游戏开发的机会。以下将详细阐述BrowserQuest游戏源码中的核心知识点: 1. HTML5基础:BrowserQuest充分利用了HTML5的新特性,如Canvas用于图形渲染,Web Audio API进行声音...

    小游戏源码-BrowserQuest源代码.rar

    BrowserQuest是一款基于浏览器的多人在线冒险游戏,其源代码公开,为学习和研究Web游戏开发提供了宝贵的资源。这个压缩包包含的就是BrowserQuest的全部源代码,让我们深入了解一下它所涉及的关键知识点。 首先,...

    H5微信小游戏源码-BrowserQuest源代码.zip

    描述中的 "H5微信小游戏源码-BrowserQuest源代码.zip" 确认了这是一个关于H5技术的游戏源码,特别提到了BrowserQuest这款游戏。源码通常包括编程语言的代码文件,用于构建和运行游戏。这里的".zip"表明源代码被压缩...

    acmeserver:BrowserQuest 服务器模拟器

    BrowserQuest 是一个基于浏览器的多人在线冒险游戏,它允许玩家通过网络与其他玩家互动,共同探索一个像素风格的世界。在这个世界中,你可以与怪物战斗、收集物品,并与其他玩家合作完成任务。"acmeserver" 提供了一...

    微信小游戏源码 BrowserQuest源代码(仅用于学习参考)

    微信小游戏源码 BrowserQuest源代码(仅用于学习参考)微信小游戏源码 BrowserQuest源代码(仅用于学习参考)微信小游戏源码 BrowserQuest源代码(仅用于学习参考)微信小游戏源码 BrowserQuest源代码(仅用于学习...

    在线的HTML5游戏BrowserQuest.zip

    Web workers:允许初始化大的世界地图,而不会减慢页面 UI。localStorage:随时保存玩家角色的进度。CSS3 Media Queries:使游戏可以自动根据不同的设备进行调整。HTML5 audio:你可以听到游戏中的各种声音。由于该...

    BrowserQuest:HTML5 WebSocket 游戏

    OS Ubuntu Linux 14.04 LTS Trusty Tahr - LAMP Install (64 bit)CPU 1コア, メモリ 1G, ディスク 25GB如何在服务器上安装安装所需的软件包后,从 Web 服务器上公共文档目录中的 git 克隆 BrowserQuest。...

    Browserquest6:测试

    BrowserQuest是HTML5 / JavaScript多人游戏实验。 文献资料 文档位于客户端和服务器目录中。 执照 代码在MPL 2.0下获得许可。 内容根据CC-BY-SA 3.0许可。 有关详细信息,请参见LICENSE文件。 学分 由创建: 弗兰克...

    HTML5游戏 BrowserQuest

    html5游戏源文件源码下载,游戏源文件源码html5,html5游戏源文件源码,游戏源文件html5源码下载,BrowserQuest 这款游戏基于HTML5的,所以可以在几乎所有的浏览器 - 包括iOS...目前Mozilla已经发布了BrowserQuest源代码。

    html5多人在线rpg游戏源码.zip

    在这个游戏中,角色移动、怪物动画、地图展示等都是通过Canvas API来实现的。 2. **WebGL**:虽然BrowserQuest可能没有直接使用WebGL进行3D图形渲染,但在HTML5游戏中,WebGL是一个强大的工具,可以创建引人入胜的...

    Kaetram-Open:基于BrowserQuest(BQ)的开源2D HTML5冒险

    凯特拉姆 Kaetram是一个开放源代码的游戏引擎,旨在帮助有兴趣进入游戏开发领域的人们。 该代码库简单,简洁,直观。 该项目旨在用作学习工具。 最初的想法是基于Little Workshop的演示游戏BrowserQuest(BQ)。 此...

Global site tag (gtag.js) - Google Analytics