会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 133914个问题
JAVA 全系列/第一阶段:AI驱动的JAVA编程/面向对象详解和JVM底层内存分析 1636楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/面向对象详解和JVM底层内存分析 1638楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/面向对象详解和JVM底层内存分析 1639楼

image.png

JAVA 全系列/第一阶段:AI驱动的JAVA编程/JAVA入门和背景知识 1640楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/面向对象详解和JVM底层内存分析 1642楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/飞机大战小项目训练 1643楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/控制语句、方法、递归算法 1644楼

老师,帮忙看一下为什么没有出现飞机

com.bjsxt.planejava.awt.*java.awt.event.WindowAdapterjava.awt.event.WindowEventMyGameFrame Frame {

    Image =GameUtil.()Image =GameUtil.()=Plane =Plane()Plane =Plane()Plane =Plane()(Graphics g){System..println(+)++g.drawImage().drawMyself(g).drawMyself(g).drawMyself(g)}
    (){
        .setTitle()setVisible()setSize(Constant.Constant.)setLocation().addWindowListener(WindowAdapter() {
            (WindowEvent e) {
                System.()}
        })PaintThread().start()}

    PaintThread Thread{
        (){
            (){
                repaint(){
                    Thread.()} (InterruptedException e) {
                    e.printStackTrace()}
            }
        }
    }

    Image =(Graphics g){
        (==)
            =.createImage(Constant.Constant.)Graphics gOff=.getGraphics()paint(gOff)g.drawImage()}
    (String[] args) {
        MyGameFrame gameFrame=MyGameFrame()gameFrame.launchFrame()}
}


com.bjsxt.planejava.awt.*GameObject {
    Image (Image imgxyspeedwidthheight) {
        .= img.= x.= y.= speed.= width.= height}

    (Image img xyspeed) {
        .=img.=x.=y.= speed.=img.getWidth().=img.getHeight()}

    (){}

    (Graphics g){
        g.drawImage(()())}

    Rectangle (){
        Rectangle(()())}

}


com.bjsxt.planejava.awt.*Plane GameObject {
    (Graphics g){
        .drawMyself(g)+=}

    (Image imgxyspeed) {
        (imgxyspeed)}


}


JAVA 全系列/第一阶段:AI驱动的JAVA编程/飞机大战小项目训练 1645楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/面向对象详解和JVM底层内存分析 1646楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/变量、数据类型、运算符 1647楼

老师我在Piane类里面加了几个if语句,想要飞机在边缘的时候停下来,但是每次停下来的位置都不一样,该怎么调整呢?

image.png

package com.bjsxt.plane;

import java.awt.*;
import java.awt.event.KeyEvent;

public class Plane extends GameObject{

    boolean left,right,up,down;     //飞机的方向控制


    @Override
    public void drawMyself(Graphics g) {
        super.drawMyself(g);

        //飞机飞行的算法,可以自行设定
//        x += speed;

        if(left) {
            x -= speed;
        }
        if(right) {
            x += speed;
        }
        if(up) {
            y -= speed;
        }
        if(down) {
            y += speed;
        }
    }

    public void addDirection(KeyEvent e){

        if (e.getKeyCode() == KeyEvent.VK_LEFT) {
            left = true;
        }
        if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
            right = true;
        }
        if (e.getKeyCode() == KeyEvent.VK_UP) {
            up = true;
        }
        if (e.getKeyCode() == KeyEvent.VK_DOWN) {
            down = true;
        }

        if (x < 100){
            left = false;
        }
        if (x > 400){
            right = false;
        }
        if (y < 100){
            up = false;
        }
        if (y > 400){
            down = false;
        }
/*        switch (e.getKeyCode()){
            case KeyEvent.VK_LEFT:
                left = true;
                break;
            case KeyEvent.VK_RIGHT:
                right = true;
                break;
            case KeyEvent.VK_UP:
                up = true;
                break;
            case KeyEvent.VK_DOWN:
                down = true;
                break;
        }*/
    }

    public void minusDirection(KeyEvent e){

        if (e.getKeyCode()==KeyEvent.VK_LEFT){
            left = false;
        }
        if (e.getKeyCode()==KeyEvent.VK_RIGHT){
            right = false;
        }
        if (e.getKeyCode()==KeyEvent.VK_UP){
            up = false;
        }
        if (e.getKeyCode()==KeyEvent.VK_DOWN){
            down = false;
        }

/*        switch (e.getKeyCode()){
            case KeyEvent.VK_LEFT:
                left = false;
                break;
            case KeyEvent.VK_RIGHT:
                right = false;
                break;
            case KeyEvent.VK_UP:
                up = false;
                break;
            case KeyEvent.VK_DOWN:
                down = false;
                break;
        }*/
    }

    public Plane(Image img, double x, double y, int speed) {
        super(img, x, y, speed);
    }
}

GIF.gif

JAVA 全系列/第一阶段:AI驱动的JAVA编程/飞机大战小项目训练 1648楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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