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);
}
}
Переставьте плюсик:
xx += 1.5f;
или пишите пока что полностью:
xx = xx + 1.5f;
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как в Java преобразовать Date в Long, если Date до 1970 года?