Punkt auf Schachbrett bewegen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Punkt auf Schachbrett bewegen

    Also ich würde gerne mit dem Java.awt ein kleines Spiel erstellen.
    Nur fehlt mir dazu etwas Grundlegendes , wie mache ich es das ich in meinem GUI ein 100x100 großes Feld bekomme in dem sich 2 oder mehr Punkte (Roboter ) befinden. Die Punkte sollen sich nach Druck auf die Pfeiltasten , um ein Feld in die Pfeil richtung bewegen. Und bei Druck auf die Leertaste sollen sie Feuern.
    Ich kenne mich mit dem Awt immer noch nicht wirklich aus deswegen habe ich nur so eine leise Ahnung wie das gehen könnte. Währe nett wenn mir wer helfen könnt.

    Außerdem würde ich noch gerne wissen wie ich auf meinem 100x100 großen Feld , an gewissen Punkten Blockaden ziehen kann durch die mein Punkt (Roboter nicht durchkommt).

    Schon mal ein großes Danke im Voraus,
    Jony
    " 2 Jahre und 6 Monate ohne Bewährung für den Verkauf von100 Gramm Haschisch - das ist die selbe Strafe, die sie kriegen, wenn sie als Grundschullehrer 62 Kinder sexuell mißbrauchen. Wie man das auf 100 Gramm umrechnet, weiß ich jetzt auch nicht."
    - Volker Pispers

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Jony ()

  • Hallo,

    erstmal würde ich dir Swing und Awt empfehlen, denn Awt ist schon nen bissel veraltet ;)
    Da ich auch gerade am lernen bin, was Swing etc. angeht, kann ich dir nur bei deinem Blockaden Problem mit Pseudo Code helfen :

    Quellcode

    1. if(tasteLinks == gedrückt) // am beispiel mit linker Bewegung
    2. {
    3. if(player.xPos > Barikade1.xPos+Barikade1.width) // xPos ist der Abstand zwischen linkem
    4. //Fensterrahmen und linker Seite des "players" bzw der Barrikade
    5. // Diese einfach Kollisionabfrage kann man sich anhand zweier Vierecke klarmachen,
    6. // zB mit Dina4 Blättern. Test einfach wann sie sich (nicht) berühren, leite daraus Formeln
    7. //ab und bewege erst nach der prüfung.
    8. {
    9. //dann bewegen
    10. }
    11. }
    Alles anzeigen
  • Ein einfacher Ansatz wäre, ein 100x100 großes Array zu erstellen, welchem
    du die Werte
    0: leer, begehbar
    1: Wand, Stopper usw
    2: Roboter zuweist.
    So kann man eigenene Maps designen.
    Dann lässt du das ganze per doppelter for-Schleife in deiner GUI anzeigen
    (zB. über JLabel, hier empfiehlt sich dann natürlich das Gridbaglayout^^).
    Jetzt musst du "nur noch" die Keyevents abfangen (das geht bestimmt über die
    entsprechenden Listener sehr einfach) und das Verhalten der Roboter aufstellen.
    So sollte, wenn man nach obigem Muster vorgegangen ist, ein Check erfolgen,
    ob das Feld x,y im Array den Wert 0 hat, wenn ja dann bewege den Roboter
    da hin.
    Dh. aktualisiere das Label wo der Roboter stand und das, auf wo er jetzt steht.
    Feuern würde dann mehr oder weniger analog ablaufen.
  • Hmm, ich dachte es wäre einfacher mit einem Canvas zu arbeiten, da könnte man das schön machen.
    Da wäre es auch einfacher mit Schüssen umzugehen, wenn man mit meiner "Kollisionsabfrage" arbeiten würde, sonst würde der Schuss ziemlich hüpfen, bei einem 100*100 Feld, da es keine keine glatten Bewegungen macht.

    Aber das is dem TS überlassen.

    lg
  • ok danke für die hilfe . Ich habe das Problem gelöst. Das Feld mit einem Array und den Rest über KeyEvent mit ner verschachtelteten if - Abfrage.
    " 2 Jahre und 6 Monate ohne Bewährung für den Verkauf von100 Gramm Haschisch - das ist die selbe Strafe, die sie kriegen, wenn sie als Grundschullehrer 62 Kinder sexuell mißbrauchen. Wie man das auf 100 Gramm umrechnet, weiß ich jetzt auch nicht."
    - Volker Pispers