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

射击游戏

开发平台:

Java

  1. import java.awt.*;
  2. import javax.swing.*;
  3. //Download:http://www.codefans.net
  4. //the drawing panel class belong to the server program
  5. public class drawingPanel extends JPanel{
  6. public Image offScreenImage;
  7. //these are all reference that point to the real thing in serverModel
  8. public String[] messageQueue;
  9. public Actor[] actors;
  10. public boolean gameStarted;
  11. public int green, red, blue;
  12. public drawingPanel() {}
  13. public void paintComponent(Graphics g) {
  14. Graphics offScreenGraphics;
  15. if (offScreenImage == null) {
  16. offScreenImage = createImage(640, 550);
  17. }
  18. offScreenGraphics = offScreenImage.getGraphics();
  19. myPaint(offScreenGraphics);
  20. g.drawImage(offScreenImage, 0, 0, this);
  21. }
  22. public void myPaint(Graphics g) {
  23. super.paintComponent(g);
  24. if(gameStarted){
  25. //draw back ground
  26. g.setColor(Color.blue);
  27. g.drawRect(10, 10, 501, 501);
  28. //draw tanks, terren, etc...
  29. if(actors != null)
  30. for(int i = 0; i < actors.length; i++)
  31. if(actors[i] != null)
  32. actors[i].draw(g);
  33. //draw level information
  34. g.setColor(new Color(81,111, 230));
  35. g.drawString("第  " + level.currentLevel + "  关", 527, 39);
  36. g.drawString("敌人数 =  " + level.enemyLeft, 527, 79);
  37. //draw winning scene
  38. if(level.winningCount > 150){
  39. int temp = level.winningCount - 150;
  40. if(temp*10 >  300)
  41. temp = 30;
  42. if(level.winningCount  > 470)
  43. temp = 500 - level.winningCount;
  44. g.setColor(Color.gray);
  45. g.fillRect(11,11, 500, temp*10);
  46. g.fillRect(11, 500 - temp*10, 500, (1+temp)*10 + 2);
  47. if(level.winningCount  > 190  &&level.winningCount  < 470){
  48. if(level.winningCount > 400 ){
  49. red+=(int)((128-red)*0.2);
  50. green+=(int)((128-green)*0.2);
  51. }
  52. g.setColor(new Color(red, green, blue));
  53. g.drawString("过 关 了  !", 240, 250);
  54. }
  55. }else{
  56. green = 23; red = 34; blue = 128;
  57. }
  58. }
  59. //draw messages
  60. g.setColor(new Color(255, 255, 255));
  61. if(messageQueue  != null){
  62. for(int i = 0 ; i < 8; i++){
  63. if(messageQueue[i] != null)
  64. g.drawString(messageQueue[i] , 5,  12 +i*16);
  65. else
  66. break;
  67. }
  68. }
  69. }
  70. }