用javascript做的一個簡單的乒乓球遊戲

  這是剛學JS一個星期的時候,李老師說現在就可以自己寫一個乒乓球遊戲,然後想了想花了2個小時把它寫出來了,寫完之後發現確實很簡單很多東西就應該自己大膽的去寫。做完之後,李老師讓我給大家講了一下,感覺好高興啊!

   當時主要從下邊幾個方面講的:1.原理2.實現3.內容。

  原理:1.讓球一直碰撞反彈。2.通過鍵盤控制拍子的來回移動。3.判斷輸贏。

  實現:1.爲了實現球的碰撞反彈,需要寫出二個方法:上下移動和左右移動。
2.爲了實現拍子的左右移動分別要寫出四個方法:綠色球拍的左移動、右移動和黑色球拍的左移動、右移動。
3.爲了能通過鍵盤控制拍子移動,需要寫一個方法來實現這個鍵盤事件。 
   內容:

1.碰撞反彈的實現。
2.判斷輸贏。
3.拍子如何左右移動。
4.鍵盤事件的實現。

    function move_lr(){    //球左右移動並且判斷輸贏            
        }
        function move_td(){//球的上下移動                
        }
        function move_t_l(){//綠方左移動            
        }
        function move_t_r(){//綠方右移動
            
        }
        function move_d_l(){//黑方左移動            
        }
        function move_d_r(){//黑方右移動            
        }
        function keyDown(e){//鍵盤事件            
        }
        function onload(){        
        }

部分JS代碼如下:

 

  1. function move_lr(){    //球左右移動 
  2.             if(lr){ 
  3.                 if(wscroll<=wid){ 
  4.                     wscroll++; 
  5.                     divs[2].style.left=wscroll+"px"
  6.                 } 
  7.                 else 
  8.                     lr=false
  9.             } 
  10.             else
  11.                 if(wscroll>=0){ 
  12.                     wscroll--; 
  13.                     divs[2].style.left=wscroll+"px"
  14.                 } 
  15.                 else 
  16.                     lr=true
  17.             } 
  18.             if(hscroll==20){ 
  19.                 if (wscroll>=top_l-20&&wscroll<=top_r){ 
  20.                     td=true;     
  21.                 } 
  22.                      
  23.                 else
  24.                     clearInterval(time1); 
  25.                     clearInterval(time2); 
  26.                     alert("綠方輸了!!重玩按F5!!!"); 
  27.                     } 
  28.             } 
  29.             else if(hscroll==260){ 
  30.                 if (wscroll>=down_l-20&&wscroll<=down_r) 
  31.                     td=false
  32.                 else
  33.                     clearInterval(time1); 
  34.                     clearInterval(time2); 
  35.                     alert("黑方輸了重玩按F5!!!"); 
  36.                     } 
  37.             } 
  38.         } 
  39.  
  40.         function move_td(){//球的上下移動 
  41.             if(td){ 
  42.                 if (hscroll<=hei) 
  43.                 { 
  44.                     hscroll++; 
  45.                     divs[2].style.top=hscroll+"px"
  46.                 } 
  47.                 else 
  48.                     td=false
  49.             } 
  50.             else
  51.                 if (hscroll>0) 
  52.                 { 
  53.                     hscroll--; 
  54.                     divs[2].style.top=hscroll+"px"
  55.                 } 
  56.                 else 
  57.                     td=true
  58.             }         
  59.         } 
  60.         function move_t_l(){ 
  61.             if(top_l<160){ 
  62.                 top_l+=3; 
  63.                 top_r+=3; 
  64.                 divs[1].style.left=top_l+"px"
  65.             } 
  66.         } 
  67.         function move_t_r(){ 
  68.             if(top_l>0){ 
  69.                 top_l-=3; 
  70.                 top_r-=3; 
  71.                 divs[1].style.left=top_l+"px"
  72.             } 
  73.         } 
  74.         function move_d_l(){ 
  75.             if(down_l<160){ 
  76.                 down_l+=3; 
  77.                 down_r+=3; 
  78.                 divs[3].style.left=down_l+"px"
  79.             } 
  80.         } 
  81.         function move_d_r(){ 
  82.             if(down_l>0){ 
  83.                 down_l-=3; 
  84.                 down_r-=3; 
  85.                 divs[3].style.left=down_l+"px"
  86.             } 
  87.         } 
  88.         function keyDown(e){ 
  89.         //    var keycode = e.which; //得到的是鍵盤對應的數值   
  90.          var realkey = String.fromCharCode(e.which); //得到的是鍵盤對應的字母   
  91.         //        var rr=    realkey; 
  92.          switch(realkey){ 
  93.                 case "W"
  94.                     move_t_l();                 
  95.                     break
  96.                 case "E"
  97.                     move_t_r(); 
  98.                     break
  99.                 case "A"
  100.                     move_d_l(); 
  101.                     break
  102.                 case "D"
  103.                     move_d_r(); 
  104.                     break
  105.             } 
  106.         } 
  107.         function onload(){ 
  108.              
  109.             divs=document.getElementsByTagName("div"); 
  110.             wid=divs[0].clientWidth-divs[2].offsetWidth; 
  111.             hei=divs[0].clientHeight-divs[2].offsetHeight; 
  112.             wscroll=divs[2].offsetLeft; 
  113.             hscroll=divs[2].offsetTop; 
  114.             top_l=divs[1].offsetLeft; 
  115.             top_r=top_l+100; 
  116.             down_l=divs[3].offsetLeft; 
  117.             down_r=down_l+100; 
  118.             time1=setInterval("move_lr()",10); 
  119.             time2=setInterval("move_td()",10); 
  120.             document.onkeydown=keyDown;     
  121.         } 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章