Почему XX не обновляется?обновляется только 1 раз [закрыт]

153
13 мая 2019, 17:20
package things;
import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.IOException;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.*;
import java.io.File;
import java.io.IOException;
import java.awt.BorderLayout;
import javax.imageio.ImageIO;
import javax.swing.JLabel;
public class Game extends Canvas implements Runnable {
    private static final long serialVersionUID = 1L;
    private boolean running;
    public static int WIDTH = 1366;
    public static int HEIGHT = 768;
    public static String NAME = "GAME OF YEAR";
    private   static float xx=0f;
    private   static float yy=0f;
    private boolean leftPressed = false;
    private boolean rightPressed = false;
    private boolean upPressed = false;
    private boolean downPressed = false;
    private boolean sprint = false;
    int speed = 0;
    Image img = (new ImageIcon(Game.class.getResource("bcg.png"))).getImage();
    public static Sprite her;
    public static Sprite hero;
    private static int x;
    private static int y;
    public void start() {
        running = true;
        new Thread(this).start();
    }
    public void run() {
        long lastTime = System.currentTimeMillis();
        long delta;
        init();
        while(running) {
            delta = System.currentTimeMillis() - lastTime;
            lastTime = System.currentTimeMillis();
            render();
            update(delta);
        }
    }

    public void init() {
        addKeyListener(new KeyInputHandler());
        hero = getSprite("things/man.png");
        her = getSprite("things/man-left.png");
    }
    public void painter(Graphics g)
    {
        x =  (int) xx;
        y = (int)yy;
        g.drawImage(img, x, y,null);
    }
    public void render() {
        BufferStrategy bs = getBufferStrategy();
        if (bs == null) {
            createBufferStrategy(2);
            requestFocus();
            return;
        }

        Graphics g = bs.getDrawGraphics(); //ïîëó÷àåì Graphics èç ñîçäàííîé íàìè BufferStrategy
        g.setColor(Color.black); //âûáðàòü öâåò
        g.fillRect(0, 0, getWidth(), getHeight()); //çàïîëíèòü ïðÿìîóãîëüíèê
        painter(g);
        if(leftPressed==true){
            her.draw(g, WIDTH/2, HEIGHT/2-60);
        }
        else {
            hero.draw(g, WIDTH/2, HEIGHT/2-60);
        }
        g.dispose();
        bs.show(); //ïîêàçàò
    }
    public void update(long delta) {
        if(sprint==true){
            speed=1;
        }
        else {
            speed=0;
        }
        if (leftPressed == true) {
            xx=+1.5f;
            x=-speed;
        }
        if (rightPressed == true) {
            xx-=1.5f;
            x=-speed;
        }
        if (upPressed == true) {
            yy=+1.5f;
            y=+speed;
        }
        if (downPressed == true) {
            yy=-1.5f;
            y=+speed;
        }
    }
    public Sprite getSprite(String path) {
        BufferedImage sourceImage = null;
        try {
            URL url = this.getClass().getClassLoader().getResource(path);
            sourceImage = ImageIO.read(url);
        } catch (IOException e) {
            e.printStackTrace();
        }
        Sprite sprite = new Sprite(Toolkit.getDefaultToolkit().createImage(sourceImage.getSource()));
        return sprite;
    }
    public static void main(String[] args) {
        Game game = new Game();
        game.setPreferredSize(new Dimension(WIDTH, HEIGHT));
        JFrame frame = new JFrame(Game.NAME);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new BorderLayout());
        frame.add(game, BorderLayout.CENTER);
        frame.pack();
        frame.setResizable(false);
        frame.setVisible(true);
        game.start();
    }
    private class KeyInputHandler extends KeyAdapter {
        public void keyPressed(KeyEvent e) {
            if (e.getKeyCode() == KeyEvent.VK_A) {
                leftPressed = true;
                System.out.println("left");
                System.out.println(xx);
            }
            if (e.getKeyCode() == KeyEvent.VK_D) {
                rightPressed = true;
                System.out.println("right");
                System.out.println(xx);
            }
            if (e.getKeyCode() == KeyEvent.VK_W) {
                upPressed = true;
                System.out.println("up");
                System.out.println(yy);
            }
            if (e.getKeyCode() == KeyEvent.VK_S) {
                downPressed = true;
                System.out.println("down");
                System.out.println(yy);
            }
            if (e.getKeyCode() == KeyEvent.VK_SHIFT) {
                sprint = true;
            }
        }
        public void keyReleased(KeyEvent e) {
            if (e.getKeyCode() == KeyEvent.VK_A) {
                leftPressed = false;
            }
            if (e.getKeyCode() == KeyEvent.VK_D) {
                rightPressed = false;
            }
            if (e.getKeyCode() == KeyEvent.VK_W) {
                upPressed = false;
            }
            if (e.getKeyCode() == KeyEvent.VK_S) {
                downPressed = false;
            }
            if (e.getKeyCode() == KeyEvent.VK_SHIFT) {
                sprint = false;
            }
        }
    }
}
package things;
import java.awt.Graphics;
import java.awt.Image;
public class Sprite {
private Image image;
public Sprite(Image image) {
        this.image = image;
    }
    public int getWidth() {
        return image.getWidth(null);
    }
    public int getHeight() {
        return image.getHeight(null);
    }
    public void draw(Graphics g,int x,int y) {
        g.drawImage(image,x,y,null);
    }
}
Answer 1

Переставьте плюсик:

        xx += 1.5f;

или пишите пока что полностью:

        xx = xx + 1.5f;
READ ALSO
Условия для if и else

Условия для if и else

Хочу создать условия для вывода информации о пассажирах:

157
Как в Java преобразовать Date в Long, если Date до 1970 года?

Как в Java преобразовать Date в Long, если Date до 1970 года?

Как в Java преобразовать Date в Long, если Date до 1970 года?

147
Проверить значение ключа обьекта JS

Проверить значение ключа обьекта JS

Как правильно проверить значение ключа orders?

119