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

  • 相关阅读:
    js对象数组 根据某个共同字段 分组
    JS将数字转换成三位逗号分隔的样式
    js动态拼接参数到请求的url上
    在vue项目中 如何定义全局变量 全局函数
    vue-devtools的安装与使用
    原生js颗粒页换图效果
    css3爆炸效果更换图片轮播图
    css3高级运动keyframes
    grunt的使用方法,环境配置和插件安装
    js原生捕鱼达人(三)--完结
  • 原文地址:https://www.cnblogs.com/code-fun/p/11197195.html
Copyright © 2011-2022 走看看