精华内容
下载资源
问答
  • AirMech WEB游戏

    2012-12-23 12:02:32
    WEB游戏AirMech WEB游戏AirMech WEB游戏
  • Google web 游戏

    2011-10-23 11:48:12
    Google web 游戏Google web 游戏Google web 游戏Google web 游戏Google web 游戏Google web 游戏
  • GEW:Web游戏引擎-源码

    2021-02-15 12:14:10
    GEW:Web游戏引擎
  • 小米web游戏SDK对接文档
  • 2048 web游戏源码

    2015-01-24 16:14:31
    基于HTML+CSS+JavaScript 的 web游戏 2048
  • 杀手Oline 在线网页游戏 WEB游戏 杀手Oline 在线网页游戏 WEB游戏 杀手Oline 在线网页游戏 WEB游戏
  • 三国风云 在线网页游戏 WEB游戏 三国风云 在线网页游戏 WEB游戏 三国风云 在线网页游戏 WEB游戏
  • 超级马里奥移动web游戏,打开网页即可玩耍。真正的“移动”
  • HEditor 一个Html5 Web游戏编辑器
  • JavaScript Web游戏引擎

    2019-09-26 03:19:08
    演示地址:http://www.webuc.net/myproject/rpg/ 引擎上的小女孩可以在地图上有效的位置随意走动,很多的web游戏都是基于这一基础开发的。 转载于:https://www.cnblogs.com/casystem/articles/1633998.html...

    演示地址:http://www.webuc.net/myproject/rpg/

    引擎上的小女孩可以在地图上有效的位置随意走动,很多的web游戏都是基于这一基础开发的。

    转载于:https://www.cnblogs.com/casystem/articles/1633998.html

    展开全文
  • Web游戏_俄罗斯方块

    2020-07-18 10:30:45
    Web游戏-俄罗斯方块 文章目录Web游戏-俄罗斯方块1.整体架构项目介绍项目架构2.项目实现index.html实现index.css实现const.js实现tetris.js实现view.js实现controller.js实现3.项目展示3.项目展示 1.整体架构 项目...

    Web游戏-俄罗斯方块

    1.整体架构

    项目介绍

    该项目是基于html+css+js开发的俄罗斯方块前端游戏。项目已部署到远程服务器,可直接访问:
    运行游戏

    源码可在Github上查看:tongji4m3

    项目架构

    本项目总体分为四个文件夹:html,css,js,img。img包含了背景图片。html中只有index.html,负责游戏的展示。css文件中只有index.css,负责对index.html的美化。游戏具体逻辑包含在js文件中。

    js文件夹中,const.js定义了整个游戏的常量,例如游戏长宽,方块颜色,键盘的键与数值等。tetris.js代表着一种特点的方块类型,方块位置,也包含了方块变换等。controller.js执行了游戏的具体逻辑,如控制方块下落,方块变体,是否得分,游戏是否结束等等。view.js负责游戏区与下一方块区表格的动态生成以及游戏方块的绘制等等。

    2.项目实现

    index.html实现

    index.html中首先引入了相关的css文件以及js文件。主体通过div将页面分为三部分:左边为游戏区域,右边为辅助区域(右上角为下一方块预告区,右下角为操作说明区)。

    在游戏区以及下一方块预告区,都只放了一个table标签,并且赋予一个id,之后通过index.css控制他的样式,通过view.js动态往表格添加行列,以可以根据传入值动态改变游戏区的长宽。预告区则是一些文本,其中的分数和速度则有id,可以在js中根据游戏进度动态改变。

    index.css实现

    主要设置了整体的背景,以及控制了游戏区,下一方块预告区,操作提示区的相对位置。以及游戏区,下一方块区中每个小方格的样式。

    const.js实现

    该文件定义了整体程序需要用到的一些常量,一是为了便于修改,二是通过字符串代替数字,便于代码阅读。首先定义了游戏主界面的宽高以及下一方块提示区的宽高。其次定义了初始方块产生的位置。然后定义了不同种类的方块对应的字符串,例如WALL代表墙。还定义了使用到的键盘的键与值的对应关系。最后定义了使用到的颜色。

    tetris.js实现

    定义二维位置坐标类,方便坐标表示。然后定义了方块类,包含了重要点坐标,方块类型,方块颜色,整体形状坐标。

    众所周知,一个整体的方块由四个原子方块组成。所以重要点坐标标记了该整体方块的一个点的位置,然后其他三个点则可以通过该重要点的坐标以及该方块类型得到(通过makeTetris()函数生成)。每个整体方块的颜色是随机生成的。

    makeTetris()函数则就是根据上述的重要点坐标(x,y)以及方块类型flag来生成。俄罗斯方块一共21种类型,对应每种类型生成他四个点的坐标并存储在数组中。

    changeTetris()函数是为了支持方块变形而存在的。首先改变flag到他的下一个转体的flag。因为除了田字形只有一种类型外,其他四个为一组,所以可以简单的操作即可得到转变后的flag。得到之后,调用之前的makeTetris()即可得到转变后的整体方块的四个坐标。

    rechangeTetris()函数是changeTetris()函数的逆运算,为的是模拟转体后发现空间不够则要转回原本的形状。实现起来差不多,只是形状改变的方向不一样。

    view.js实现

    主要是负责图像的绘制,即往表中根据const.js中定义的宽高,动态的生成表格的行和列,代表了每个小方块。还绘制了小方块的颜色。

    首先,定义了游戏区,下一方块预告区(以下简称next区)的二维数组,之后基本通过操作二维数组来实现功能。

    初始化函数init()。负责将游戏区和next区的二维数组初始化。游戏区一部分初始化为EMPTY代表此时没有方块,边缘初始化为WALL,代表是墙。next区则全部初始化为EMPTY。

    append()函数。负责在屏幕上动态添加表格,即根据const定义的宽高往游戏区,next区动态添加对应的表格。

    draw()函数。负责绘制游戏区的方块颜色,根据不同种类的方块(空白,墙,已经落下的,正在落下的),绘制不同的颜色。

    drawSmall()函数。负责next区的绘图。和draw()原理一样。

    controller.js实现

    该js文件负责游戏的具体逻辑实现。首先定义了一些全局变量。例如当前方块类型flag,下一方块类型nextFlag。当前方块tetris,下一方块nextTetris。以及两个变量movable,gameOver表示是否能移动,是否游戏结束。以及两个变量speed,scope代表速度和得分。最后moveDownId是控制方块不断下移函数moveDown的定时器的返回值,为了能停止定时器,调整速度等等。

    window.onload()函数。是该js文件的入口,当html页面一加载就进入该函数。他调用了之后用到的函数,大概逻辑是:先初始化游戏区,next区的二维数组,然后将初始的表格给动态添加好。随后就绘制游戏区和next区的方块。随后就调用定时器,每隔一段时间调用moveDown函数,让当前方块下移。最后还添加了事件监听。

    addEventListener()函数。添加键盘事件监听。根据不同的键盘按键,采取对应的措施。如果是UP,则方块先变形,如果不能变形,则回退。如果是DOWN,则让方块向下移动一位,且调用makeTetris()函数,让核心小方块之外的其他三个小方块坐标也发生改变,同样的,如果是不能向下移动,则取消刚刚的操作。LEFT,RIGHT函数以此类推。SPACE,则简单的将moveable=!moveable就实现了暂停。而±号则改变速度,首先先把speed变量做相应的改变然后先通过之前提到的定时器ID:moveDownId来停止movedown函数的定时器,再新建一个定时器(因为不这样的话,定时器的速度会按照之前的速度,即不会改变)。同时,获取html上的对应speed元素,并且修改值。

    moveDown()函数:之前所提到的,就是通过定时器调用moveDown()函数实现方块的自动下落,是一个比较关键的函数。

    该函数首先会判断,如果没有暂停,则将tetris的核心小方块x坐标下移,并且将其他三个小方块也下移。随后判断是否可移动,如果是不可移动的,说明该方块已经落到了下面,则调用newStart()函数生成新的方块继续。如果是可以移动的,则调用updateBoard()函数更新方块位置,并且通过draw()函数绘制当前方块情况。

    updateBoard()函数:负责每次方块下落时将游戏区的二维数组更新,具体逻辑是先将数组中值等于NEW,即刚刚落下的给赋值为EMPTY。再将当前tetris的四个小方块位置坐标标记为NEW。

    isMovable()函数:负责碰撞检测。具体做法是,对方块中的每一个小方块,首先判断是否数组越界,然后判断坐标所在位置是否是OLD或者WALL,是则返回false,代表不能移动。(因为碰撞检测是在updateBoard()之前,所以还不会覆盖)。

    newStart()函数:当一个方块下落到不能继续下落时调用该方法。首先将方块整体上移一格,以抵消之前的下移操作。随后更新方块,将此方块变成已下落状态。并且此时还调用clearLine()进行满行清空操作。最后还判断游戏是否结束,结束则调用newGame()函数进行相关清理工作,未结束则把之前的nextTetris变成当前的tetris,并且重新生成下一方块并展示。

    newGame()函数:初始化数组,重新绘图,并且终止定时器。

    isOver()函数:用于判断游戏是否结束,具体是查看游戏区的顶部是否已经有了已经落下的方块,或者是应该落下新方块的位置是否已经有了方块。

    clearLine()函数则负责消除满行。具体做法是,从游戏区的底部往上进行扫描操作,并且计算每一行的方块数,如果某一行满了,则让该行清空。并且让这一行上面的所有方块都不断下移,把空出来的位置填满,并且又从底部重新开始扫描(因为可能消去之后下面的区域又全满了)。最后更新分数,并且展示在屏幕上。

    3.项目展示

    初始页面:

    消除一行并且改变了速度的页面:


    mg-PCfo0WGN-1595039373808)]

    3.项目展示

    初始页面:

    [外链图片转存中…(img-vpQztnBg-1595039373808)]

    消除一行并且改变了速度的页面:

    [外链图片转存中…(img-VFrK8Pdd-1595039373809)]

    展开全文
  • WEB游戏服务器架构(HTTP)WEB游戏服务器架构(HTTP)。在如今游戏中,越来越多使用WEB架构方式来做游戏,《临兵斗者三国志》也是其中一个。我使用了PHP来做WEB服务器主逻辑语言,原因为他的开发速度快,并且容易招人...

    WEB游戏服务器架构(HTTP)

    WEB游戏服务器架构(HTTP)。在如今游戏中,越来越多使用WEB架构方式来做游戏,《临兵斗者三国志》也是其中一个。我使用了PHP来做WEB服务器主逻辑语言,原因为他的开发速度快,并且容易招人容易上手。 接下来主要来介绍下WEB服务器游戏架构的方式。(本文以PHP+MYSQL+MEMCACHE+NGINX为例)

    PHP可以选用任何你熟悉的框架,能站在别人肩膀上的就站上去吧,自己写时间过长。我们选用的是Yii框架,特点不多没有刻意去挑选。Memcache主要存储数据表的内存,因为PHP没有内存可控制,所以结合Memchache是最好的选择,也可以用Redis,功能上都一样,不过Redis有排序而已。用NGINX主要用来做WEB端的负载平衡,也可以在测试时做IP过滤,以及维护时的IP封锁。

    WEB架构图:----------------------------------------------------------

    GAME_DB1(Mysql-master&slave)---|

    GAME_DB2(Mysql-master&slave) |

    GAME_DB3(Mysql-master&slave) |---------------|

    GAME_DB4(Mysql-master&slave)---| |

    |

    Memcache1(master&slave) |

    Memcache2(master&slave) |

    Memcache3(master&slave) |

    Memcache4(master&slvae) |

    / \ |

    GameServerPHP1 |

    GameServerPHP2---------------------------------|

    GameServerPHP3

    | /

    Nginx

    ------------------------------------------

    GB_DB(Mysql)

    |

    GM_ADMIN_PHP+(memcache)

    ------------------------------------------

    描述:

    Ngix起负载均衡作用。

    Memcache起数据缓冲作用,当PHP从Memcache中读取数据发现Memcache没有,就从MYSQL里读并且存到Memcahe,查看Memcache玩家数据是否大于某个数(主要是限制内存,不能让Memcache内存无限增加最后导致奔溃),当PHP需要更新和插入时,PHP先插入或更新到MYSQL,然后再插入或更新到Memcache,使得两边数据能够同步,抑或只插入或更新到MYSQL,在查询时再进行Memcache加载也可以。 Mysql和Memcache设置为多台,主要是用于当数据过大时的对数据库做的数据散列处理,就是将某块功能数据单独放在某个数据库上,抑或将主键以某种方式分段拆分,例如按每100万主键拆分Mysql,0-100万为1台Mysql,101-200万为另一台Mysql以此类推。

    关于PHP框架的改造,我们需要遵循框架的接口,这样我们才能对底层的框架进行改造并且不影响上层的逻辑。例如上面提到的当查询时,先对Memcache进行操作,查看是否有数据,如没有再对Mysql操作,这种写法的基本条件就是接口必须使用框架固有的,而不是直接写sql语句来执行,但凡只用使用sql语句的都需要被改成框架接口,并且尽量不使用合并操作和查询嵌套。

    关于数据统计,由于WEB没有逻辑线程,所以我使用Linux的任务或Windows的计划代替,每天执行一次某PHP脚本,每周执行一次某PHP脚本,以达到统计数据的要求。 这个框架是一般游戏服务器的架构,在即时上线时,因为前期人数并不多,服务器的台数可以自由调整,随着人数上线的增多可以动态得进行扩充GameServerPhp服务器的数量,Memcache服务器的数量,最后实在抗不住,也可以增加DB的数量。

    转载请注明出处:http://www.luzexi.comApril 18, 2014 · 游戏服务端, 游戏架构, 后端技术

    感谢您的耐心阅读

    Thanks for your reading

    版权申明

    本文为博主原创文章,未经允许不得转载:

    Copyright attention

    Please don't reprint without authorize.

    微信公众号,文章同步推送,致力于分享一个资深程序员在北上广深拼搏中对世界的理解

    QQ交流群: 777859752 (高级程序书友会)

    展开全文
  • 炎龙骑士的远征 在线网页游戏 WEB游戏 炎龙骑士的远征 在线网页游戏 WEB游戏 炎龙骑士的远征 在线网页游戏 WEB游戏
  • web游戏快速执行测试方法
  • web游戏点卡开发项目 功能完整 简单易懂 web游戏点卡开发项目 功能完整 简单易懂 web游戏点卡开发项目 功能完整 简单易懂 web游戏点卡开发项目 功能完整 简单易懂 web游戏点卡开发项目 功能完整 简单易懂
  • 引用场景做 web 游戏时,通常游戏是嵌入到 app 内部,通过 app 内部入口,跳转进入所开发的 web 游戏,app 内会预留返回功能,web 游戏可以使用 webview...

    引用场景

        做 web 游戏时,通常游戏是嵌入到 app 内部,通过 app 内部入口,跳转进入所开发的 web 游戏,app 内会预留返回功能,web 游戏可以使用 webview 自带的返回,实现游戏内不同场景的跳转。

        比如游戏内有 a、b、c 三个场景,其中 a 场景是启动页面,a 场景进入 b 场景,b 场景进入 c 场景,从 c 场景中点返回,回到 b 场景,从 b 场景中点击返回,回到 a 场景, 从 a 场景中点击返回,调用 webview自身的返回事件。最后的效果如下图:

    事件监听

        当浏览器活动历时记录条目更改时,将触发 popstate 事件,如用户点击浏览器的回退按钮,或者在 javascript 代码中调用 history.back() 或者 history.forward() 方法,所以只需要在需要监听事件的场景

    window.addEventListener('popstate', 
      e => {
          //添加点击返回处理逻辑
      },
      false
    );
    

    事件的消费和添加

        仅仅监听事件,还是不够的,虽然写了监听逻辑,但是浏览器本身的返回事件还是触发的,这时候点击返回,还是会继续回到之前页面,所以需要添加一个新的状态,让浏览器不跳转到前一个页面,就需要用到 history.pushState() 方法。

        history.pushState() 方法,是向当前浏览器会话的历史堆栈中添加一个状态 (state) ,添加以后,点击浏览器的返回,会消耗掉会话历史堆栈中栈顶的状态,也就是我们注册的最新的状态。

    let state = { 
        title: "title", 
        url: null
    }; 
    window.history.pushState(state, "title", null);
    

    其中 title 是标题,目前浏览器基本上是忽略这个参数,可以不管,url 是跳转地址,游戏内不需要跳转其他地址,直接传 null 即可。

    事件的全局控制

    使用 cocos creator 开发游戏,注册 popstate 监听事件后,在浏览器点击返回时,会在每个注册的位置触发,实际游戏场景中,只需要执行一次就够。

    比如有 3 个游戏场景 a、b、c,从 a 中点击进入 b,从 b 中点击进入 c,b 和 c 内都注册了事件,这时候如果 b 和 c 分别直接注册,都会触发,导致界面显示出错。

    像上述场景,就需要整体控制事件的添加和注册,每次添加事件和注册回调,放置到一个堆栈顶部,当事件触发时,从栈顶取出最新的一个,进行回调就行。

    export default class PopStateMgr{
        /**
         * @desc: 注册返回事件
         * @param {type} 
         * @return: 
         */
        static push(onBackClick:any){
            PopStateMgr._events.push(onBackClick);
            let state = { 
                title: "title", 
                url: null
            }; 
            window.history.pushState(state, "title", null);
            window.addEventListener('popstate', 
                e => {
                    PopStateMgr._onBackClick();
                },
                false
            );
        }
    
    
        private static _onBackClick(){
            if(PopStateMgr._events.length <= 0){
                return;
            }
    
    
            let func = PopStateMgr._events.pop();
            if(func != null){
                func();
            }
        }
    
    
        private static _events:any[] = [];
    }
    

    类似上面这种,在需要监听返回事件的场景脚本组件内,调用 push 及触发的回调事件就行。如本实例中,就在 b 场景开始时,调用 push 注册事件。

    实例代码

    扫码关注公众号,发送【web返回】获取实例代码!

    展开全文
  • Web游戏,软件著作权,软件说明书,实例模版
  • JS web游戏

    2008-09-30 15:02:00
    JS web游戏 框架
  • WEB游戏-小鸟飞飞

    2019-01-22 11:26:35
    一款基于WEB端小游戏 DEMO, FlappyBird 供大家参考。
  • 连连看源码,基于HTML+CSS+JavaScript的web游戏
  • <div><p>...本文记录了笔者对 Web 游戏的一些疑问,也许你也恰巧曾经遇到过。</p><p>该提问来源于开源项目:o2team/o2team.github.io</p></div>
  • Web游戏外挂

    千次阅读 2009-04-27 15:31:00
    做一个Web游戏外挂需要的准备知识:1) 需要有耐心2) 熟悉HTML, JavaScript,特别是FORM3) 熟悉HTTP协议,特别是Cookie, URL的编码方式和POST, GET内容格式4) 熟悉游戏本身,能抽象出最优的赚钱/升级的数学模型5) ...
  • 此扩展为Plex.tv Web界面添加了基本的游戏手柄支持! 当前发布的功能:*支持各种流行的控制器(仅测试了360控制器)*在单集视图中滚动浏览各集*在游戏板上播放,暂停,停止,倒带和全屏播放(请参见屏幕截图以获取...
  • 基于某web游戏的通关 地址 http://monyer.com/game/game1/ 疫情在家好无聊,于是找到一个web小游戏练练手(家里断网,蹭wifi,嘿嘿嘿) 查看源码 地址都给你了,舒舒服服,直接输入就行 第一关,看源码 明文的,...
  • 三国志web游戏v2.0

    2003-09-12 00:00:00
    三国志web游戏v2.0
  • 引用场景做 web 游戏时,通常游戏是嵌入到 app 内部,通过 app 内部入口,跳转进入所开发的 web 游戏,app 内会预留返回功能,web 游戏可以使用 webview 自带的返回,实现游戏内不同场景的跳转。比如游戏内有 a、b、...
  • unity3d web版小游戏游戏俄罗斯方块。游戏和网页数据交互,api.js中提供了向服务器提交数据的接口。
  • web游戏-机器人大战

    2006-02-23 09:05:59
    web游戏-机器人大战,cgi程序,有兴趣的可以学习一下
  • 创建web游戏在这个习题中,我们不会创建一个完整的游戏,相反,我们会为习题42中的游戏创建一个“引擎”(engine),让这个游戏能够在浏览器中运行起来。这会涉及重构习题42中的游戏,混合习题47中的结构,添加自动...
  • 一款网络WEB游戏侠域源代码,大家自己玩吧~

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,815
精华内容 4,726
关键字:

web游戏