会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132834个问题
JAVA 全系列/第一阶段:JAVA 快速入门/飞机大战小项目训练 631楼
JAVA 全系列/第一阶段:JAVA 快速入门/面向对象详解和JVM底层内存分析 632楼

Test2.zip

老师我的是只显示了背景 

飞机没出来

查了下代码 没看出来哪里出了问题。。

JAVA 全系列/第一阶段:JAVA 快速入门/飞机大战小项目训练 633楼
JAVA 全系列/第一阶段:JAVA 快速入门/IDEA的使用和第一个java项目 634楼
JAVA 全系列/第一阶段:JAVA 快速入门/数组和数据存储 636楼
JAVA 全系列/第一阶段:JAVA 快速入门/控制语句、方法、递归算法 637楼
JAVA 全系列/第一阶段:JAVA 快速入门/数组和数据存储 642楼
JAVA 全系列/第一阶段:JAVA 快速入门/变量、数据类型、运算符 643楼
JAVA 全系列/第一阶段:JAVA 快速入门/IDEA的使用和第一个java项目 644楼

package com.whygame;
import java.awt.*;
import java.awt.event.*;
import  static com.whygame.GameUtil.*;
public class whygameframe extends Frame {
    int x=100,y=100;//飞机的坐标
    Image bg =GameUtil.getImage("images/bg.jpg");

    Image palane=GameUtil.getImage("images/meinv .jpg" );
    Plane plane=new Plane(palane,100,100,1);
    class keymonitr extends KeyAdapter {
        @Override
        public void keyPressed(KeyEvent e) {
           plane.addDriection(e);
        }

        @Override
        public void keyReleased(KeyEvent e) {
           plane.relDriection(e);
        }
    }
   public void Launchframe(){

        this.setTitle("Ying ge 's 飞机大战");
        this.setVisible(true);//窗口默认不可见,设置为可见true
        this.setSize(FrameWidth,FrameHeight);
        this.setLocation(FrameWidth,FrameHeight);
        //增加关闭窗口的动作
       this.addWindowListener(new WindowAdapter() {
           @Override
           public void windowClosing(WindowEvent e) {
              System.exit(0);
           }
       });
       new PaintThread().start();
       //启动键盘监听
       this.addKeyListener( new keymonitr());
    }

    @Override
    public void paint(Graphics g) {
     g.drawImage(bg,0,0,FrameWidth,FrameHeight,null);
plane.drawMyself(g);

     /*  Color old=g.getColor();
        g.setColor(Color.PINK);
       g.drawLine(100,10,200,20);
       g.drawRect(300,300,300,300);
       g.drawOval(400,400,100,100);
       g.drawString("你好",300,300);
       g.setColor(old);
       g.drawLine(200,50,400,100);
*/
    }
    public static void main(String[]args) {
        long a1 = System.currentTimeMillis();
        whygameframe frame = new whygameframe();
        frame.Launchframe();
        long a2 = System.currentTimeMillis();
        System.out.println("共用时:" + (a2 - a1) + "ms");
    }
class PaintThread extends Thread{
    @Override
    public void run() {
       while(true){
           repaint();
           try {
               sleep(10);
           } catch (InterruptedException e) {
               e.printStackTrace();
           }
       }
    }
}
//解决屏幕闪烁问题
    private Image offScreenImage=null;
   public void update(Graphics g){
       if (offScreenImage==null){
           offScreenImage=this.createImage(FrameWidth,FrameHeight);
       }
       Graphics gOff=offScreenImage.getGraphics();
       paint(gOff);
       g.drawImage(offScreenImage,0,0,null);
   }
}
这是个什么错误,正常运行了几秒钟就不动了

image.png

JAVA 全系列/第一阶段:JAVA 快速入门/飞机大战小项目训练 645楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637