Java多线程游戏仿真实例

举报
dfsafdfas 发表于 2021/02/06 14:47:07 2021/02/06
【摘要】 这是一篇学习分享博客,这篇博客将会介绍以下几项内容:1、如何让一个程序同时做多件事?(多线程的创建、多线程的应用)2、如何让小球在画面中真实地动起来?(赋予小球匀速直线、自由落体、上抛等向量运动)3、多线程游戏仿真实例分享(飞机大战、接豆人、双线挑战三个游戏实例)涉及的知识点有:多线程的应用、双缓冲绘图、小球的向量运动、游戏的逻辑判断、键盘监听器的使用、二维数组的使用、添加音乐效果等游戏效果...

这是一篇学习分享博客,这篇博客将会介绍以下几项内容:

1、如何让一个程序同时做多件事?(多线程的创建、多线程的应用)
2、如何让小球在画面中真实地动起来?(赋予小球匀速直线、自由落体、上抛等向量运动)
3、多线程游戏仿真实例分享(飞机大战、接豆人、双线挑战三个游戏实例)

  • 涉及的知识点有:多线程的应用、双缓冲绘图、小球的向量运动、游戏的逻辑判断、键盘监听器的使用、二维数组的使用、添加音乐效果等

游戏效果:
在这里插入图片描述
在这里插入图片描述
怎么样?如果觉得还不错的话就请继续看下去吧!

热身

第一步:创建画布

  • 心急吃不了热豆腐,我们先从最简单的创建画布开始。
    首先我们创建一个窗体,然后设置一些参数,从窗体中取得画笔,尝试在画布中心画一个图形,以下是参考代码:
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class Frame {
	//声明画布对象
	public Graphics g;
	
	//主函数
	public static void main(String[] args) {
		//创建Frame类,然后运行showFrame函数
		Frame fr=new Frame();
		fr.showFrame();
	}
	
	//编写窗体显示的函数
	public void showFrame(){
		//创建窗体
		JFrame jf=new JFrame();
		jf.setTitle("小球演示");//设置窗体标题
		jf.setSize(900,900);//设置窗体大小
		jf.setDefaultCloseOperation(3);//设置点击窗体右上角的叉叉后做什么操作,这里的3代表点击叉叉后关闭程序
		jf.setLocationRelativeTo(null);//设置窗体居中显示
		FlowLayout flow=new FlowLayout();//设置窗体布局为流式布局
		jf.setLayout(flow);
		
		Mouse mou=new Mouse();//创建监听器对象
		
		JButton jbu=new JButton("START");//创建按钮,按下按钮后可以在画布中间画一个圆
		jbu.addActionListener(mou);//为按钮添加事件监听器
		jf.add(jbu);
		
		//设置窗体可见
		jf.setVisible(true);
		
		//从窗体获取画布
		g=jf.getGraphics();
	}
	
	//创建内部类监听器(也可以重新创建一个文件编写该类)
	class Mouse implements ActionListener{
		//重写按钮监听方法
		public void actionPerformed(ActionEvent e){
			//按下按钮后会执行这里的代码,下面这条代码指的是在画布中心画一个圆
			g.fillOval(300,300,300,300);
		}
	}
}
  • 我们可以试着运行一下,出现以下图片所示效果第一步就成功了。
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。