足球游戏真的是用最最简单的代码画出来的,首先是实现定义一个入口的主函数,还有就是画了一个简易的足球场。模拟运动员踢角球的过程,画场地的时候用了重绘,这样就能够每次踢玩球后不用再次重绘嘛,这个比较方便,不用每次试验前运行一次程序,操作方便了一些,这个不是重点。先看前面的代码。
/** * 定义一个画画类,用来生成面板和画画。 * @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(); } }
这样一个足球游戏就做好啦!
相关推荐
基于Python pygame的足球游戏源代码,游戏可以双人玩,游戏入口程序为soccer.py。 控制人物一 方向键:wasd ,射门键:r 控制人物二,方向键: 键盘方向键,射门键:k
一款十分有意思的足球比赛源码,源码完整,可以直接打开使用!!
基于Unity3D和行为树插件制作的AI足球小游戏源码.zip基于Unity3D和行为树插件制作的AI足球小游戏源码.zip基于Unity3D和行为树插件制作的AI足球小游戏源码.zip基于Unity3D和行为树插件制作的AI足球小游戏源码.zip基于...
Java编的足球小游戏,应用程序编程源码,很好的参考资料
足球小游戏,入门级人机交互,图层刷新。现独立包出来方便下载
两人互动世界杯足球小游戏
基于Unity3D和行为树插件制作的AI足球小游戏源码+注释说明 - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载...
本资源是针对C语言初学者的期末课题设计,采用C语言编写的一个小程序,通过循环、选择、调用等一系列C语言基础语句,实现了一段踢足球的小动画,代码简单易懂,运行效果良好,供大家学习与参考
采用硬件加速的世界杯足球射门游戏JS特效代码,很不错的JS游戏特效,硬件加速玩起来 不卡顿,JS基于zepto,轻量级JS框架,演示DEMO需要手机触摸屏才能射门,否则PC端是无 效果的。
不好可以看看,可以帮助刚开始学游戏的同学.
matlab足球小游戏 作者信息: qq:1064950364 程序说明: 该程序为足球小游戏,代码全部为本人所写。 背景图片为文件夹中的court.png,图片读取为相对路径,放到根目录下即可,无需修改目录。 其中,football.m为脚本...
基于Unity开发的指尖足球小游戏源码及素材。
用Java实现的足球游戏代码 适合学者更好的理解及掌握j2se 的基础知识
html5卡通动物足球赛游戏源码 挺有意思的游戏源码,有兴趣的朋友可以参考下
Unity精品源码,高可用,Unity精品源码,高可用,Unity精品源码,高可用,Unity精品源码,高可用,Unity精品源码,高可用,Unity精品源码,高可用,Unity精品源码,高可用,Unity精品源码,高可用,Unity精品源码,...
通过点击障碍物通关,足球落到指定位置就算通关
这里是关于android疯狂足球的项目,加入了排行榜。
这是一个游戏引擎的代码,是踢足球的吧。然后用的是visual studio2010
足球圈(包含node后端).zip小程序小游戏源码微信小程序源码下载足球圈(包含node后端).zip小程序小游戏源码微信小程序源码下载足球圈(包含node后端).zip小程序小游戏源码微信小程序源码下载足球圈(包含node后端...
一款Pascal 的非可视化的小游戏的代码,很好玩。