Spieler im 2D-Spiel springt herum

PissPain

Aktives Mitglied
Erstmal die 2 wichtigen Klassen:

Game:
Java:
public class Game extends RenderContext {
	private Player player;
	private CopyOnWriteArrayList<Block> blocks;
	
	public Game(int width, int height) {
		super(width, height);
		
		player = new Player(0, 0, 50, 50);
		blocks = new CopyOnWriteArrayList<Block>();
		blocks.add(new Block(50, 50));
		blocks.add(new Block(-50, -50));
	}
	
	public void update(float time) {
		player.update(time);
	}
	
	@Override
	public void paint(Graphics g) {
		g.setColor(Color.black);
		
		int playerX = player.getX()-player.getScreenX(), playerY = player.getY()-player.getScreenY();
		
		for(Block block : blocks)
			g.drawRect(block.getX()-playerX, block.getY()-playerY, Block.getWidth(), Block.getHeight());
		
		g.drawRect(player.getScreenX(), player.getScreenY(), player.getWidth(), player.getHeight());
	}
}

Player:
Java:
public class Player {
	private Rectangle bounds;
	private int screenX, screenY;
	private float x, y, speed;
	
	public Player(int x, int y, int width, int height) {
		double f = RenderContext.getFactor();
		
		bounds = new Rectangle((int) (x*f), (int) (y*f), (int) (width*f), (int) (height*f));
		this.x = bounds.x;
		this.y = bounds.y;
		
		screenX = (int) (f*1920d/2d-bounds.width/2d);
		screenY = (int) (f*1080d/2d-bounds.height/2d);
		
		speed = (float) (300d * f);
	}
	
	public void update(float time) {
		float diffX = RenderContext.getMouseX()-screenX-bounds.width/2, diffY = RenderContext.getMouseY()-screenY-bounds.height/2,
				degrees = (float) Math.toDegrees(Math.atan2(diffY, diffX));
		
		if(degrees < 0)
			degrees+=360;
		
		if(Keyboard.isKeyDown(KeyEvent.VK_W)) {
			x+=Math.cos(Math.toRadians(degrees)) * speed * time;
			y+=Math.sin(Math.toRadians(degrees)) * speed * time;
		}
		
		bounds.x = (int) x;
		bounds.y = (int) y;
	}
}

Aus irgendeinem Grund "springen" diese 2 Blöcke, obwohl sie eigentlich flüssig laufen sollten.
Es muss wohl irgendwas komisch gerundet sein, vllt. kann mir mal ein Erfahrener was dazu sagen.
Bin planlos, da ich es noch nie geschafft habe durch diese "Zeit" eine flüssige und gleichmäßige Bewegung hinzubekommen :( Hoffe ihr könnt mir sagen, wie man das hinbekommt.

Voller Code mit allen Klassen im Anhang, danke.
 

Anhänge

  • src.zip
    4,5 KB · Aufrufe: 3
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Spieler springen lassen Frameworks - Spring, Play, Blade, Vaadin & Co 24
C getSelectedRow() springt bei JButton-Auswahl nicht weiter mit Frameworks - Spring, Play, Blade, Vaadin & Co 16
G HILFE Dringend switch case springt nicht raus Frameworks - Spring, Play, Blade, Vaadin & Co 23
L Mauszeiger springt in obere linke Ecke des JDialogs Frameworks - Spring, Play, Blade, Vaadin & Co 3
D Button springt aus Textbox Frameworks - Spring, Play, Blade, Vaadin & Co 2
A Debugger springt in andere Klassen Frameworks - Spring, Play, Blade, Vaadin & Co 14
K Figur Springt nicht Frameworks - Spring, Play, Blade, Vaadin & Co 2
S Zeitmessung springt vorraus und funktioniert nicht! Frameworks - Spring, Play, Blade, Vaadin & Co 4
G JTable springt (JScrollPane, GridBagLayout) Frameworks - Spring, Play, Blade, Vaadin & Co 1
K TextWatcher springt nicht an Frameworks - Spring, Play, Blade, Vaadin & Co 9
T JTable + JScrollePane Größe "springt" beim resizen des Fensters Frameworks - Spring, Play, Blade, Vaadin & Co 4
engelsteufelin Taschenrechner springt an Start nach falscher Eingabe Frameworks - Spring, Play, Blade, Vaadin & Co 7
W Java Applet aus der Taskleiste springt in Vordergrund Frameworks - Spring, Play, Blade, Vaadin & Co 3
O Progressbar 'springt nicht an' Frameworks - Spring, Play, Blade, Vaadin & Co 5
B Exception springt nicht in den catch- Block Frameworks - Spring, Play, Blade, Vaadin & Co 14
R Programm springt nicht in if Bedingung Frameworks - Spring, Play, Blade, Vaadin & Co 9
F Debugging springt nicht in Methode - liefert null Frameworks - Spring, Play, Blade, Vaadin & Co 2
C LWUIT: Scrollen der Form springt am Ende Frameworks - Spring, Play, Blade, Vaadin & Co 0
Haave Animation "springt" trotz Wartebefehl Frameworks - Spring, Play, Blade, Vaadin & Co 3
J Eclipse springt nicht mehr an. Frameworks - Spring, Play, Blade, Vaadin & Co 8
nrg Debugger springt immer in Java SE Code Frameworks - Spring, Play, Blade, Vaadin & Co 3
D Methode springt zwischen returns Frameworks - Spring, Play, Blade, Vaadin & Co 2
Balbes JComboBox springt af den ersten Wert zurück Frameworks - Spring, Play, Blade, Vaadin & Co 6
Z JList "springt" Frameworks - Spring, Play, Blade, Vaadin & Co 5

Ähnliche Java Themen

Neue Themen


Oben