简单小游戏flappybird制作(五)

现在聊一聊Num类
Num类只有一个BufferedImage类型的数组images作为数据成员,数组容量11
public Num() throws IOException {
		images = new BufferedImage[11];
		for(int i=0; i<11; i++){
			images[i] = ImageIO.read(new File("img/num"+i+".png"));
		}
	}

构造方法负责读取数字图片文件。数字只有0到9,为什么数组容量为11呢?因为images[10]保存的是一张大于号的图片。游戏默认能显示的最大的分数是999,但是万一有大神呢,所以超出999的得分一律显示>999。

public void paint(Graphics g,int score,int n) {
		if(n==0) {
			if(score!=-1) {
				double a,b,c;
				a=Math.floor(score/100);
				b=Math.floor(score%100/10);
				c=Math.floor(score%10);
				g.drawImage(images[(int)a],10,20,null);
				g.drawImage(images[(int)b],39,20,null);
				g.drawImage(images[(int)c],68,20,null);
			}else {
				g.drawImage(images[10],10,20,null);
				g.drawImage(images[9],39,20,null);
				g.drawImage(images[9],68,20,null);
				g.drawImage(images[9],97,20,null);
			}
		}else if(n==1) {
			if(score!=-1) {
				double a,b,c;
				a=Math.floor(score/100);
				b=Math.floor(score%100/10);
				c=Math.floor(score%10);
				g.drawImage(images[(int)a],177,228,null);
				g.drawImage(images[(int)b],203,228,null);
				g.drawImage(images[(int)c],229,228,null);
			}else {
				g.drawImage(images[10],165,228,null);
				g.drawImage(images[9],189,228,null);
				g.drawImage(images[9],213,228,null);
				g.drawImage(images[9],237,228,null);
			}
		}else if(n==2) {
			g.drawImage(images[score],20,20,null);
		}
	}
重写paint方法可以看到paint方法分为两部分,有int n参数控制,对应两种显示位置,在游戏中显示在左上角,在最高记录界面显示在屏幕中央。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值