我想写一个坦克游戏,想让电脑坦克自行随机移动
于是写了如下代码:
Random r=new Random();
   int x=r.nextInt(7001);
   if(x<2000)
   {
AutoDir="D";
       for(k=1000;k>0;k--);
Ey+=5;
   }
   if(x>=2000&&x<4000)
   {
AutoDir="R";
for(k=1000;k>0;k--);
Ex+=5;
   }
   if(x>=4000&&x<6000)
   {
AutoDir="L";
for(k=1000;k>0;k--);
Ex-=5;
   }
   if(x>=6000&&x<7001)
   {
AutoDir="U";
for(k=1000;k>0;k--);
Ey-=5;
   }
   Tank tank1=new Tank(Ex,Ey);
很自然,这个物体移动得乱七八糟,主要是变化太快了,我想这样,当它向一个方向移动时,固定移动一段时间(可以是随机时间,但不要太短,否则看得太乱)可以借助哪类的函数?最好用代码给小弟示范一二,或者有更好的思路给小弟点拔一下,感激不尽

解决方案 »

  1.   

    我写了一个坦克的移动 不过代码是一套的  我拆不下来给你  你可以开启一个线程移动坦克  然后弄两个计时器  一个计时器开火  一个计时器根据产生的随机数来判断移动方向
    int num=(int)(Math.random()*7);
    switch(num)
    {
    case 0:
    UP=true;
    DOWN=false;
    LEFT=false;
    RIGHT=false;
    this.setArc(90);
    break;
    case 1:
    UP=false;
    DOWN=true;
    LEFT=false;
    RIGHT=false;
    this.setArc(270);
    break;
    case 2:
    UP=false;
    DOWN=false;
    LEFT=true;
    RIGHT=false;
    this.setArc(180);
    break;
    case 3:
    UP=false;
    DOWN=false;
    LEFT=false;
    RIGHT=true;
    this.setArc(0);
    break;
    case 4:
    UP=true;
    DOWN=false;
    LEFT=true;
    RIGHT=false;
    this.setArc(135);
    break;
    case 5:
    UP=true;
    DOWN=false;
    LEFT=false;
    RIGHT=true;
    this.setArc(45);
    break;
    case 6:
    UP=false;
    DOWN=true;
    LEFT=true;
    RIGHT=false;
    this.setArc(225);
    break;
    case 7:
    UP=false;
    DOWN=true;
    LEFT=false;
    RIGHT=true;
    this.setArc(315);
    break;

    这是八个方向  开启的线程只要写8个while(方向)就行了