drawingPanel.java
上传用户:jhzhutan
上传日期:2021-03-28
资源大小:374k
文件大小:3k
源码类别:

射击游戏

开发平台:

Java

  1. import java.awt.*;
  2. import javax.swing.*;
  3. //the drawing panel class belong to the client program
  4. public class drawingPanel extends JPanel{
  5. public Image offScreenImage;
  6. public String[] messageQueue;
  7. public Actor[] drawingList;
  8. public boolean gameStarted;
  9. public int green, red, blue;
  10. public int P1Life, P2Life, P1Score, P2Score, EnemyLeft,  LevelIndex;
  11. public Image P1Image, P2Image;
  12. public drawingPanel() {
  13. P1Image = Toolkit.getDefaultToolkit().getImage("image\" +  55 + ".jpg");
  14. P2Image = Toolkit.getDefaultToolkit().getImage("image\" +  73 + ".jpg");
  15. }
  16. public void paintComponent(Graphics g) {
  17. Graphics offScreenGraphics;
  18. if (offScreenImage == null) {
  19. offScreenImage = createImage(640, 550);
  20. }
  21. offScreenGraphics = offScreenImage.getGraphics();
  22. myPaint(offScreenGraphics);
  23. g.drawImage(offScreenImage, 0, 0, this);
  24. }
  25. public void myPaint(Graphics g) {
  26. super.paintComponent(g);
  27. if(gameStarted){
  28. //draw game information
  29. g.setColor(new Color(81,111, 230));
  30. g.drawString("第  " + LevelIndex + "  关", 527, 39);
  31. g.drawString("敌人数 =  " + EnemyLeft, 527, 79);
  32. g.setColor(Color.yellow);
  33. g.drawImage(P1Image,  520, 380, null );
  34. g.drawString("x", 555, 395);
  35. g.drawString(P1Life + "", 565, 396);
  36. String SCORE = "000000000" + P1Score;
  37. g.drawString("P1" +" 得分:" + "", 515, 370);
  38. g.drawString(SCORE.substring(SCORE.length() - 7, SCORE.length()) + "", 566, 370);
  39. g.setColor(Color.green);
  40. g.drawImage(P2Image,  520, 460, null );
  41. g.drawString("x", 555, 475);
  42. g.drawString(P2Life + "", 565, 476);
  43. SCORE = "000000000" + P2Score;
  44. g.drawString("P2" +" 得分:" + "", 515, 450);
  45. g.drawString(SCORE.substring(SCORE.length() - 7, SCORE.length()) + "", 566, 450);
  46. //draw back ground
  47. g.setColor(Color.blue);
  48. g.drawRect(10, 10, 501, 501);
  49. //draw tanks, terren, etc...
  50. if(drawingList != null)
  51. for(int i = 0; i < drawingList.length; i++)
  52. if(drawingList[i] != null)
  53. drawingList[i].draw(g);
  54. //draw winning scene
  55. if(level.winningCount > 150){
  56. int temp = level.winningCount - 150;
  57. if(temp*10 >  300)
  58. temp = 30;
  59. if(level.winningCount  > 470)
  60. temp = 500 - level.winningCount;
  61. g.setColor(Color.gray);
  62. g.fillRect(11,11, 500, temp*10);
  63. g.fillRect(11, 500 - temp*10, 500, (1+temp)*10 + 2);
  64. if(level.winningCount  > 190  &&level.winningCount  < 470){
  65. if(level.winningCount > 400 ){
  66. red+=(int)((128-red)*0.2);
  67. green+=(int)((128-green)*0.2);
  68. }
  69. g.setColor(new Color(red, green, blue));
  70. g.drawString("过 关 了  !", 240, 250);
  71. }
  72. }else{
  73. green = 23; red = 34; blue = 128;
  74. }
  75. }
  76. //draw messages
  77. g.setColor(new Color(255, 255, 255));
  78. if(messageQueue  != null){
  79. for(int i = 0 ; i < 8; i++){
  80. if(messageQueue[i] != null)
  81. g.drawString(messageQueue[i] , 5,  12 +i*16);
  82. else
  83. break;
  84. }
  85. }
  86. }
  87. }