Spiel-Programmieren. Wenn ein Objekt den anderen berührt.

SystemExit

Mitglied
Also,
Ich habe zwei jLabels mit Icons.
Ein jlabel kann sich bewegen- wenn er den anderen jlabel berührt, soll der jLabel seinen Icon wechseln.
Ich weiss aber nicht, wie ich den zweiten Teil umsetzten kann. Also ich kann ja nicht die Location der beide vergleichen, weil die sich ja schon früher "berühren".
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class NeuesProjekt extends JFrame implements KeyListener  {
  // start attributes
  private JLabel FigurMain = new JLabel();
  private ImageIcon figurMainIcon = new ImageIcon(getClass().getResource("images/InfizierterJunge.png"));
  private JLabel FigurNichtInfiziert = new JLabel();
  private ImageIcon figurNichtInfiziertIcon = new ImageIcon(getClass().getResource("images/normalerJunge.png"));
  // end attributes

  public NeuesProjekt() {
    super("VirusRun!");
    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    int frameWidth = 326;
    int frameHeight = 323;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    setResizable(false);
    Container cp = getContentPane();
    cp.setLayout(null);
    // start components
    this.addKeyListener(this);
    FigurMain.setBounds(120, 144, 41, 49);
    FigurMain.setIcon(figurMainIcon);
    cp.add(FigurMain);
    FigurNichtInfiziert.setBounds(72, 144, 41, 49);
    FigurNichtInfiziert.setIcon(figurNichtInfiziertIcon);
    cp.add(FigurNichtInfiziert);
    // end components
    setVisible(true);
  }

  public static void main(String[] args) {
    new NeuesProjekt();
  }

   public void keyTyped(KeyEvent e) {
    }

    public void keyPressed(KeyEvent e) {
      if(e.getKeyCode() == KeyEvent.VK_RIGHT) {
      FigurMain.setLocation(FigurMain.getLocation().x +1, FigurMain.getLocation().y);
      InfiziertAufNichtInfiziert();
    } else if (e.getKeyCode() == KeyEvent.VK_LEFT){
      FigurMain.setLocation(FigurMain.getLocation().x -1, FigurMain.getLocation().y);
      InfiziertAufNichtInfiziert();
    } else if(e.getKeyCode() == KeyEvent.VK_DOWN) {
      FigurMain.setLocation(FigurMain.getLocation().x, FigurMain.getLocation().y+1);
      InfiziertAufNichtInfiziert();
    } else if(e.getKeyCode() == KeyEvent.VK_UP) {
      FigurMain.setLocation(FigurMain.getLocation().x, FigurMain.getLocation().y -1);
      InfiziertAufNichtInfiziert();
    }
  }

    public void keyReleased(KeyEvent e) {
    }

    public void InfiziertAufNichtInfiziert() {
    if ( /* hier treffen sich beide, weiss aber nicht, was ich vergleichen muss*/) {
      FigurNichtInfiziert.setIcon(figurMainIcon);
    }
   
  }
   

  // end methods
} // end of class NeuesProjekt
https://www.java-forum.org/thema/bild-beruehrt-bild.128003/ da wurde zwar das Gleiche gefragt, ich verstehe es abernicht wirklich.
 
Zuletzt bearbeitet:
K

kneitzel

Gast
Also erst einmal bitte die Namenskonventionen einhalten. Ersten Buchstaben von Methoden und Instanz-/Lokale Variablen klein von Klassen groß schreiben.

Und Deine Label haben doch einen Ort und eine Größe. Damit sollte es doch einfach sein zu prüfen, ob die sich berühren / überschneiden. Da die Größe gleich ist musst du auch gewisse Sonderfälle nicht betrachten. Somit reicht es sogar die Positionen zu vergleichen. dx muss <= Breite und dy <= Höhe sein. Mit dx und dy dem (positiven) Abstand zwischen den Punkten in x bzw. y Richtung.
 

SystemExit

Mitglied
Also erst einmal bitte die Namenskonventionen einhalten. Ersten Buchstaben von Methoden und Instanz-/Lokale Variablen klein von Klassen groß schreiben.

Aber "FigurMain" ist doch richtig oder ? dachte alles was sichtbar ist, wird gross geschrieben. Also Label, Button und so weiter
Alles andere ist klar, wird geändert.

Somit reicht es sogar die Positionen zu vergleichen. dx muss <= Breite und dy <= Höhe sein. Mit dx und dy dem (positiven) Abstand zwischen den Punkten in x bzw. y Richtung.

Das habe ich nicht richtig verstanden. Vielleicht einmal ohne Programmierung, was macht man genau? welchdn Abstand? Verstehe es nicht so richtig., auch ohne Programmierung.

Also man hat die Breite und die Höhe ? Und dann rechnet man den Abstand zwischen den Punkten in x bzw- y richtung?
 
K

kneitzel

Gast
Mal es Dir einmal auf. Generell ist es doch so, dass eine Kollision vorliegt, wenn ein Eckpunkt des einen Elements innerhalb/auf dem Rechteck des anderen Elements ist.

Damit hast du 4 Bedingungen, die du überprüfen kannst / musst. => universelle Lösung

Du kannst aber auch jeden Punkt darstellen mit der Position des Elements und der Größe des Elements.
Das kannst du auch einsetzen bei den 4 Gleichungen und schauen, was da dann raus kommt.... dann kommst du auf die einfachere Darstellung,

Aber evtl. macht es auch für Dich Sinn, einfach einmal etwas die Grundlagen zu lesen. Kollisionserkennung ist ein Thema, das bei vielen Einführungen enthalten ist und zu dem es auch viele Informationen im Netz gibt ....
 

temi

Top Contributor
Aber "FigurMain" ist doch richtig oder ? dachte alles was sichtbar ist, wird gross geschrieben.

Es ist in Java als Konvention weithin anerkannt, dass Klassen, Interfaces und Enums im UpperCamelCase (Großbuchstabe am Anfang) und Variabalen und Methoden im lowerCamelCase (Kleinbuchstabe am Anfang) geschrieben werden. Konstanten werden normalerweise komplett groß geschrieben.

Mit sichtbar oder nicht hat das gar nichts zu tun.
 

SystemExit

Mitglied
Könntest du das bitte in meinem Code noch hinzufügen? Ich werde mir gleich das Ganze anschauen mit Kollisionserkennung und denke, dass ich das dann besser verstehen werde, bei meinen eigenen Code
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
G Ufo Spiel programmieren Java Basics - Anfänger-Themen 13
J Spiel programmieren Java Basics - Anfänger-Themen 16
S Spiel programmieren mit Java Java Basics - Anfänger-Themen 11
M Spiel programmieren Java Basics - Anfänger-Themen 16
kokojamboo92 Spiel programmieren Java Basics - Anfänger-Themen 1
I Spiel programmieren. Java Basics - Anfänger-Themen 16
K Kleines Spiel auf Java programmieren Java Basics - Anfänger-Themen 2
V Spiel Programmieren Java Basics - Anfänger-Themen 9
L rekursives spiel programmieren Java Basics - Anfänger-Themen 4
K Welches Spiel programmieren? Anfänger Java Basics - Anfänger-Themen 28
C Ein Handy Spiel programmieren mit Netbeans Java Basics - Anfänger-Themen 1
S Spiel Hangman programmieren - Ausgabe funktioniert nicht!!! Java Basics - Anfänger-Themen 13
I Threads Spiel gol Java Basics - Anfänger-Themen 6
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
J ArrayList vergleichen im spiel Mastermind Java Basics - Anfänger-Themen 2
enesss tictactoe spiel Java Basics - Anfänger-Themen 5
K Java Lotto Spiel; ich komme nicht weiter Java Basics - Anfänger-Themen 15
Jxhnny.lpz TicTacToe Spiel vs Computer. (Probleme) Java Basics - Anfänger-Themen 7
httprt Probleme bei dem erstellen von leveln in meinem Spiel Java Basics - Anfänger-Themen 2
berserkerdq2 Habe ein Spiel entwickelt, dass immer in der 4 Runde einen cast-Fehler erhält Java Basics - Anfänger-Themen 3
berserkerdq2 Spiel hängt sich immer in der 4 Runde auf, obwohl ich jede Runde das gleiche mache Java Basics - Anfänger-Themen 1
Ekooekoo Hilfe spiel Java Basics - Anfänger-Themen 5
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
Kennewick Basketball Spiel Ergebnisse Java Basics - Anfänger-Themen 11
X Erste Schritte Hilfe bei einem kleinen Spiel. Java Basics - Anfänger-Themen 19
D Snake-Spiel ähnliche Aufgabe Hilfe Java Basics - Anfänger-Themen 3
R Hangman-Spiel-zufälliges Wort ermitteln Java Basics - Anfänger-Themen 4
JEP1 Java Dialog Fenster schließen Spiel Java Basics - Anfänger-Themen 0
I Simples Risiko-Spiel Java Basics - Anfänger-Themen 5
Hallolu Pong-Spiel: Schläger schneller werden lassen Java Basics - Anfänger-Themen 9
M Java Spiel wie Wer wird Millionär Java Basics - Anfänger-Themen 1
T Startbildschirm für ein Spiel erstellen Java Basics - Anfänger-Themen 0
Z Kein überprüfen des gesamten Arrays möglich.(Viergewinnt Spiel) Java Basics - Anfänger-Themen 6
C Java Spiel Java Basics - Anfänger-Themen 3
B Memory Spiel Java Basics - Anfänger-Themen 29
J Memory-Spiel Aktivierung der Methode mit Timer Java Basics - Anfänger-Themen 44
Kamy Ein einfaches "Vier Gewinnt" Spiel für Anfängerin Java Basics - Anfänger-Themen 51
A Breakout-Spiel , Ball mit Platten abprallen lassen Java Basics - Anfänger-Themen 1
Olis Erste Schritte Simples Memory Spiel möglich? Java Basics - Anfänger-Themen 1
J Spiel mit Button klick starten Java Basics - Anfänger-Themen 9
C Rekursives Backtracking beim Spiel Peg Java Basics - Anfänger-Themen 22
Spencer Reid Feedback zu kleinem Spiel Java Basics - Anfänger-Themen 4
R Kleines Java Spiel funktioniert nicht. Java Basics - Anfänger-Themen 2
I Spiel Java Basics - Anfänger-Themen 34
H ein einfaches Tic Tac Toe Spiel Java Basics - Anfänger-Themen 1
B Hilfe bei Escape - Spiel Java Basics - Anfänger-Themen 6
S Java-Spiel Java Basics - Anfänger-Themen 2
M Nim-Spiel geht in den negativen Bereich Java Basics - Anfänger-Themen 1
K Klassen Registrierungsseite für ein Spiel Java Basics - Anfänger-Themen 6
J Programmierung Quiz Spiel Java Basics - Anfänger-Themen 3
J Programmierung Quiz Spiel Java Basics - Anfänger-Themen 2
M Brauche Tipps für ein Spiel Java Basics - Anfänger-Themen 4
S Probleme mit GamGrid Spiel-Erstellung => Actor reagiert nicht auf Tastatur Java Basics - Anfänger-Themen 2
Mxxxt Mosaik Spiel - Steuerpanel wird nicht angezeigt Java Basics - Anfänger-Themen 5
M Erste Schritte Zufallszahl Spiel Problem Java Basics - Anfänger-Themen 7
Z Erste Schritte Kleines 2D. Spiel Objekt Bewegung funktioniert nicht Java Basics - Anfänger-Themen 2
H Spiel Kniffel: Gesamtes Array untersuchen. Java Basics - Anfänger-Themen 15
Tacofan Hangman als fertiges Spiel Java Basics - Anfänger-Themen 7
M Array und Objektorientierung? - TicTacToe Spiel Java Basics - Anfänger-Themen 43
C Klassen Sudoku-Spiel Werte werden nicht gesetzt Java Basics - Anfänger-Themen 4
W Tic Tac Toe Spiel ohne Arrays Java Basics - Anfänger-Themen 7
S Im objektorientiertem "Spiel" kämpfen Java Basics - Anfänger-Themen 3
I Klassen Umsetzungsfrage zu Spiel "Zuul" Java Basics - Anfänger-Themen 3
F Mastermind Spiel Java Basics - Anfänger-Themen 9
H Liste ausgeben (Spiel Hey Fisch (software-challenge) ändern Anzahl Fische) Java Basics - Anfänger-Themen 1
F Game-Engine für textbasierendes Spiel: Architektur? Java Basics - Anfänger-Themen 9
K Erste Schritte Frage Antwort Spiel - Fragen zur Planung Java Basics - Anfänger-Themen 2
J Java Spiel Zufallsauswahl für Zugbeginn Java Basics - Anfänger-Themen 3
J Frage Antwort Spiel - Wie Zeitcountdown realisieren? Java Basics - Anfänger-Themen 2
L Erste Schritte Spiel: Glückliches Sieben Java Basics - Anfänger-Themen 3
T Hangman spiel Java Basics - Anfänger-Themen 5
J 2 Pc's - Spiel gegeneinander ?! Java Basics - Anfänger-Themen 3
P 2D-Spiel und Bildschirmgröße Java Basics - Anfänger-Themen 2
O Methoden Fehlermeldung(Illegal start of expression) bei 4-Gewinnt-Spiel Java Basics - Anfänger-Themen 5
T Blöcke für ein Jump and Run Spiel Java Basics - Anfänger-Themen 8
S 2D-Spiel mit Threads... Java Basics - Anfänger-Themen 3
S 2D-Spiel im Vollbild an größe anpassen? Java Basics - Anfänger-Themen 3
M hangman spiel Java Basics - Anfänger-Themen 1
K JTextField in ein Spiel einfügen Java Basics - Anfänger-Themen 2
S Mosaik Spiel Java Basics - Anfänger-Themen 19
pinar memory spiel Java Basics - Anfänger-Themen 10
T OOP Mein erstes Java-Spiel - Schiffe versenken! Java Basics - Anfänger-Themen 2
K Erste Schritte Wie mache ich weiter? (Spiel-Menü) Java Basics - Anfänger-Themen 9
C Java Applet in html. Pong - old school Spiel Java Basics - Anfänger-Themen 10
J Variablen Invalid Character - Error -> Spiel mit Variablenergebnissen Java Basics - Anfänger-Themen 8
K Schere Stein Papier Spiel Java Basics - Anfänger-Themen 3
A Feedback zum Spiel Java Basics - Anfänger-Themen 5
F Hilfe bei meinem Spiel Java Basics - Anfänger-Themen 3
C Lotto Spiel Java Basics - Anfänger-Themen 23
Jagson Dotcom Spiel - Dots Random setzen Java Basics - Anfänger-Themen 8
Dogge Farben-Spiel Java Basics - Anfänger-Themen 20
K Diverse Bugs in einem Snake Spiel Java Basics - Anfänger-Themen 4
2 Lotto-Spiel Java Basics - Anfänger-Themen 9
X Datentypen Probleme mit Char bei meinem 1. Spiel Java Basics - Anfänger-Themen 20
D Erste Schritte Einstieg in die Java Spiel Programmierung Java Basics - Anfänger-Themen 7
H kleines Spiel [Processing] Java Basics - Anfänger-Themen 7
P NullPointerException in Memory-Spiel Java Basics - Anfänger-Themen 5
R Server/Client für Spiel Java Basics - Anfänger-Themen 2
K Hilfe, komme nicht weiter in meinem JAVA-Spiel Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben