emu in blogjava

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            171 隨筆 :: 103 文章 :: 1052 評論 :: 2 Trackbacks
          Letters 是個很有意思的聯機小游戲,其實非常簡單,就是大家可以搶字母來拼自己喜歡的單詞,每天上去都會看到一群類此不疲的玩家。

          一時心血來潮仿寫了一個單機版的:

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
          <HTML>
          <HEAD>
          <TITLE> 字母漂移 </TITLE>
          <META NAME="Author" CONTENT="emu">
          <META NAME="Keywords" CONTENT="game">
          <SCRIPT LANGUAGE="JavaScript" defer>
          <!--
          var isIE=!!document.all;
          function checkMouseMove(event){
              
          if (window.activeElement){
                  
          var elm = window.activeElement;
                          elm.style.left 
          = event.clientX-elm.innerX;
                  elm.style.top 
          = event.clientY-elm.innerY;
              }

          }

          function releaseMouse(event){
              
          if (window.activeElement){
                  activeElement.newX 
          = event.clientX-activeElement.innerX;
                  activeElement.newY 
          = event.clientY-activeElement.innerY;
                  window.activeElement 
          = null;
              }

          }

          function drag(event){
              
          if (event.button>1return;
              
          var elm = isIE?event.srcElement:event.target;
              window.activeElement 
          = elm;
              elm.oldX 
          = elm.offsetLeft;
              elm.oldY 
          = elm.offsetTop;
              elm.innerX 
          = event.clientX - elm.oldX;
              elm.innerY 
          = event.clientY - elm.oldY;
          }


          function slideTo(id,x,y){
              
          var d=5    
              
          var e = document.getElementById(id);
              
          var l = e.style.left?parseInt(e.style.left):0;
              
          var t = e.style.top?parseInt(e.style.top):0;
              
          if(Math.abs(l-x)<=&& Math.abs(t-y)<=d) return;
              
          if(l!=x) e.style.left=l+(l<x?d:-d)
              
          if(t!=y) e.style.top=t+(t<y?d:-d)
              
          if(e.timer) clearTimeout(e.timer)
              e.timer
          =setTimeout("slideTo("+id+","+x+","+y+")",3)
          }

          setInterval(
          "slide()",300);
          function slide(){
              slideTo(Math.floor(Math.random()
          *26),Math.floor(Math.random()*670+15),Math.floor(Math.random()*470+15))
          }

          //-->
          </SCRIPT>
          </HEAD>
          <style>b{position:absolute;cursor:pointer;font-size:20}</style>
          <BODY onmousemove="checkMouseMove(event)" onmouseup="releaseMouse(event)" oncontextmenu="return false" onselect="return false" ondblclick="return false">
          <div style="background-color:yellow;width:700;height:500;overflow:hidden">
          <SCRIPT>
          var n=104;
          for(var i=0;i<n;i++)
              document.write('
          <b onmousedown="drag(event)" id="'+i+'" style="left:'+Math.floor(Math.random()*670+15)+';top:'+Math.floor(Math.random()*470+15)+';color:#'+(Math.floor(Math.random()*(1<<24))|(1<<23)).toString(16)
              +'
          " onbeforselect="return false">'+String.fromCharCode(i%26+65)+'</b>');
          </SCRIPT>
          </div>
          </BODY>
          </HTML>


          看起來也似模似樣了呵呵。至少比Letters 單機版要有可玩性,更不要說體積只有它的幾十分只一了。

          直接拷貝下來保存為html文件,或者點擊這里下載。在IE6和Firefox1.5下面同過。

          運行效果如下:
          posted on 2006-01-18 00:30 emu 閱讀(2516) 評論(6)  編輯  收藏

          評論

          # re: 仿寫了一個游戲 2006-01-18 08:49 Robin's Java World
          玩了一下,發現用JS寫的跟FLASH做的還是有一定的差別,一是效果沒有那么好,二是在拖動字母的時候會出現選中很多字母的問題。  回復  更多評論
            

          # re: 仿寫了一個游戲 2006-01-18 09:18 豹豹
          選中很多字母,可以屏蔽 onselectstart 事件來解決  回復  更多評論
            

          # re: 仿寫了一個游戲 2006-01-18 09:24 emu
          MFF屏蔽不了。
          其實按照原游戲的效果,這些字母都應該是gif圖片做的,本來就不存在選中問題。
          不過寫程序純粹為了好玩,沒花那么多時間來做這些細節,只是隨便放些字母上去。  回復  更多評論
            

          # re: 仿寫了一個游戲 2006-01-18 09:31 emu
          直接拷貝代碼下來不能運行,是因為這一行:
          <style>b{position:absolute;cursor:hand;font-size:20}</style>
          從上面拷貝下來的時候居然變成:
          <style>b{}{position:absolute;cursor:hand;font-size:20}</style>
          這是代碼展示器的一個bug了,自己改回來就好了。
            回復  更多評論
            

          # re: 仿寫了一個游戲 2006-05-17 00:22 夢游客
          好樣的, 小子, 我關注你哈  回復  更多評論
            

          # re: 仿寫了一個游戲 2008-09-02 12:32 Relucent
          很有意思  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 社旗县| 页游| 山丹县| 萨迦县| 五华县| 大埔区| 时尚| 新闻| 伊通| 宣化县| 民和| 什邡市| 吉安市| 区。| 武陟县| 布尔津县| 广州市| 乐亭县| 唐河县| 若尔盖县| 寿阳县| 海阳市| 芦山县| 云林县| 阿城市| 明光市| 潍坊市| 平顶山市| 丁青县| 迭部县| 乌鲁木齐县| 徐汇区| 沂水县| 东山县| 乐清市| 无为县| 申扎县| 会昌县| 长子县| 桂阳县| 育儿|