ToB企服应用市场:ToB评测及商务社交产业平台

标题: day03-线程应用 [打印本页]

作者: 半亩花草    时间: 2022-9-17 08:37
标题: day03-线程应用
JavaGUI-坦克大战03

7.线程的应用

7.1坦克子弹发射思路

纸上得来终觉浅,绝知此事要躬行。在学习了线程的基本知识之后,我们现在来实际运用一下。
在坦克大战2.0基础上添加如下功能:当玩家按一下 j 键,就发射一颗子弹。
思路:
7.2我方发射子弹

1.创建子弹类Shot
要实现子弹不停地移动的效果,就要实现Runnable接口,创建线程,不停地改变子弹坐标
  1. package li.TankGame.version03;
  2. /**
  3. * @author 李
  4. * @version 3.0
  5. * 射击子弹
  6. */
  7. public class Shot implements Runnable {
  8.     int x; // 记录子弹 x 坐标
  9.     int y; // 记录子弹 y 坐标
  10.     int direct = 0; // 子弹方向
  11.     int speed = 2; // 子弹速度
  12.     boolean isLive = true;//记录子弹(线程)存活状态
  13.     //构造器
  14.     public Shot(int x, int y, int direct) {
  15.         this.x = x;
  16.         this.y = y;
  17.         this.direct = direct;
  18.     }
  19.     @Override
  20.     public void run() {//射击
  21.         while (true) {
  22.             //休眠50 毫秒
  23.             try {
  24.                 Thread.sleep(50);
  25.             } catch (InterruptedException e) {
  26.                 e.printStackTrace();
  27.             }
  28.             //根据方向来改变(x,y)坐标
  29.             switch (direct) {
  30.                 case 0://上
  31.                     y -= speed;
  32.                     break;
  33.                 case 1://右
  34.                     x += speed;
  35.                     break;
  36.                 case 2://下
  37.                     y += speed;
  38.                     break;
  39.                 case 3://左
  40.                     x -= speed;
  41.                     break;
  42.             }
  43.             //测试。输出坐标
  44.             System.out.println("x=" + x + "y=" + y);
  45.             //如果子弹移动到面板边界时,就应该销毁(把启动的子弹的线程销毁)
  46.             if (!(x >= 0 && x <= 700 && y <= 550 && y >= 0)) {//如果不符合条件
  47.                 System.out.println("子弹线程退出...");
  48.                 isLive = false;
  49.                 break;//线程退出
  50.             }
  51.         }
  52.     }
  53. }
复制代码
7.3.3坦克爆炸


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4