足球小游戏
来源:互联网 发布:淘宝网排行榜 编辑:程序博客网 时间:2024/06/10 06:15
足球游戏真的是用最最简单的代码画出来的,首先是实现定义一个入口的主函数,还有就是画了一个简易的足球场。模拟运动员踢角球的过程,画场地的时候用了重绘,这样就能够每次踢玩球后不用再次重绘嘛,这个比较方便,不用每次试验前运行一次程序,操作方便了一些,这个不是重点。先看前面的代码。
/** * 定义一个画画类,用来生成面板和画画。 * @author 周建权 2013.07.14 * */public class StartJFrame extends JFrame {/** * 定义函数的入口主函数 * @param args */public static void main(String[] args) {// 实例化一个对象StartJFrame sta=new StartJFrame();sta.showGUI();} /** * 定义一个showGUI函数,用显示面板及其组件 */ public void showGUI() {this.setSize(600, 600);//设置大小this.setTitle("泰国青年队5:0击败中国队,卡马乔已经被下课!!");this.setLayout(new FlowLayout());JButton jbu=new JButton("开始角球");jbu.setFont(new Font("楷体",Font.PLAIN,18));this.add(jbu);this.setVisible(true);//设置窗体可见Graphics g=this.getGraphics();//获取画布对象 GameListener j2=new GameListener(g);jbu.addActionListener(j2); }/** * 定义一个重绘函数,用于实现画窗体的基础部件 */public void paint(Graphics g) {super.paint(g);//调用重绘函数g.setColor(Color.RED);g.drawLine(550, 200, 550, 295);g.drawLine(550, 295, 600, 295);g.drawLine(550, 200, 600, 200);g.drawLine(5, 515, 5, 595);g.drawLine(5, 515, 30, 515);g.drawLine(30, 515, 30, 595);g.drawLine(5, 595, 30, 595);}
接下来是一个线程类,用于实现程序的主要功能,首先是用随机数产生小球的初始位置,并在此处定义一个判断语句,如果是超过这个范围就抛出点球越界。在最后不管进球或是不进球都会抛出来发球越界,点球无效。若是在点球区域内的球则再次进行判断,如果球从球门的坐标经过则说明进球是有效的。如果没进则抛出没进球。代码大部分是使用了判断语句,线程知识用的不多。
/** * 创建一个新的类,该类继承于线程类,用于实现小球的滚动以及比赛结果的输出 * @author 周建权 2013.7.14 * */public class GameThread extends Thread {private Graphics g;private int i;public GameThread(Graphics g ){this.g=g;}/** * 定义一个方法,该方法实现了画移动小球的功能,还有实现了判断进球是否有效,以及 * 对进球的结果进行输出。 */ public void draw05() {System.out.println("aaa");int m=(int)(5+Math.random()*35);//利用随机数产生小球的初始坐标,这也是小球进与不进的关键int n=(int)(515+Math.random()*85);if(m>30||n>595){JOptionPane.showMessageDialog(null, "点球位置越线");//判断点球线是否是有效的}//循环以便画出移动的小球for(i=0;i<=300;i++){try{Thread.sleep(30);}catch(Exception ef){}g.setColor(Color.BLUE);g.clearRect(m+2*i-2,n-i+2 ,30, 30);g.fillOval(m+2*i, n-i+1, 30, 30); System.out.println(i); /** * 定义一个while判断语句,用来判断小球的进球是否有效以及进球与否 */while((m+2*i)==550||(m+2*i)==551){if((n-i)<295&&(n-i)>205&&m<30&&n<595){JOptionPane.showMessageDialog(null, "恭喜你进球了");break;}else if(m>30||n>595){JOptionPane.showMessageDialog(null, "点球犯规,此次射门无效");;break;}else {JOptionPane.showMessageDialog(null, "很遗憾你没进球");break;}}} } public void run(){ draw05(); } }
由于三个类是分开的吗,所以得加一个监听器来完成最后的过程。
/** * 创建一个按钮监听器,按钮按下时开始同时画四个小球 * @author 周建权 2013.7.14 * */public class GameListener implements ActionListener{private Graphics g;public GameListener(Graphics g){this.g = g;}public void actionPerformed(ActionEvent e){; GameThread thread = new GameThread(g); thread.start(); } }
这样一个足球游戏就做好啦!
0 0
- 足球小游戏
- 足球
- 足球
- 足球
- 【足球】为啥喜欢足球?
- 小游戏
- 小游戏
- 小游戏
- 小游戏
- 小游戏
- 小游戏
- 小游戏
- 小游戏
- 小游戏
- 小游戏
- 小游戏
- 小游戏
- 小游戏
- Win 8 系统下 Tomcat 8.0 版本的下载安装与配置——Windows J2EE开发安装序列之三
- java文件类的一些基本用法
- 用自定义的队列实现一些基本功能
- Cassandra源码学习:一致性hash回顾
- 谢宾斯基三角形
- 足球小游戏
- SQL Server数据库连接
- 小球与线程
- 今夜,灵魂
- MWPhotoBrowser 使用
- 通信基础篇小项目-----多人聊天QQ的实现
- 通过实现端口代理映射,进而连接oracle数据库
- 通信基础篇小项目-----简单网络画板的的实现
- 数字证书及其简单数字签名的实现(java实现)