HTML5应用——欢乐老虎机

                         在上面一篇博文中,我介绍了HTML5应用的简易播放器,这篇博文中介绍一个比较复杂的HTML5游戏-老虎机。 寒假在家玩老虎机输了些许钱,所以自己就萌生了写个老虎机的游戏。开始打算用Visual C++编写的,但是考虑到HTML5的<canvas>对象的简便性,就打算用HTML5编写了。 同时还用ASP语言编写了个服务器,如果游戏可以推广的话,自己可以做庄家,让大家玩哦! 但千万不要聚众赌博哦!

      

             在线试玩:http://101.225.71.60/game/game.asp,注意需要用支持HTML5的浏览器,最好是谷歌浏览器,请利用全屏模式体验最佳。(游戏存在一些bug,不好意思)

           言归正传,游戏的界面如下:




















           其实游戏本身应该是挺简单的,以下根据几个模块解说一下:

      一:用户界面

       游戏中有图片和<canvas>绘制的矩形、圆形。在开始编写前应该准备好游戏所需要的图片。我自己用PS简单画了几个,然后用VC写个小程序将图片进行反色、放缩处理就得到了全部图片:例如自己画了几个:

                                 

               其次关于界面押分、启动、投币、得分、积分等,首先需要<canvas>标签:


   二:事件处理

    在<canvas>标签中加入了onclick="dealclick(con)"代码,这是整个事件处理。

    其实事件处理包括几个步骤: 根据坐标找出对应的事件(因为游戏中有押分、启动、投币等多个事件),然后再处理对应的事件。

       dealclick(con)函数如下:

    

      其中getPos事件是找出对应事件代号的

   

      关于对应的押分,选大、选小事件其实都是比较简单的, 可以简单说一下选大选小中关于控制概率的算法, 例如控制庄家赢的概率是70%;可以利用var num=Math.random(); if(num<0.7)就算庄家赢,return true. 这都是比较简单的。

      最复杂的其实是启动事件。 玩过老虎机的朋友都知道,灯的闪烁、以及闪烁有快慢。 js中只有setInterval() 函数处理定时问题,所以编写时比较复杂

     

       主要介绍一下利用setInterval()介绍一下如何实现递增的延时,如老虎机灯快停时闪烁的越来越慢。可能我的方法不太好,大家可以参考一下


     三:背景音乐

        游戏中需要游戏背景音乐。 这需要用到html5中的<audio>标签,然后通过js来控制声音的播放与暂停

     在游戏界面中先载入:

   

   然后利用js来控制, 例如介绍一下选大选小时赢时候的背景音乐

  然后在自己需要控制的地方加入播放函数即可。

     

  四:游戏bug

    由于HTML5还不够成熟,因此浏览器对其支持能力不够好。例如背景音乐,长期使用定时器播放后浏览器会失去对<audio>的支持能力。 由于游戏是在浏览器中运行的,所以效率相比vc++的程序比较低。 如何脚本过于复杂会直接崩溃。

  

   

   

    

         

posted @ 2012-02-15 12:28  计算机技术  阅读(980)  评论(2)    收藏  举报