Chinaunix首页 | 论坛 | 博客
  • 博客访问: 45134
  • 博文数量: 34
  • 博客积分: 831
  • 博客等级: 军士长
  • 技术积分: 310
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-08 11:15
文章分类

全部博文(34)

文章存档

2012年(34)

我的朋友

分类: 系统运维

2012-10-08 17:45:46

 这是刚学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(){        
        }

部分代码如下:


点击(此处)折叠或打开

  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.         function move_td(){//球的上下移动
  40.             if(td){
  41.                 if (hscroll<=hei)
  42.                 {
  43.                     hscroll++;
  44.                     divs[2].style.top=hscroll+"px";
  45.                 }
  46.                 else
  47.                     td=false;
  48.             }
  49.             else{
  50.                 if (hscroll>0)
  51.                 {
  52.                     hscroll--;
  53.                     divs[2].style.top=hscroll+"px";
  54.                 }
  55.                 else
  56.                     td=true;
  57.             }
  58.         }
  59.         function move_t_l(){
  60.             if(top_l<160){
  61.                 top_l+=3;
  62.                 top_r+=3;
  63.                 divs[1].style.left=top_l+"px";
  64.             }
  65.         }
  66.         function move_t_r(){
  67.             if(top_l>0){
  68.                 top_l-=3;
  69.                 top_r-=3;
  70.                 divs[1].style.left=top_l+"px";
  71.             }
  72.         }
  73.         function move_d_l(){
  74.             if(down_l<160){
  75.                 down_l+=3;
  76.                 down_r+=3;
  77.                 divs[3].style.left=down_l+"px";
  78.             }
  79.         }
  80.         function move_d_r(){
  81.             if(down_l>0){
  82.                 down_l-=3;
  83.                 down_r-=3;
  84.                 divs[3].style.left=down_l+"px";
  85.             }
  86.         }
  87.         function keyDown(e){
  88.         // var keycode = e.which; //得到的是键盘对应的数值
  89.       var realkey = String.fromCharCode(e.which); //得到的是键盘对应的字母
  90.         // var rr= realkey;
  91.       switch(realkey){
  92.                 case "W":
  93.                     move_t_l();
  94.                     break;
  95.                 case "E":
  96.                     move_t_r();
  97.                     break;
  98.                 case "A":
  99.                     move_d_l();
  100.                     break;
  101.                 case "D":
  102.                     move_d_r();
  103.                     break;
  104.             }
  105.         }
  106.         function onload(){
  107.             
  108.             divs=document.getElementsByTagName("div");
  109.             wid=divs[0].clientWidth-divs[2].offsetWidth;
  110.             hei=divs[0].clientHeight-divs[2].offsetHeight;
  111.             wscroll=divs[2].offsetLeft;
  112.             hscroll=divs[2].offsetTop;
  113.             top_l=divs[1].offsetLeft;
  114.             top_r=top_l+100;
  115.             down_l=divs[3].offsetLeft;
  116.             down_r=down_l+100;
  117.             time1=setInterval("move_lr()",10);
  118.             time2=setInterval("move_td()",10);
  119.             document.onkeydown=keyDown;
  120.         }
代码和PPT: 乒乓球.rar  
阅读(270) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~