用java写了一个小游戏,但是出来的却是一个静止界面
SIR? 2021-04-21 07:07:42 package hxy_one;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Game { //设置桌面宽度
private int table_width=300;
private int table_height=400;
//设置球拍的宽度和长度
private int pai_width=60;
private int pai_heitht=20;
//设置小球的大小
private int table_size=16;
//初始化小球的坐标
private int hallx=30;
private int hally=40;
//记录小球的运动速度
private int speedx=10;
private int speedy=5;
//球拍的运动速度
private int relex=120;
private static int reley=340; boolean flag=false; Timer time; public class my extends Canvas{ @Override public void paint(Graphics g) { // TODO Auto-generated method stub if(flag) { g.setColor(Color.BLUE); g.drawString("游戏结束", 100, 200); } else { g.setColor(Color.RED); g.fillOval(30, 40, table_size,table_size); //设置下面的挡板 g.setColor(Color.GREEN); g.fillRect(relex, reley, pai_width, pai_heitht); } }
}
public void f() { Game.my m=new Game().new my(); Frame f=new Frame("弹球小游戏"); //球拍坐标的变化 KeyListener listener=new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { // TODO Auto-generated method stub int a=e.getKeyCode(); if(a==KeyEvent.VK_LEFT) { if(relex>0) { relex-=10; } } if(a==KeyEvent.VK_RIGHT) { if(relex<table_width-pai_width) { relex+=10; } } } }; f.addKeyListener(listener); m.addKeyListener(listener); //对球的控制 ActionListener n=new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub //判断边界 if(hallx<=0||hallx>=(table_width-table_size)) { speedx=-speedx; } else if(hally<=0||(hally>reley-table_size&&hallx>relex&&hallx<relex+pai_width)) { speedy=-speedy; } else if(hally>reley-table_size&&hallx<relex||hallx>relex+pai_width) { //游戏结束 time.stop(); flag=true; m.repaint(); } hallx+=speedx; hally+=speedy; m.repaint(); } }; f.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // TODO Auto-generated method stub System.exit(0); } }); time=new Timer(100,n); time.start(); m.setSize(table_width,table_height); f.add(m); f.pack(); f.setVisible(true);
}
public static void main(String[] args) { new Game().f();
}
}