飞翔小鸟思路及代码

昨天跳着看视频把飞翔小鸟做出来了,下面分享一下我的思路。

先放成品图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

和上一篇飞机大战的思路相似:

1.先把窗体做出把背景图放在面板中
2.把游戏背景中地面移动实现
3.把柱子在面板中实现进场及移动
4.把小鸟放在面板中
5.鼠标监听控制小鸟飞行轨迹
6.写判断小鸟与柱子碰撞和与地面碰撞的方法
7.添加计分和游戏结束游戏开始的画面

上面步骤最难的是写判断碰撞的方法…
——————————————————————————————————————————

首先是窗体类:
public class GameFrame extends JFrame{
   
	public static void main(String[] args) {
   
		
		GameFrame frame=new GameFrame();
		GamePanel panel =new GamePanel();
		//显示窗体
		frame.setVisible(true);
		//向窗体内添加一块画板
		frame.add(panel);	
	}
	
	public GameFrame() {
   
		setTitle("飞翔小鸟");// 设置标题
		setSize(432, 644);//窗体尺寸
		setLocationRelativeTo(null);// 相对于屏幕左上角居中
		setResizable(false);// 设置不允许玩家拖动界面
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//设置Logo图标 img/0.png
	  setIconImage(ImageUtil.getImage("/img/0.png"));
	}
}

这是一个获取图片字节流的工具类:
public class ImageUtil {
   
	public static BufferedImage getImage(String path) {
   
		try {
   
			BufferedImage image = ImageIO.read(ImageUtil.class.getResource(path));
			return image;
		} catch (IOException e) {
   
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		return null;

	}
}
地面类:
public class Ground {
   
	/*
	 * 定义地方的x,y坐标和宽高
	 */
	int x;
	int y;
	int w;
	int h;
	BufferedImage img;
		//地面的构造器用来构建地面对象
		public Ground() {
   
			img=ImageUtil.getImage("/img/ground.png");
			h=img.getHeight();
			w=img.getWidth();
			x=0;
			y=644-h;
		}
		
		public void Move() {
   
			//让地面能够一直往左边移动
			if(x<=-(w-432)) {
   
				x=25; //初始化x为25 刷新时没有明显的断层
			}else {
   
			x--;
			
  • 9
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值