Fressen einsammel funktioniert nur ein parmal

Status
Nicht offen für weitere Antworten.

Chucky

Aktives Mitglied
Moin ich hab folgendes Problem:
Hab den Quelltext von einem eurer Tutorials das im Forum erwähnt wird und versucht einen Ball zu coden der sich über den Bildschirm bewegt an den Seiten abprallt und kleine Hinternisse vernichtet wenn er auf deren x-Position trifft(nicht auf die y_Position) Wenn ich das Applet nun laufen lasse vernichtet der Ball die kleinen Pünktchen(im Code Food genannt) nur 1-3 mal. Danach lassen sie sich nicht mehr durch den Ball stören.
Vielleicht kann mir ja jemand helfen und sagen warum. Hier mal der Code:

Code:
import java.awt.*;
import java.applet.*;
import java.util.*;
public class Physikballodb extends Applet implements Runnable {
	int radius;
	int appletsize_x;
	int appletsize_y;
	int x_pos;
	int x_speed;
	int y_pos;
	int y_speed;
	int time;
	Random r=new Random();
	int Food1x=r.nextInt(499)+1;
	int Food1y=r.nextInt(499)+1;
	public void init(){
		radius=10;
		appletsize_x=500;
		appletsize_y=500;
		x_pos=100;
		x_speed=1;
		y_pos=200;
		y_speed=1;
		time=1;
		setBackground(Color.red);
	}
	public void start(){
		Thread th = new Thread(this);
		th.start();
	}
	public void stop(){
		
	}
	public void destroy(){
		
	}
	public boolean keyDown (Event e, int key){
		if(key == Event.LEFT)
			x_speed=-1*time;
		else if(key == Event.RIGHT)
			x_speed=+1*time;
		else if(key == Event.UP)
			y_speed=-1*time;
		else if(key == Event.DOWN)
			y_speed=+1*time;
		return true;
	}
	public boolean mouseDown (Event e, int x, int y){
		time++;
		return true;
	}
	public void run(){
		Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
		while(true){
			if(x_pos>appletsize_x-radius){
				x_speed=-1*time;
			}
			else if(x_pos<radius){
				x_speed=+1*time;
			}
			if(y_pos>appletsize_y-radius){
				y_speed=-1*time;	
			}
			else if(y_pos<radius){
				y_speed=+1*time;
			}
			x_pos+=x_speed;
			y_pos+=y_speed;
			if(x_pos==Food1x){
				Food1x=r.nextInt(499)+1;
				Food1y=r.nextInt(499)+1;
			}
			repaint();
			try{
				Thread.sleep(20);
			}
			catch(InterruptedException ex){
				
			}
			Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
		}
	}
	public void paint(Graphics g){
		g.setColor(Color.blue);
		g.fillRect(0,0,500,500);
		g.setColor(Color.yellow);
		g.fillOval(x_pos-radius,y_pos-radius,2*radius,2*radius);
		g.drawString("x:"+Food1x+"y:"+Food1y,20,20);
		g.fillOval(Food1x,Food1y,10,10);
	}	
}

Als letztes würd ich noch ganz gern wissen wie ich die Punkte ganz einsammel kann... also das auch mit der y-Koordinate hereinbring. Ich kann ja nicht einfach x_pos==food1x und x_pos==food1y machen weil ich sonst genau mit der Mitte des Balles in die Mitte des Fressens treffen müsste. Wie kann ich das ganze flächendeckender machen?

Danke schonmal für eure Hilfe

Mfg Bob
 

Wildcard

Top Contributor
Als erstes mal würd ich aus dem Applet ein JApplet machen!
Was so ein "J" alles ausmacht :shock:
Kann es zufällig sein das dein "Problem" nur dann auftritt wenn der kleine Ball
am linken oder rechten Rand liegt? Bei mir ist es jedenfalls so. :wink:
Liegt einfach daran das der eine Ball größer ist, also früher abprallt und nie die
x-Koordinate des kleinen erreicht.
Schreib dir für den großen Ball eine Kolisionsabfrage die bei Bewegung prüft ob der kleine
Ball sich im relevanten x/y Bereich befindet.
 

Chucky

Aktives Mitglied
Bin relativ doof und hab noch nich soviel Erfahrungen mit Java^^ halt nur aus der Schule...
was is der Unterschied zwischen Applet und JApplet in der Schule machen wir nur Applets...
Habs gerad nochmal versucht der kleine Ball verschwindet auch bei den Koordinaten 354|495 nicht und da ist es ja eigentlich nicht zu nah am rand...

Mfg Bob
 

Wildcard

Top Contributor
JApplet gehört zu Swing.
Swing ist eigentlich immer besser als AWT.
JApplet ist standartmässig doubleBuffered, deshalb
kriegt man nicht so schnell Kopfweh wie bei deinem Applet :wink:
Hab mir das jetzt nur kurz angschaut, denke aber das Problem taucht nur
auf wenn du die Geschwindigkeit erhöst.
Das liegt daran das du die Positionen auf Gleichheit überprüfst, und sie
bei einer Geschwindigkeit > 1 eventuel nie gleich sind.
 

Chucky

Aktives Mitglied
Achso jo stimmt...darüber hab ich mir noch garkeine Gedanken gemacht^^
Wenn ich jetzt das ganze in ein Japplet schreiben will muss ich das dann komplett umlernen
oder hat das ganze viel gemeinsam?

Mfg Bob
 

Wildcard

Top Contributor
Es gibt schon unterschiede, aber bei so einfachen Progs ist das kein Problem.
In deinem Fall kannst du einfach statt Applet JApplet schreiben und den Import
korrigieren (import javax.swing.JApplet;)
 

Chucky

Aktives Mitglied
Hab ich gemacht nur hab ich jetzt das Problem dass ich weder steuern noch speed erhöhren kann:(

Mfg Bob
 

Wildcard

Top Contributor
Hätte mir dein Prog doch genauer ansehen sollen!
Hab gar nicht gemerkt das das geht :oops:
Das EventHandling hat sich in Swing geändert, ist so ziemlich der
wichtigste Unterschied zu AWT.
Da musst du dich irgendwann mal einlesen, um Swing kommt man nicht mehr herum.
Aber flimmern tut's nicht mehr so :wink:
 

Chucky

Aktives Mitglied
kk haste nen leichten link für mich zum eventhandlin in swing? hoffe das wird mir nich wieder zu komplex^^

Mfg Bob
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M HelloWorld.txt nach HelloWorld.java in Win11 funktioniert nicht Java Basics - Anfänger-Themen 4
A Signierte Exe Datei funktioniert nicht mehr Java Basics - Anfänger-Themen 1
A Signierte Exe Datei funktioniert nicht mehr Java Basics - Anfänger-Themen 3
C my_table.setRowSelectionAllowed(true) funktioniert nicht; Java Basics - Anfänger-Themen 0
B Warum funktioniert die Lösung von CodeGym aber meine nicht? Java Basics - Anfänger-Themen 3
I Webservice funktioniert nicht Java Basics - Anfänger-Themen 5
C Abbruch einer Schleife mit break, meine Übung funktioniert nicht richtig Java Basics - Anfänger-Themen 4
S Erstes Programm: Hallo Welt funktioniert nicht. Java Basics - Anfänger-Themen 3
J Datenüberwachung funktioniert nicht Java Basics - Anfänger-Themen 9
mo13 JTextField funktioniert nicht Java Basics - Anfänger-Themen 4
G .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
G Mit jPackage erstellte EXE funktioniert nicht Java Basics - Anfänger-Themen 2
G Robot funktioniert nicht bei SelectionListener Java Basics - Anfänger-Themen 6
R RegEx funktioniert nicht Java Basics - Anfänger-Themen 14
S 2 Reihen ratio-btn, eine Reihe funktioniert andere nicht Java Basics - Anfänger-Themen 4
monsterherz Punkt Notation funktioniert nicht Java Basics - Anfänger-Themen 4
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
D Quellcode für cmd funktioniert nicht Java Basics - Anfänger-Themen 9
ms_cikar Bin to Float convertieren funktioniert nicht Java Basics - Anfänger-Themen 24
B Schrankensystem mit Farberkennung für Flashgame funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
I Greenscreen, funktioniert nicht zu 100%... nicht alle Pixel werden geändert Java Basics - Anfänger-Themen 1
JordenJost char variable funktioniert irgendwie nicht a+b ergibt nicht à Java Basics - Anfänger-Themen 4
M Operatoren Strings mit Vergleichsoperatoren, funktioniert das? Java Basics - Anfänger-Themen 9
Garrit1994 Continue funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
B Methoden Übergebe Variabel funktioniert nicht Java Basics - Anfänger-Themen 17
P exportiertes Programm funktioniert nur teilweise Java Basics - Anfänger-Themen 7
Agent4nobody Programmstart durch aufruf des interpreters funktioniert nicht Java Basics - Anfänger-Themen 14
Fugover Programm funktioniert nicht Java Basics - Anfänger-Themen 11
X Datentypen String.equals funktioniert nicht Java Basics - Anfänger-Themen 5
berserkerdq2 wie funktioniert contenthandler, was muss ich bei der Methode startElement und endElement tun? Java Basics - Anfänger-Themen 11
Alen123 Warum funktioniert mein Code nicht? Java Basics - Anfänger-Themen 64
sserio Array funktioniert nicht Java Basics - Anfänger-Themen 2
sserio Wieso funktioniert mein Programm nicht Java Basics - Anfänger-Themen 2
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
sserio Größtes Palindrom-Produkt Programm funktioniert nur halb Java Basics - Anfänger-Themen 23
sserio Rekursion größten Primfaktor finden funktioniert nicht Java Basics - Anfänger-Themen 8
sserio Wieso funktioniert mein TableView nicht /JavaFX. Java Basics - Anfänger-Themen 4
Avalon Warum funktioniert eine Bedingung und eine andere nicht? Java Basics - Anfänger-Themen 2
J Datentypen String in File konvertieren funktioniert nicht Java Basics - Anfänger-Themen 4
U Wie genau funktioniert der ! Operator Java Basics - Anfänger-Themen 3
stormyark 4 Bit in einer for-schleife funktioniert nicht Java Basics - Anfänger-Themen 3
J Nach dem Exportieren funktioniert mein Programm nicht mehr Java Basics - Anfänger-Themen 8
M Java printf(Locale.... funktioniert nicht Java Basics - Anfänger-Themen 3
N Wieso funktioniert die Deklaration nicht Java Basics - Anfänger-Themen 3
C Long value an Stringbuilder übergeben, equals Methode funktioniert nicht Java Basics - Anfänger-Themen 2
districon Backtracking funktioniert nicht ganz Java Basics - Anfänger-Themen 3
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
S Math.random funktioniert nicht Java Basics - Anfänger-Themen 5
S Schleife funktioniert nicht Java Basics - Anfänger-Themen 2
B Ausgabe in TextArea funktioniert nicht Java Basics - Anfänger-Themen 2
Henri Webservice Delete und Update Methode funktioniert nicht Java Basics - Anfänger-Themen 27
J ActionListener von JCheckBox im Knoten von JTree funktioniert nicht Java Basics - Anfänger-Themen 2
C System.out.println - Parameterübergabe funktioniert nicht Java Basics - Anfänger-Themen 2
JD_1998 Hilfsmethode if return funktioniert nicht Java Basics - Anfänger-Themen 2
C JButton Text 2 Mal ändern funktioniert nicht Java Basics - Anfänger-Themen 8
T % funktioniert nicht Java Basics - Anfänger-Themen 2
D e(fx)clipse installieren funktioniert nicht Java Basics - Anfänger-Themen 3
D GPIO Nutzung mit Pi4J Library auf Raspberry funktioniert nicht Java Basics - Anfänger-Themen 3
F Java GUI-PaintComponent funktioniert nicht Java Basics - Anfänger-Themen 1
J equals funktioniert nicht - Warum Java Basics - Anfänger-Themen 13
L hilfe run button funktioniert nicht Java Basics - Anfänger-Themen 13
I Array funktioniert nicht. Java Basics - Anfänger-Themen 2
T if else Befehl funktioniert nicht richtig Java Basics - Anfänger-Themen 27
V_Fynn03 Erste Schritte BubbleSort Quelltext funktioniert noch nicht Java Basics - Anfänger-Themen 1
V_Fynn03 Erste Schritte JButton funktioniert nicht trotz richtiger Methode. Java Basics - Anfänger-Themen 17
R Erste Schritte Eclipse - Java - System.out.println(); funktioniert nicht Java Basics - Anfänger-Themen 2
G Programm mit Schleife funktioniert nicht Java Basics - Anfänger-Themen 5
T Redirect funktioniert nicht Java Basics - Anfänger-Themen 3
R Mein Plugin funktioniert nicht? Java Basics - Anfänger-Themen 10
J Zufallszahl funktioniert nicht Java Basics - Anfänger-Themen 27
D Klassen add Methode funktioniert nicht. Java Basics - Anfänger-Themen 31
J ImagaIO funktioniert nicht unter Ubuntu Java Basics - Anfänger-Themen 23
F Vergleiche mit charAt funktioniert bei Strings nicht, was tun? Java Basics - Anfänger-Themen 5
N Wochentagberechner Ausgabe funktioniert nicht Java Basics - Anfänger-Themen 7
G Mein Java Projekt funktioniert nicht Java Basics - Anfänger-Themen 5
J Einlesen von Datei funktioniert nicht Java Basics - Anfänger-Themen 8
W Wieso funktioniert mein Switch Case nicht ?! Java Basics - Anfänger-Themen 9
P Zeichenkette Zeichen ausschlißen funktioniert nicht richtig Java Basics - Anfänger-Themen 9
F Primzahlsuche Schleife funktioniert nicht, HILFE! Java Basics - Anfänger-Themen 8
M Methoden Arrays.deepequals() funktioniert nicht Java Basics - Anfänger-Themen 2
B Statische Methode return funktioniert nicht. Java Basics - Anfänger-Themen 19
S JDK 9 für Windows 32 bit installiert, aber es funktioniert nix Java Basics - Anfänger-Themen 6
F Input/Output die eine txt-Datei funktioniert die andere nicht Java Basics - Anfänger-Themen 8
CptK Interface Bild über Methode ändern funktioniert nicht Java Basics - Anfänger-Themen 4
D Funktion zwei Arraylisten zu verleichen ob gleich funktioniert nicht Java Basics - Anfänger-Themen 26
A Hilfe bei Rekursion,Ich verstehe nicht,wie funktioniert die Rekursion in der Methode "walk" Java Basics - Anfänger-Themen 13
P Vererbung Warum funktioniert die Vererbung hier nicht Java Basics - Anfänger-Themen 14
P Upload Button funktioniert nicht Java Basics - Anfänger-Themen 13
S Dijkstra Algorithmus funktioniert nicht Java Basics - Anfänger-Themen 4
M Datei einlesen mit Scanner funktioniert nicht (FileNotFoundException) Java Basics - Anfänger-Themen 6
A TicTacToe funktioniert bis auf "schiefer" Sieg Java Basics - Anfänger-Themen 6
M Erste Schritte Importieren funktioniert nicht Java Basics - Anfänger-Themen 7
N Funktion funktioniert nicht immer Java Basics - Anfänger-Themen 6
F FileCreation - PrintWriter funktioniert nicht... Java Basics - Anfänger-Themen 1
I Collections.shuffle funktioniert nicht Java Basics - Anfänger-Themen 1
T Methode in Klasse funktioniert nicht Java Basics - Anfänger-Themen 14
T While Schleife funktioniert nicht Java Basics - Anfänger-Themen 14
C Warum funktioniert 'instanceof' bei generics nicht? Java Basics - Anfänger-Themen 4
M Frage, wie dieser Code funktioniert, bzw. weshab er bei mir nicht funktioniert Java Basics - Anfänger-Themen 4
L Level Reset funktioniert nicht Java Basics - Anfänger-Themen 3

Ähnliche Java Themen


Oben