用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(); } }
...全文
37 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

58,453

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧