1)JButtons zeichnen 2)Kolisionsabfrage von zwei Objekten

Status
Nicht offen für weitere Antworten.

Bohno

Mitglied
Hi,
also schonmal danke im Vorraus ;)

1)also zu meiner ersten Fragem es ist schon länger her, dass ich mit Buttosn gearbetie habe, aber ich habe eine Klasse mit der ich verschiedene Images zeichnen in dieser Klasse möchte ich nun Buttons zeichnen. Mein problem ist, dass ich sie nicht versetzen kann (sind immer oben links) und das sie nicht auf klick reagieren.

Code:
	public void buttons(Graphics g)
	{
		 b_nameOk.setBackground(Color.black);
		 b_nameOk.setSize(100,50);
		 b_nameOk.setLocation(450,600);
		 b_nameOk.addActionListener(this);
		 g.setColor(Color.cyan);
	 	 b_nameOk.paint(g);
	}

2)zu meiner zwieten Frage: ich habe ein Spielfeld auf dem sich Objekte bewegen. Diese bewegen sich ncith in einem raster sollen sie auch nicht ;) ich habe jetzt eine Kolisionsabfrage geschrieben, bei der Java manchmal zu spät merkt da das objekt da nicht hingehen kann. Habt ihr einen vorschlag:

Code:
	public boolean kolosion(ArrayList<Point[]> p, int richtung)
	{
		if(z_erreicht==false)
		switch(richtung)
		{
		case 1:
			for(int i=0;i<p.size();i++)
				if(p.get(i)[2].x-(int)x_pos<0&&p.get(i)[3].x-(int)x_pos>0&&p.get(i)[0].y<(int)y_pos&&(int)y_pos<p.get(i)[2].y)
					if(p.get(i)[2].x<(int)x_pos&&(int)x_pos<p.get(i)[3].x)
						return false;
				else if(p.get(i)[2].x-(int)x_pos>0&&p.get(i)[2].x-(((int)x_pos)+image.getWidth(this))<0&&p.get(i)[0].y<(int)y_pos&&(int)y_pos<p.get(i)[2].y)
					if(p.get(i)[2].x<((int)x_pos+image.getWidth(this))&&((int)x_pos+image.getWidth(this))<p.get(i)[3].x)
						return false;
			break;
		case 2:

mit der ArrayListe werden die vier eckpuntke aller Objekte übergene, richtung ist der wert wo sich das objekt hinbewegen will.

ich bedanke mich schon mal :toll:

MfG
Bohno
 

Fu3L

Top Contributor
Zu 2): Gewöhn dir schleunigst an auf diesen Unfug mit dem Klammerweglassen zu verzichten (ich weiß gar nciht, warums die Möglichkeit von der Sprache aus überhaupt gibt):

Code:
            if(p.get(i)[2].x-(int)x_pos<0&&p.get(i)[3].x-(int)x_pos>0&&p.get(i)[0].y<(int)y_pos&&(int)y_pos<p.get(i)[2].y)
               if(p.get(i)[2].x<(int)x_pos&&(int)x_pos<p.get(i)[3].x)
                  return false;
            else if(p.get(i)[2].x-(int)x_pos>0&&p.get(i)[2].x-(((int)x_pos)+image.getWidth(this))<0&&p.get(i)[0].y<(int)y_pos&&(int)y_pos<p.get(i)[2].y)

So wie du das "else if" eingerückt hast, wirds wahrscheinlich nicht ausgeführt. Woher soll der Compiler auch wissen, dass das "else if" nicht zum if darüber, sondern zum umgebenden if gehören soll?
 

Bohno

Mitglied
jap thx der fehler war , dass das "else if" manchmal zu dem einen "if"und dann wieder zum anderne "if" gezogen wurde
thx schonmal bleibt nur noch das ander porb :)
 

Bohno

Mitglied
hey danke für deine schnelle antwort. Ich habe mir das eben angeguckt aber habe eine Frage kann ich da meien Buttons auch pixel genau zeichnen

ich denke, dass ich schwierigkeiten bekommen würde wenn ich das an einem raster ausrichter muss.

es wäre gut wenn ich die buttons nach pixel zeichnen könnten, denn dann könnte ich sie ja auch in einen negativen bereich zeichnen, da ich bei mir auf der map scrollen kann.

hoffe ihr habt mich verstanden ;)
 

Fu3L

Top Contributor
Du könntest natürlich das null-layout verwenden:

Code:
setLayout(null);

JButton btn = new JButton("Test");
btn.setBounds(50, 50, 100, 50);
add(btn);

Das wäre jezz ein Button, der in irgendeiner Klasse, in die man Buttons einbauen kann, an der Position 50, 50 sitzt und 100x50 px groß ist (allerdings weiß ich nicht, ob man die dann auch in den negativen Bereich packen kann)...

Bei ner Karte für ein Spiel oder ähnliches wären vllt auch andere Lösungen besser, aber genau sagen kann man das nicht, ohne mehr zu wissen. Kannst dir ja vllt mal Quaxlis Tutorial für 2D-Spiele durchlesen (hier im Board in der Tut-Sammlung).

Edit: Ich seh grad: Is ja auch in seiner Signatur verlinkt^^
 

Bohno

Mitglied
hey in dem tutorial habe ich leider nichts über Buttons gefunden.
also ich habe das mit dem layout(null) ausprobiert er zeichnet es aber ledier imemrnoch oben links hin.

Code:
	public Display(int width,int heigth)
	{
		this.width=width;
		this.height=heigth;	
	    footer =Toolkit.getDefaultToolkit().getImage("image/feste_icons/footer.gif");
	    header =Toolkit.getDefaultToolkit().getImage("image/feste_icons/header.gif");
	    mini_karte =Toolkit.getDefaultToolkit().getImage("image/minikarte.jpg");
	    streck_faktor_x=2430/179;
	    streck_faktor_y=2385/178;
	    
            this.setLayout(null);
            btn.setBounds(200, 200, 100, 50);
	    this.add(btn);
	}

zeichen methode
Code:
	public void buttons(Graphics g)
	{
		btn.paint(g);
	}

übersehe ich irgendwas

?
 

Fu3L

Top Contributor
Ich versteh nich, warum du für die Buttons nochmal paint(g) aufrufst? Wenn du schreibst: irgendeinPanel.add(btn); dann wird der Button automatisch auf das Panel gezeichnet...

Und es stimmt: Das Tutorial beschäftigt sich mit Spielen, ohne Buttons, Labels und co zu benutzen, weil Labels und Buttons sind meist fehl am Platze in Games (kommt aber drauf an, was man machen will).
 

Quaxli

Top Contributor
Bohno hat gesagt.:
hey in dem tutorial habe ich leider nichts über Buttons gefunden...

Na, hoffentlich. Ich müßte mir schwere Gedanken machen, wenn da auf einmal was über Buttons drin stehen würde. ;)

Worauf Fu3l die hinweisen wollte: Offensichtlich willst Du eine Art Spiel realisieren und das mit JButtons realisieren?
Kurz gesagt: Man realisiert so etwas nicht mit Swing-Komponenten. Punkt.
Lies Dir mein Tutorial oder ein beliebiges anderes zum Thema Spieleprogrammierung durch. Du wirst dort nur sehr wenig Swing-Komponenten finden. Zum einen schleppst Du viel zu viel Overhead mit Dir rum, zum anderen wirst Du später noch mehr Probleme kriegen, wenn Du erweiterte Logik einbauen willst.

<offtopic>
1000. Beitrag!!!!!! Ich bin 4-stellig :)
</offtopic>
 

Bohno

Mitglied
Hey danke für eure antworten.

ich denke schon das buttons benutz werden um im spiel ein menu zu öffnen etc oder wie würdest du ads realiserein. guck auf was für ein objekt die maus ist. würde ach gehen, aber ich denke das ist umständlich als eien button dafür zu benutzen oder :)

ich lasse mich gerne belehren

und danke nochmal
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
astro151 JButtons mit Mausklicks bewegen Spiele- und Multimedia-Programmierung 2
E relevanter bereich einer isometrischen karte zeichnen (AffineTransform) Spiele- und Multimedia-Programmierung 0
SaftigMelo Kreissegment zeichnen Spiele- und Multimedia-Programmierung 2
E Buttons neu zeichnen im GridLayout Spiele- und Multimedia-Programmierung 2
A Zeichnen außerhalb der paint-Methode Spiele- und Multimedia-Programmierung 6
E Isometrische Tiles mit unterschiedlicher Größe an korrekter Position zeichnen Spiele- und Multimedia-Programmierung 1
Androbin Mein Spiel will sich nicht zeichnen lassen !!! Spiele- und Multimedia-Programmierung 7
J Int Wert auf JFrame zeichnen Spiele- und Multimedia-Programmierung 3
H [ANIMATION] Hintergrundbild nur einmal zeichnen Spiele- und Multimedia-Programmierung 3
R [lwjgl] Cursor -> versetzt Zeichnen / Bild ist umgedreht Spiele- und Multimedia-Programmierung 2
M Methoden eine Map zu zeichnen Spiele- und Multimedia-Programmierung 5
aze Nicht rechteckiges Bild zeichnen Spiele- und Multimedia-Programmierung 5
F nur Ausschnitt eines Image zeichnen Spiele- und Multimedia-Programmierung 9
T 3D Graphen Zeichnen Spiele- und Multimedia-Programmierung 19
F Kurven zeichnen Spiele- und Multimedia-Programmierung 2
E Keine Werte zum Zeichnen werden Übergeben Spiele- und Multimedia-Programmierung 3
A Halbkreise zeichnen lassen? Spiele- und Multimedia-Programmierung 2
F Lineal mit Zahlen zeichnen Spiele- und Multimedia-Programmierung 7
N Linie mit Rand zeichnen Spiele- und Multimedia-Programmierung 10
A Mehrere geometrische Objekte in JPanel zeichnen Spiele- und Multimedia-Programmierung 4
A Optimiertes Zeichnen - wie? Spiele- und Multimedia-Programmierung 8
data89 Koordinaten in Koordinatensystem zeichnen Spiele- und Multimedia-Programmierung 11
M Binärbaum ohne Überlappung zeichnen Spiele- und Multimedia-Programmierung 3
H Decke zeichnen mit Hilfe eines Polygons Spiele- und Multimedia-Programmierung 2
G Linie im Applet zeichnen Spiele- und Multimedia-Programmierung 5
G Schüsse zeichnen, Fehler? Spiele- und Multimedia-Programmierung 3
S Dreieck zeichnen Spiele- und Multimedia-Programmierung 9
G Überlagern von Strings beim zeichnen verhindern Spiele- und Multimedia-Programmierung 3
C Objekt bei Buttonklick zeichnen Spiele- und Multimedia-Programmierung 16
G Geschwungene Klammer zeichnen Spiele- und Multimedia-Programmierung 5
F Neu zeichnen verhindern Spiele- und Multimedia-Programmierung 25
J Zeichnen in BufferedImage und dieses in Datei speichern Spiele- und Multimedia-Programmierung 2
O Funktion zeichnen Spiele- und Multimedia-Programmierung 11
A Lissajous Figuren zeichnen Spiele- und Multimedia-Programmierung 1
G Maus springt --> Free-Hand-Zeichnen Spiele- und Multimedia-Programmierung 2
L Schüsse zeichnen Spiele- und Multimedia-Programmierung 13
M Eigene Strings zeichnen Spiele- und Multimedia-Programmierung 4
T Blitz berechnen und zeichnen Spiele- und Multimedia-Programmierung 13
M auswahlkreis zeichnen (schräg) Spiele- und Multimedia-Programmierung 4
N Logik: Grenz-/Frontlinie zeichnen Spiele- und Multimedia-Programmierung 4
M Grafikprogramm, zeichnen mit Maus Spiele- und Multimedia-Programmierung 7
G Problem beim Zeichnen von LineArrays Spiele- und Multimedia-Programmierung 9
P linie in bild zeichnen Spiele- und Multimedia-Programmierung 2
G Auf 3D Box zeichnen Spiele- und Multimedia-Programmierung 4
K mit Canvas übereinander zeichnen Spiele- und Multimedia-Programmierung 4
G 3D Raum zeichnen Spiele- und Multimedia-Programmierung 7
H Kreis zeichnen mittels Schleife & drawLine Spiele- und Multimedia-Programmierung 4
B Probleme beim zeichnen Spiele- und Multimedia-Programmierung 15
N Bild zu zeichnen (drawImage) klappt nur manchmal?? Spiele- und Multimedia-Programmierung 8
T Effizient zeichnen Spiele- und Multimedia-Programmierung 12
H mit Java2D Markierung über JTable zeichnen und diese bewegen Spiele- und Multimedia-Programmierung 2
C Graphische Benutzerschnittstelle, Problem beim Zeichnen Spiele- und Multimedia-Programmierung 4
J schnellste alternative um in java zu "zeichnen" Spiele- und Multimedia-Programmierung 17
conan2 Objekte in richtiger Z-Reihenfolge zeichnen Spiele- und Multimedia-Programmierung 2
G Punkte in Java3D zeichnen Spiele- und Multimedia-Programmierung 2
S Pixel zeichnen Spiele- und Multimedia-Programmierung 3
S Bild in Speicherbild zeichnen = Nichts? Spiele- und Multimedia-Programmierung 3
G Farbig zeichnen ohne java.awt.Color? Spiele- und Multimedia-Programmierung 5
S Wie kann ich das Zeichnen der Grafik feiner machen? Spiele- und Multimedia-Programmierung 9
M Wie kann man Kreisringe zeichnen ? Spiele- und Multimedia-Programmierung 12
C Graphics 2D Zeichnen Spiele- und Multimedia-Programmierung 4
R Kreuz lässt sich nicht zeichnen Spiele- und Multimedia-Programmierung 11
F einzelne Polygone(Graphics) schneller als and. Fig. zeichnen Spiele- und Multimedia-Programmierung 3
K Kugeln und Zylinder zeichnen Spiele- und Multimedia-Programmierung 4
L ein Rechteck zeichnen Spiele- und Multimedia-Programmierung 6

Ähnliche Java Themen

Neue Themen


Oben