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

游戏

开发平台:

Java

  1. import java.awt.*;
  2. public class Missle {
  3. public static final int WIDTH = 10;
  4. public static final int HEIGHT = 10;
  5. public static final int SPEED = 10;
  6. private boolean Live = true;
  7. Tank.Direction dir = Tank.Direction.RIGHT;
  8. private TankWar tc;
  9. int x, y;
  10. public Missle(int x, int y, Tank.Direction dir, TankWar tc) {
  11. this(x, y, dir);
  12. this.tc = tc;
  13. }
  14. public Missle(int x, int y, Tank.Direction dir) {
  15. this.x = x;
  16. this.y = y;
  17. this.dir = dir;
  18. }
  19. public void draw(Graphics g) {
  20. Color c = g.getColor();
  21. g.setColor(Color.orange);
  22. g.fillOval(x, y, WIDTH, HEIGHT);
  23. g.setColor(c);
  24. move();
  25. }
  26. private void move() {
  27. switch (dir) {
  28. case LEFT:
  29. x -= SPEED;
  30. break;
  31. case LEFT_UP:
  32. x -= SPEED;
  33. y -= SPEED;
  34. break;
  35. case UP:
  36. y -= SPEED;
  37. break;
  38. case RIGHT_UP:
  39. x += SPEED;
  40. y -= SPEED;
  41. break;
  42. case RIGHT:
  43. x += SPEED;
  44. break;
  45. case RIGHT_DOWN:
  46. x += SPEED;
  47. y += SPEED;
  48. break;
  49. case DOWN:
  50. y += SPEED;
  51. break;
  52. case LEFT_DOWN:
  53. x -= SPEED;
  54. y += SPEED;
  55. break;
  56. }
  57. if (x < 0 || y < 0 || x > TankWar.GAME_WIDTH || y > TankWar.GAME_HEIGHT) {
  58. Live = false;
  59. tc.missle.remove(this);
  60. }
  61. }
  62. public boolean isLive() {
  63. return Live;
  64. }
  65. }