目录
一、前言
想做出这个游戏,最好是已经学习过了AWT或者Swing编程,知道了图形界面的知识,也知道绘图。这个游戏可以帮你更好的打牢基础。
二、弹球小游戏
(1)分析游戏
弹球小游戏规则,小球弹到球拍或者弹到界面就会反方向移动,当无法在碰到球拍时,游戏结束
(2)游戏代码
class Solution { //制造组件 //桌子的大小 private int table_width=300; private int table_height=400; //球拍的信息 private int bat_width=80; private int bat_height=20; private int bat_x=120; private int bat_y=350; //球的信息 private int ball_size=16; private int ball_x=100; private int ball_y=20; //定义球的移动速度 private int speed_x=15; private int speed_y=15; //定义定时器,0.1秒刷新一次 private Timer timer; //判断游戏是否结束 private boolean flag=false; Frame s=new Frame("小游戏"); //定义画布 private class draw extends Canvas{ @Override public void paint(Graphics g) { if(flag==true){ //游戏结束 g.setColor(Color.BLUE); g.setFont(new Font("t",Font.BOLD,30));//设置字体 g.drawString("游戏结束!",50,200); } else{ //绘制小球 g.setColor(Color.red); g.fillOval(ball_x,ball_y,ball_size,ball_size); //绘制球拍 g.setColor(Color.pink); g.fillRect(bat_x,bat_y,bat_width,bat_height); } } } draw drawarea=new draw(); public void init(){ //开始组装 //事件监听,键盘控 KeyListener listener=new KeyAdapter() { @Override public void keyReleased(KeyEvent e) { int n=e.getKeyCode(); if(n==KeyEvent.VK_RIGHT){ //右 if((bat_x)<(table_width-bat_width)){ bat_x+=15; } } if(n==KeyEvent.VK_LEFT){ //左 if(bat_x>0){ bat_x-=15; } } } }; s.addKeyListener(listener); drawarea.addKeyListener(listener); //小球坐标的控制 ActionListener act=new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if((ball_y>(bat_y-ball_size))&&((ball_x>bat_x+bat_width)||(ball_x<bat_x))){ //游戏结束 timer.stop(); flag=true; drawarea.repaint(); } if(ball_x<=0||(ball_x>(table_width-ball_size))){ //撞到界面,换方向 speed_x=-speed_x; } if((ball_y<=0)||(ball_x>=bat_x&&ball_x<=bat_x+bat_width&&ball_y==bat_y)){ speed_y=-speed_y; } //每次球的位置都会在变化 ball_y+=speed_y; ball_x+=speed_x; //千万不要忘记刷新页面 drawarea.repaint(); } }; timer=new Timer(100,act);//每隔0.1秒刷新一次,act是事件监听 timer.start();//启动 drawarea.setPreferredSize(new Dimension(table_width,table_height)); s.add(drawarea); s.pack(); s.setVisible(true); } } //游戏入口 public class Test { public static void main(String[] rag){ Solution ss=new Solution(); ss.init(); } }