尚学堂java300集飞机小游戏实战

/*“##########”为不同类的分界*/
package game.plane04;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Date;


/**
 * 
* @project_name:MyGame   
* @type_name:MyGameFrame  
* @version:2019年4月22日 上午11:53:52 
* @author:zhagnqiang 
* @class_description:飞机游戏主窗口
*
 */

public class MyGameFrame extends Frame{
	
	//加载图像
    Image planeimg=GameUtil.getImage("images/plane.png");
    Image bg=GameUtil.getImage("images/bg.jpg");
    
    Plane plane=new Plane(planeimg,400,400);
//	int x=250,y=250;
    Shell[] shells=new Shell[30];
    Explode bao;
    
    Date startTime=new Date();
    Date endTime;
    int period;//游戏持续时间

	@Override
	public void paint(Graphics g) {//paint自动被调用,g相当于一只画笔

		//绘制图像
		g.drawImage(bg, 0, 0, null);
		plane.drawSeft(g);//画飞机
		
		for (int i = 0; i < shells.length; i++) {
			shells[i].draw(g);//画炮弹
			
			//碰撞检测
			boolean peng=shells[i].getRect().intersects(plane.getRect());
			if (peng) {
				System.out.println("相撞了");
				plane.live=false;				
				if(bao==null) {//只检测一次碰撞
					bao=new Explode(plane.imgX, plane.imgY);
					bao.draw(g);
					
					endTime=new Date();
					period=(int)(endTime.getTime()-startTime.getTime())/1000;
				}				


			}
			if (!plane.live) {
				Color color=g.getColor();
				g.setColor(Color.white);
				g.drawString("游戏持续时间:"+period+"s", (int)plane
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值