zoukankan      html  css  js  c++  java
  • 飞机大战小游戏2.0

    增加了绿色的buff

    JFrame的界面仍然闪烁所以改为Frame增加了双缓冲技术是界面不闪烁,但是应该太烧空间了

    修改了生存和死亡的条件即对应发生的函数体

    对代码的封装,对Buff 随机出现的增强

    /**
     * 绿色的buff
     * 保护飞机不受伤五秒
     * @author 小帆敲代码
     *
     */
    public class GreenBuff extends GameObject{
     int buffstarttime=-1;//判断buff是否被吃过 并记录时间
     
     public GreenBuff() {
      width=Constant.GREEN_BUFF_WIDTH;
      height=Constant.GREEN_BUFF_HEIGHT;
      
      x=Math.random()*Constant.FRAME_WIDTH;
      y=30;
      speed=6;
     }
     //显示
     public void draw(Graphics g) {
      if(y<Constant.FRAME_HEITH)
      {
        if(buffstarttime==-1)//没有被吃过并且没有被吃
        {
         Color c=g.getColor();
         g.setColor(Color.GREEN);
                        y+=speed;
               g.fillOval((int)x, (int)y, width, height);
               g.setColor(c);
        }
      }
      else {
       buffstarttime=-1;//超出屏幕外
      }
     }
    }

    双缓冲技术

    Image ImageBuffer = null; 
    Graphics GraImage = null;

       //覆盖update方法
     public void update(Graphics g){     
          ImageBuffer = createImage(this.getWidth(), this.getHeight());   //创建图形缓冲区 
          GraImage = ImageBuffer.getGraphics();       //获取图形缓冲区的图形上下文 
          paint(GraImage);        //调用paint方法
          GraImage.dispose();     //释放图形上下文资源 
          g.drawImage(ImageBuffer, 0, 0, this);   //将图形缓冲区绘制到屏幕上 
     } 

  • 相关阅读:
    [转]OOA/OOD/OOP区别
    Get / Post
    1.PHP环境搭配
    6.WCF Rest
    消除关闭按钮时的IE弹出提示
    TSQL DML学习笔记
    javascript 中类的定义
    $().each() 与 $.each()区别,以及 jquery ajax 应用
    TSQL 数据库的创建
    删除用户表 存储过程 索引..
  • 原文地址:https://www.cnblogs.com/code-fun/p/11197195.html
Copyright © 2011-2022 走看看