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);   //将图形缓冲区绘制到屏幕上 
     } 

  • 相关阅读:
    java内存区域模型
    Java类加载器(双亲委派模型)(综述)
    2.无重复字符的最长子串
    浅谈Java中的对象和引用
    OSI七层协议大白话解读
    MPLS
    计算机网络为什么要分为五层结构?其依据是什么?
    前端技巧小结
    移动端尺寸新写法-rem
    编写高质量代码:Web前端开发修炼之道(四)
  • 原文地址:https://www.cnblogs.com/code-fun/p/11197195.html
Copyright © 2011-2022 走看看