Missile.java
上传用户:kikomiki
上传日期:2021-10-31
资源大小:373k
文件大小:1k
源码类别:

游戏

开发平台:

Java

  1. import java.awt.*;
  2. public class Missile {
  3. public static final int XSPEED = 10;
  4. public static final int YSPEED = 10;
  5. public static final int WIDTH = 10;
  6. public static final int HEIGHT = 10;
  7. int x, y;
  8. Tank.Direction dir;
  9. private boolean live = true;
  10. private TankClient tc;
  11. public Missile(int x, int y, Tank.Direction dir) {
  12. this.x = x;
  13. this.y = y;
  14. this.dir = dir;
  15. }
  16. public Missile(int x, int y, Tank.Direction dir, TankClient tc) {
  17. this(x, y, dir);
  18. this.tc = tc;
  19. }
  20. public void draw(Graphics g) {
  21. Color c = g.getColor();
  22. g.setColor(Color.BLACK);
  23. g.fillOval(x, y, WIDTH, HEIGHT);
  24. g.setColor(c);
  25. move();
  26. }
  27. private void move() {
  28. switch(dir) {
  29. case L:
  30. x -= XSPEED;
  31. break;
  32. case LU:
  33. x -= XSPEED;
  34. y -= YSPEED;
  35. break;
  36. case U:
  37. y -= YSPEED;
  38. break;
  39. case RU:
  40. x += XSPEED;
  41. y -= YSPEED;
  42. break;
  43. case R:
  44. x += XSPEED;
  45. break;
  46. case RD:
  47. x += XSPEED;
  48. y += YSPEED;
  49. break;
  50. case D:
  51. y += YSPEED;
  52. break;
  53. case LD:
  54. x -= XSPEED;
  55. y += YSPEED;
  56. break;
  57. case STOP:
  58. break;
  59. }
  60. if(x < 0 || y < 0 || x > TankClient.GAME_WIDTH || y > TankClient.GAME_HEIGHT) {
  61. live = false;
  62. tc.missiles.remove(this);
  63. }
  64. }
  65. public boolean isLive() {
  66. return live;
  67. }
  68. }