Datentypen Position mit Int und Float berechen und ausgeben

volstagg

Mitglied
Hallo Leute,

ich mal wieder. :oops:

Tut mir echt leid für die nächste dämliche Frage, aber ich habe folgendes Problem. Ich möchte mit dem folgenden Code die Position von balken1 mit der angegebenen Geschwindigkeit verändern und ausgeben. Aber irgendwie hüpft das Ding immer am selben Fleck rum.

Hier mal was ich geschrieben habe:

Java:
public class Test {

	public static void main(String[] args) {

		Balken balken1 = new Balken();
		balken1.setPosition(10, 20);
		balken1.setSpeed(0.2f, 0.5f);
		for (int i = 0; i < 10; i++) {
			balken1.update();
			System.out.println(" Position des ersten Balken = "
					+ balken1.getX() + ", " + balken1.getY());
		}

		Disk disk = new Disk();
		disk.setPosition(16, 27);
		disk.setSpeed(0.5f, 0.7f);
		for (int i = 0; i < 10; i++) {
			balken1.update();
		System.out.println(" Position der Disk = " + disk.getX() + ", "
				+ disk.getY());
		}
	}

}

Java:
public class PongObject {

	int breite;
	int hoehe;
	int x;
	int y;
	float speedX;
	float speedY;

	public PongObject(int _w, int _h) {

		breite = _w;
		hoehe = _h;

	}

	public void setPosition(int _x, int _y) {
		x = _x;
		y = _y;

	}

	public void addPosition(int _delta_x, int _delta_y) {
		x += _delta_x;
		y += _delta_y;
	}

	public int getX() {
		return x;
	}

	public int getY() {
		return y;
	}

	public int getBreite() {
		return breite;
	}

	public int getHoehe() {
		return hoehe;
	}

	public int extX() {
		return x + breite;
	}

	public int extY() {
		return y + hoehe;
	}

	public void setSpeed(float _speedX, float _speedY) {
		speedX = _speedX;
		speedY = _speedY;
	}

	public float getSpeedX() {
		return speedX;
	}

	public float getSpeedY() {
		return speedY;
	}

	void update() {
		x = (int) (x + speedX);
		y = (int) (y + speedY);
	}

}

Danke euch für eure Hilfe

LG

V.
 
Zuletzt bearbeitet:

knilch

Bekanntes Mitglied
Hi,
Wie genau ist die Methode balken1.setSpeed(float x, float y) {...} implementiert?

In den Codefragments, die du gepostet hast ist in der Klasse PongObject eine Methode setSpeed(float x, float y) {...} zu sehen. Wenn balken1 eine Instanz von dieser Klasse ist, dann ist die Methode klar.
Java:
public void update() {
   x = (int) (x + speedX);
   y = (int) (y + speedY);
}
Was passiert hier: x + speedX werden addiert, dabei wird ein impiziter cast von x und y in den Typ float gemacht. Dann wird speedX und speedY addiert, dann folgt der expizite cast (int). Beim expiziten cast (int) wird nun alles was hinter dem Koma steht abgeschnitten.
D.h:
x = (int) x + speedX;
x = 20; speedX = 0.5f --> x = (int) 20 + 0.5 --> 20;

Egal wieviel mal du diesen update nun machst, das Resultat wird immer gleich bleiben.

Wenn du die Position vom Balken ändern möchtest, musst du entweder eine Rundung in der update- Methode mit einbeziehen:
Java:
public void update() {
    posX = (int) (Math.round(posX + speedX));
    posY = (int) (Math.round(posY + speedY));
}
oder du verwendest für speedX und speedY int

Gruss Knilch
 
Zuletzt bearbeitet:

volstagg

Mitglied
Guten Morgen Knilch,

danke für die Hilfe und sorry für meine blöde fragerei, aber ich stehe erst am Anfang der Programmierung.

Wenn ich das also richtig verstehe, dann kann ich die Position nicht von 20 auf 20.5 ändern, sondern immer nur mit ganzen Zahlen auf zB 21. Gibt es da keine andere Möglichkeit?

Danke noch einmal für die Hilfe

LG

V.
 

knilch

Bekanntes Mitglied
Hi,
Gerne.
Ja. Die Postion kann nur in ganzen Schritten verändert werden. Eine Möglichkeit wäre, dass du einen Range definierst (MIN und MAX) und dann die Veränderung innerhalb diesem Range Prozentual veränderst.
 

volstagg

Mitglied
Jetzt noch mal was ganz dämliches von mir.
Wie Dir sicher aufgefallen ist soll daraus mal ein Pong Spiel werden. Ich mach ja grade ein Praktikum wo ich mit diesem Projekt anfange das Programmieren zu lernen.
Was ich jetzt nicht verstehe, wenn die Position ja nur in ganzen Schritten verändert werden kann, warum wird dann speedx und speedy mit einem float angegeben? Irgendwie häng ich in der Luft.

LG

V.
 

knilch

Bekanntes Mitglied
Hi,
Hm, wenn speedX und speedY als float vorgegeben sind, dann musst du wohl eine andere Variante finden, wie du den balken aktualisierst. Du kannst z.B. speedX und speedY mit einer Konstante multiplizieren, (in der update- Methode) und dann die Werte an x und y zuweisen.
Aber wie nun genau das Programm funktionieren muss, soll, kann etc. das ist mir nicht bekannt. Du musst dir einfach alternative Varianten suchen, um das Problem zu lösen :).
Dabei gehts bei der Softwareentwicklung.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L px und x-position Java Basics - Anfänger-Themen 4
ptcho Werte/Position nach dem Funktionsaufruf tauschen? Java Basics - Anfänger-Themen 1
F wie kann ich die Position des letzten Vokals innerhalb einer Zeichenkette ermitteln? Java Basics - Anfänger-Themen 5
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
I 2D-Array Position der Liste ausgeben. Java Basics - Anfänger-Themen 2
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
J Itext-Paragraph Position ändern Java Basics - Anfänger-Themen 13
B Berechnung der Position von Kinderelemente von einem Elternknoten Java Basics - Anfänger-Themen 23
J Eine Position im String durch einen Integer - Wert teilen Java Basics - Anfänger-Themen 5
J Java GUI- Objekte Position per Quelltext bestimmen Java Basics - Anfänger-Themen 4
S suche nach varible POSITION ... fuer das pixel-maennchen Java Basics - Anfänger-Themen 4
I Eigenschaften von Position aus anderer Klasse übernehmen Java Basics - Anfänger-Themen 17
Anica Processing Animation Bild-Position ändern Java Basics - Anfänger-Themen 9
H Position verschieben der Elemtente im Array Java Basics - Anfänger-Themen 3
J Eingabe des Scanners an einer bestimmten Position Java Basics - Anfänger-Themen 6
S Position eines Frames Java Basics - Anfänger-Themen 3
S Einfach verkettete Liste Element an bestimmter Position einfügen Java Basics - Anfänger-Themen 24
T Arrayposition um eine Position verschieben Java Basics - Anfänger-Themen 2
V Klassen Bestimmen Sie die erste und letzte Position an der ein 'c' steht? Java Basics - Anfänger-Themen 3
R Position einer Ziffer in einer Zahlenkette Java Basics - Anfänger-Themen 5
Z Wie Position eines Objekts in Liste herausfinden? Java Basics - Anfänger-Themen 15
C Position eines Zeichens in einem String ausgeben Java Basics - Anfänger-Themen 1
J Buchstabe (char) an zufällige Position eines Strings einfügen Java Basics - Anfänger-Themen 1
C [Greasmonkey] Maus Coursor position setzen Java Basics - Anfänger-Themen 1
I Int Array, Zahl an bestimmte position setzten Java Basics - Anfänger-Themen 2
S Bild auf eine Position rotieren?! Java Basics - Anfänger-Themen 4
O Position des Buttons wird nicht geändert.. Java Basics - Anfänger-Themen 6
H Cursor-Position bei Rechtsclick? Java Basics - Anfänger-Themen 2
D 2 Fragen: Position ändern vs. LayoutManager / Bilder einfügen im Vordergrund Java Basics - Anfänger-Themen 3
S Maus Position Java Basics - Anfänger-Themen 6
A Eine Datei Lesen und bestimmte Position überschreiben Java Basics - Anfänger-Themen 2
S JSplitPane Divider Maximum Position Java Basics - Anfänger-Themen 5
W Position in ArrayList ermitteln Java Basics - Anfänger-Themen 4
M kurze frage: Ohne index.of position von string angeben Java Basics - Anfänger-Themen 16
M Input/Output position in temporären dateien kann nicht gesetzt werden Java Basics - Anfänger-Themen 3
E Y-Position der Maus nehmen Java Basics - Anfänger-Themen 5
R mit DefaultStyledDocument die Caret-Position ändern? Java Basics - Anfänger-Themen 5
V Position in einem Vektor Java Basics - Anfänger-Themen 3
M LinkedList aktuelle position Java Basics - Anfänger-Themen 3
E Position erkennen und überlappungen feststellen Java Basics - Anfänger-Themen 4
M Fixe Position von GUI Komponenten ? Java Basics - Anfänger-Themen 9
B JMenu Position bestimmen Java Basics - Anfänger-Themen 7
H B-Baum: Knoten Position als Parameter oder als Variable im Objekt? Java Basics - Anfänger-Themen 4
TheKing Spieler Position mit Array vergleichen Java Basics - Anfänger-Themen 2
T Image Position erkennen Java Basics - Anfänger-Themen 6
L die Position von Suchtreffern von Lucene finden Java Basics - Anfänger-Themen 2
S Datentypen In ArrayList nach Element suchen und Position ausgeben Java Basics - Anfänger-Themen 9
K Kreis mit neuer Position zeichnen Java Basics - Anfänger-Themen 3
S OOP Wie bei Spiel "17+4" eine Karte an bestimmte Position hinzufügen Java Basics - Anfänger-Themen 13
M Zufällige Position Java Basics - Anfänger-Themen 3
A Elemente 2er int[] auf Gleichheit und Position überprüfen Java Basics - Anfänger-Themen 7
M Position des BufferedReader Java Basics - Anfänger-Themen 6
J Programm-Fesnter Position Java Basics - Anfänger-Themen 4
O Maus / Pixel Position bei mir und bei anderen. Java Basics - Anfänger-Themen 8
F Position JTextField Java Basics - Anfänger-Themen 4
B aktuelle Position einer JTextArea ermitteln Java Basics - Anfänger-Themen 6
C Position eines Fensters bestimmen Java Basics - Anfänger-Themen 3
H problem mit button position Java Basics - Anfänger-Themen 4
G Bestimmte Position im array auslesen Java Basics - Anfänger-Themen 8
M Array, Int-wert Ziffer je Position zuweisen Java Basics - Anfänger-Themen 3
B String vom Server nach Position... (erledigt) Java Basics - Anfänger-Themen 6
H Exception: illegal component position Java Basics - Anfänger-Themen 5
G Position eines Objekts auf Webseite herausfinden Java Basics - Anfänger-Themen 9
hdi Grösse & Position von JScrollBar Java Basics - Anfänger-Themen 28
G TrayIcon: Wie aktuelle Position des Icons erhalten? Java Basics - Anfänger-Themen 2
D Fensterrahmen und Position ändern. Java Basics - Anfänger-Themen 5
M Maus position abfragen und setzen? Java Basics - Anfänger-Themen 1
G Position Java Basics - Anfänger-Themen 7
R Position in ArrayList ermitteln Java Basics - Anfänger-Themen 5
R Element an Position in ArrayList checken Java Basics - Anfänger-Themen 4
D Dateizugriff - An bestimmter Position Lesen (Random Access) Java Basics - Anfänger-Themen 2
H Finde Position Java Basics - Anfänger-Themen 4
J mouseover Text => Bildanzeige an bestimmter Position.Wie Java Basics - Anfänger-Themen 2
B Position einer Ziffer im String bestimmen Java Basics - Anfänger-Themen 4
T Zeichen eines Strings an festgelegter Position einfügen Java Basics - Anfänger-Themen 8
J Jedes Element in 2 Arrays mit gleicher Position addieren Java Basics - Anfänger-Themen 12
C Absolute Cursor Position oder doch relative? Java Basics - Anfänger-Themen 4
L Gezielte Infos aus Datei holen - Suche nach Position/Wort Java Basics - Anfänger-Themen 22
M Servlet position bestimmen Java Basics - Anfänger-Themen 3
T aktuelle Position in einer Datei Java Basics - Anfänger-Themen 4
B String in ein RandomAccessFile einfügen (bestimmte Position) Java Basics - Anfänger-Themen 4
bernd An der Position des Cursors String einfügen Java Basics - Anfänger-Themen 11
C Position im Objekt-Stream Java Basics - Anfänger-Themen 2
G x-,y-position java-applet Java Basics - Anfänger-Themen 2
W Double or Float zusammenrechnen Java Basics - Anfänger-Themen 15
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
ms_cikar Bin to Float convertieren funktioniert nicht Java Basics - Anfänger-Themen 24
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
B String to Float Java Basics - Anfänger-Themen 27
A Negative float Werte? Java Basics - Anfänger-Themen 10
J Float Frage Java Basics - Anfänger-Themen 1
K Überprüfen ob Eingabe ein Float ist Java Basics - Anfänger-Themen 4
V Variablen Genauigkeit von float Java Basics - Anfänger-Themen 3
M Datentypen Byte, Float und Boolean Java Basics - Anfänger-Themen 13
MiMa String nach float Konvertieren Java Basics - Anfänger-Themen 23
S Math.ceil für float Java Basics - Anfänger-Themen 1
T Kann erbende Klasse Attribute der vererbenden Klasse anpassen (int -> float)? Java Basics - Anfänger-Themen 9
J Array zu float Java Basics - Anfänger-Themen 6
I Datentypen float-Grenzen (?) Java Basics - Anfänger-Themen 21

Ähnliche Java Themen

Neue Themen


Oben