大二刚开学,开始学习Java,结合假期里学到的一些知识,写了一个简单的程序。
有点像之前很火的”别踩白块儿“,但是简单的多,暂时就把它叫做“静止的别踩白块儿”。
【玩法】鼠标点击出现色块的地方,点对加10分,点错减100分,负分游戏结束。
现在的不足和问题:
点击错误时,不能马上显示Game Over,必须再点对一次才能显示。我原想应该是if(grade<0)那个程序段的位置不对,但是调试不出来。
另外,方块永远只能按同一速度出现,一个点完才会出现下一个,这也是个问题,现在我的水平还不能写出来。
下面是程序代码:
1 import java.awt.*; 2 import java.awt.event.MouseEvent; 3 import java.awt.event.MouseListener; 4 5 import javax.swing.*; 6 7 public class fangkuan { 8 public static void main(String[] args) { 9 JFrame w = new JFrame(); 10 w.setSize(600, 700); 11 12 MyPanel4 mp = new MyPanel4(); 13 mp.setBackground(Color.WHITE); 14 mp.addMouseListener(mp); 15 w.add(mp); 16 17 w.setVisible(true); 18 } 19 } 20 21 class MyPanel5 extends Panel implements MouseListener{ 22 int []x= {0,200,400}; 23 int []j= new int[10]; 24 int a,b,X,Y; 25 int grade=0; 26 27 public MyPanel5(){ 28 for(int i=0;i<10;i++){ 29 j[i]=(int)(Math.random()*10); 30 a=(int)(Math.random()*3); 31 b=(int)(Math.random()*3); 32 } 33 } 34 public void paint(Graphics g){ 35 super.paint(g); 36 37 if(grade<0){ 38 g.setColor(Color.RED); 39 Font f =new Font("",Font.BOLD,20); 40 g.setFont(f); 41 g.drawString("Game over", 400, 650); 42 return; 43 } 44 45 Font f= new Font("",Font.BOLD,20); 46 g.setFont(f); 47 g.drawString("Score: "+grade, 400, 620); 48 49 50 g.setColor(new Color((new Double(Math.random()*128)).intValue()+128,(new Double(Math.random()*128)).intValue()+128,(new Double(Math.random()*128)).intValue()+128)); 51 g.fillRect(x[a], x[b], 200, 200); 52 53 } 54 55 56 @Override 57 public void mouseClicked(MouseEvent e) { 58 // TODO Auto-generated method stub 59 60 } 61 @Override 62 public void mouseEntered(MouseEvent e) { 63 // TODO Auto-generated method stub 64 65 } 66 @Override 67 public void mouseExited(MouseEvent e) { 68 // TODO Auto-generated method stub 69 70 } 71 @Override 72 public void mousePressed(MouseEvent e) { 73 // TODO Auto-generated method stub 74 X=e.getX(); 75 Y=e.getY(); 76 if(X>=x[a]&&X<=(x[a]+200)&&Y>=x[b]&&Y<=(x[b]+200)){ 77 a=(int)(Math.random()*3); 78 b=(int)(Math.random()*3); 79 grade+=10; 80 repaint(); 81 }else{ 82 grade-=100; 83 } 84 } 85 @Override 86 public void mouseReleased(MouseEvent e) { 87 // TODO Auto-generated method stub 88 89 } 90 }
时间: 2024-10-29 05:15:19