Brauche Hilfe mit Kollisionserkennung!

nicb

Mitglied
Hallo Zusammen

Ich schreibe ein kleines Spiel mit Java nun habe ich eine Kollisionserkennung eingebaut, die zwei Actors überwachen sollte.. nun habe ich folgendes Problem:

wenn ich die Zeile 20
Java:
hero.setCollisionCircle(new Point(0, 0), 30);
drinne habe dann kann Java das nicht compilieren, da es "Point" nicht kennt, obwohl das in amnchen beispielen so gamacht wird.. (GameGrid Spielprogrammierung mit Java)

lasse ich diese Zeile weg, kann das Porgramm compiliert werden, jedoch stürzt die Java-Anwendung dann beim öffnen ab :(

Ich weis wirklich nicht mehr weiter, hoffe ihr könnt mir helfen...

Mfg

Java:
// MyGameGrid.java

import ch.aplu.jgamegrid.*;
import java.awt.Color;
import java.awt.event.KeyEvent;

public class MyGameGrid extends GameGrid implements GGActorCollisionListener
{
  private Hero hero = new Hero();
  
  public MyGameGrid()
  {
    super(600, 600, 1, null, "sprites/hintergrund.jpg");//Hintergrundbild und GG-Auflösung
    setSimulationPeriod(80);//Schnelleres Bewegen!
    addActor(hero, new Location(7,300));// Unser Held, Spielfigur
    Meteor meteor = new Meteor();
    for (int i = 0; i < 2; i++)//2 Meteoren
    addActor(new Meteor(), getRandomEmptyLocation());//Meteor, Kollisionsobjekt
    hero.addActorCollisionListener(this);//Kollisionslistener für Hero
    hero.setCollisionCircle(new Point(0, 0), 30);
    hero.addCollisionActor(meteor);
    setTitle("MeteorHero v.1.0");//Titel
    show();
    delay(3000);//delay before start
    doRun();//Startet Programm automatisch
  }
  
  public int collide(Actor actor1, Actor actor2)
  {
    actor1.setLocation(new Location (7, 300));
    actor2.setDirection(actor2.getDirection() + 180);
    return 0;
  }

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

//--- KLASSE für den Helden
class Hero extends Actor
{
  public Hero()
 {
   super("sprites/hero.gif");
 }
 
 public void act()//Verhalten Held
 {
 if (gameGrid.kbhit())//Steuerung
    {
      switch (gameGrid.getKeyCode())
      {
        case KeyEvent.VK_UP:
          setDirection(270);
          move(5);
          break;         
        case KeyEvent.VK_LEFT:
          setDirection(180);
          move(5);
          break;
        case KeyEvent.VK_RIGHT:
          setDirection(0);
          move(5);
          break;
        case KeyEvent.VK_DOWN:
          setDirection(90);
          move(5);
          break;
        default:
          return;  
      }
    }
 }
}

//KLasse für Aufzusammelnde Objekte
class Meteor extends Actor
{
  public Meteor()
  {
    super("sprites/meteor2.gif");
  }
  
  public void act()
  {
    setSlowDown(5);
    setDirection(180);
    move();
  }
}
 

jgh

Top Contributor
warum kennt es Point nicht?
hast du
Java:
import java.awt.Point;
importiert?
 

nicb

Mitglied
Nein! hatte ich nicht...im Beispiel war das auch nicht vorhanden :O ... aber habe ich jetzt gemacht und jetzt kann der Editor es auch compilieren, doch jetzt kommt die Fehlermeldung beim Ausführen des Programms...

Fatal Error:
java.lang.NullPointerException
at ch.aplu.jgamegrid.Actor.getCurrentCollisionRectangle(Actor.java:1190)
at ch.aplu.jgamegrid.GameGrid.isActorColliding(GameGrid.java:2043)
at ch.aplu.jgamegrid.GameGrid.checkActorCollision(GameGrid.java:2020)
at ch.aplu.jgamegrid.GameGrid.act(GameGrid.java:1151)
at ch.aplu.jgamegrid.GameGrid.actAll(GameGrid.java:1219)
at ch.aplu.jgamegrid.GameGrid$GameThread.run(GameGrid.java:277)

??...
 

Cola_Colin

Top Contributor
Nein, der Fehler sitzt bei dir vorm Bildschirm und hat wohl die Bibliothek falsch verwendet.
In der Zeile 1190 kann er sehen, was die Bibliothek von ihm erwartet, was er nicht erfüllt hat ;D
 

nicb

Mitglied
OK ich dachte schon, dass ich der Fehler bin haha :) und jetzt erwartet er null und das is nicht null...
ich bin nich so der Java-Profi und check wirklich ned wo der fehler liegt...in meinem code.. aber trotzdem schonma thx
:)
 

nicb

Mitglied
at ch.aplu.jgamegrid.Actor.getCurrentCollisionRectangle(Actor.java:1190)

ich hab aber ein CollisionCircle und kein rechteck in meinem Code... Mensch ich checks voll net... wo soll ich jetzt machen, dass der da 0 bekommt?
 

Cola_Colin

Top Contributor
Hmm, scheinbar ist das Projekt nicht opensource ? Kann den Source auf der Seite nicht finden. Das schlecht :<

WIldes raten.:
Braucht der Meteor nicht auch irgendeinen Kreis oder ein Rechteck ?
 

nicb

Mitglied
Im prinzip schon aber wird der nich durch das Bild das ich hochlade angegeben? Im Beispiel is der auch ned vorhanden...
GameGrid Spielprogrammierung mit Java da is die klassenbibliothek und alles vorhanden! is opensource

unter "wichtigste programmiertechniken, präzise kollisionserkennung" ist das dann aufgeführt...
 

nicb

Mitglied
ok ich habe jetzt mal die Bilder durch solche, die ind er online bibliothek sind ersetzt... nun kannste den code kopieren und hier Online-Editor in den online editor kopieren, dann sollte es auch funktionieren

Java:
// MyGameGrid.java

import ch.aplu.jgamegrid.*;
import java.awt.Color;
import java.awt.event.KeyEvent;
import java.awt.Point;

public class MyGameGrid extends GameGrid implements GGActorCollisionListener
{
  private Hero hero = new Hero();
  
  public MyGameGrid()
  {
    super(600, 600, 1, null, "sprites/moon.gif");//Hintergrundbild und GG-Auflösung
    setSimulationPeriod(80);//Schnelleres Bewegen!
    addActor(hero, new Location(7,300));// Unser Held, Spielfigur
    Meteor meteor = new Meteor();
    for (int i = 0; i < 2; i++)//2 Meteoren
    addActor(new Meteor(), getRandomEmptyLocation());//Meteor, Kollisionsobjekt
    hero.addActorCollisionListener(this);//Kollisionslistener für Hero
    hero.addCollisionActor(meteor);
    setTitle("MeteorHero v.1.0");//Titel
    show();
    delay(3000);//delay before start
    doRun();//Startet Programm automatisch
  }
  
  public int collide(Actor actor1, Actor actor2)
  {
    actor1.setLocation(new Location (7, 300));
    actor2.setDirection(actor2.getDirection() + 180);
    return 5; //Anz. Zyklen bis dies wieder aufgerufen werden kann
  }

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

//--- KLASSE für den Helden
class Hero extends Actor
{
  public Hero()
 {
   super("sprites/mouse.gif");
 }
 
 public void act()//Verhalten Held
 {
 if (gameGrid.kbhit())//Steuerung
    {
      switch (gameGrid.getKeyCode())
      {
        case KeyEvent.VK_UP:
          setDirection(270);
          move(5);
          break;         
        case KeyEvent.VK_LEFT:
          setDirection(180);
          move(5);
          break;
        case KeyEvent.VK_RIGHT:
          setDirection(0);
          move(5);
          break;
        case KeyEvent.VK_DOWN:
          setDirection(90);
          move(5);
          break;
        default:
          return;  
      }
    }
 }
}

//KLasse für Aufzusammelnde Objekte
class Meteor extends Actor
{
  public Meteor()
  {
    super("sprites/stone_0.gif");
  }
  
  public void act()
  {
    setSlowDown(5);
    setDirection(180);
    move();
  }
}

mfg
 

Marco13

Top Contributor
Ohne Code schwer zu sagen - man könnte mal schauen, ob es schon was bringt, in den Klassen "Hero" und "Meteor" im Konstruktor jeweils diese Methode (oder die nächste) aufzurufen... ansonsten muss man nochmal genauer schauen...
 

nicb

Mitglied
Java:
hero.setCollisionRectangle(new Point(0,0),80,80);
    meteor.setCollisionRectangle(new Point(0,0),75,75);

habe ich oben in den code eingesetzt...nix passiert
dann habe ich noch

Java:
setCollisionRectangle(new Point(0,0),80,80);
setCollisionRectangle(new Point(0,0),75,75);

in die einzelnen Klassen eingesetzt und auch nix passiert, die Fehlermeldung kommt nach wie vor :(
 

Cola_Colin

Top Contributor
GameGrid Spielprogrammierung mit Java da is die klassenbibliothek und alles vorhanden! is opensource
Opensource bedeutet zumindest in meiner Definition, das der Sourcecode einsehbar ist, leider ist dieser im Download aber nicht enthalten und wird auch sonst nirgendwo erwähnt.

Probiere mal die einzelnen Spielobjekte rauszukommentieren, in kleinen Schritten. Sobald der Fehler verschwindet, weist du zumindest welches Objekte fehlerhaft initialisiert wird.
 

nicb

Mitglied
ok.. das hab ich gemacht und es liegt nur an der Zeile:

Java:
hero.addCollisionActor(meteor);

ohne die funktioniert das Programm, aber die Kollisionserkennung funtzt nich.. :shock:
???:L
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Brauche Hilfe zu einem Code Java Basics - Anfänger-Themen 5
J Brauche Hilfe bei for-each Aufgabe Java Basics - Anfänger-Themen 1
HeiTim Brauche Hilfe soll ein nummeriertes Feld ausgeben lassen Java Basics - Anfänger-Themen 17
J Brauche Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
H Brauche Hilfe Java Basics - Anfänger-Themen 2
H Brauche hilfe Java Basics - Anfänger-Themen 3
C Brauche Hilfe beim Schreiben eines Programmes :/ Java Basics - Anfänger-Themen 1
C Brauche Hilfe um ein Programm zu schreiben Java Basics - Anfänger-Themen 8
Leo0909 Ich brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 2
H Brauche Hilfe in Java Eclipse Programmieraufgabe Neuling Java Basics - Anfänger-Themen 3
D Brauche Dringend Hilfe...Prozedur/Funktionsprozedur Ergebnis augeben Java Basics - Anfänger-Themen 11
I Brauche Hilfe bei Objektorientiertem programmieren Java Basics - Anfänger-Themen 23
M Brauche Hilfe bei If-Scheifen Java Basics - Anfänger-Themen 2
F ich brauche Hilfe bei Listen Java Basics - Anfänger-Themen 13
J Ich brauche Hilfe bei einem Code (Variablen speichern) Java Basics - Anfänger-Themen 29
E Ich Brauche Hilfe Java Basics - Anfänger-Themen 3
L Brauche Hilfe beim arbeiten mit Konstruktoren Java Basics - Anfänger-Themen 20
J Brauche Hilfe bei einer aufgabe Java Basics - Anfänger-Themen 1
S Brauche hilfe in Java [Fehler in mein Code]? Java Basics - Anfänger-Themen 2
B BITTE!! Ich brauche dringende Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 17
TpKey10 Ich brauche Hilfe Java Basics - Anfänger-Themen 14
F Ich brauche Hilfe bei Objektorientierter Programmierung... Java Basics - Anfänger-Themen 19
L Input/Output Wurzelzeichen in der Konsole ausgeben | Brauche Hilfe Java Basics - Anfänger-Themen 6
J Brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 3
T Brauche Hilfe um ein Programm zu verstehe Java Basics - Anfänger-Themen 4
C Ich brauche hilfe für meine Klausur Java Basics - Anfänger-Themen 13
J Brauche Hilfe !! Java Basics - Anfänger-Themen 8
R Spielfeldbegrenzung einfügen (Java)? Brauche Hilfe! Java Basics - Anfänger-Themen 15
C Brauche dringend Hilfe. Umfrage mit ja und nein in Java erstellen? Java Basics - Anfänger-Themen 12
U Brauche Hilfe bei Programmierung einer Produktdatenbank App Java Basics - Anfänger-Themen 4
P Brauche Hilfe bei ResultSet mit MySQL Java Basics - Anfänger-Themen 6
T Datentypen Brauche Hilfe bei Arrays Java Basics - Anfänger-Themen 3
U Brauche Hilfe bei Bisektionsverfahren Java Basics - Anfänger-Themen 23
E Erste Schritte brauche hilfe zum verstehen einer Klasse(Tiefensuche) Java Basics - Anfänger-Themen 17
I Brauche Hilfe bei Schleifen Java Basics - Anfänger-Themen 18
B Java Graphen zeichnen - Brauche Hilfe Java Basics - Anfänger-Themen 9
S brauche hilfe bei Fehlersuche Java Basics - Anfänger-Themen 7
M JDK installieren Brauche dringend Hilfe Java Basics - Anfänger-Themen 2
L Brauche Hilfe bei Preisberechnungspogramm Java Basics - Anfänger-Themen 1
D Hilbert und Peano Kurve, ich brauche Hilfe Java Basics - Anfänger-Themen 4
S Brauche hilfe bei Pong (JFrame) Java Basics - Anfänger-Themen 2
V Hilfe-brauche eine Idee! Java Basics - Anfänger-Themen 5
R Brauche Hilfe beim fertigstellen eines Chat programms Java Basics - Anfänger-Themen 8
A Erste Schritte Brauche Hilfe Java Basics - Anfänger-Themen 2
D Brauche Hilfe für mein übungsprogramm Java Basics - Anfänger-Themen 16
S Klassen Brauche Hilfe bei Erstellung einer Klasse für einen Tachenrechner!!! Java Basics - Anfänger-Themen 6
W Brauche hilfe bei Hausübung Java Basics - Anfänger-Themen 10
D Brauche Hilfe bei Modulo (Übungsaufgabe) Java Basics - Anfänger-Themen 14
X Brauche Hilfe bei printOnScreen Methode !!! Java Basics - Anfänger-Themen 2
H mysql brauche hilfe, wer kann eine (längere) aufgabe für mich erledigen Java Basics - Anfänger-Themen 2
K Erste Schritte Brauche Hilfe bei Starten des Programms Java Basics - Anfänger-Themen 11
B Erste Schritte HILFE Brauche ein Beispiel für korrekte Syntax mit Semantikfehlern Java Basics - Anfänger-Themen 6
H Java von Kopf bis Fuß: Brauche Hilfe Java Basics - Anfänger-Themen 6
B Erste Schritte Brauche Hilfe bei einem Java-Taschenrechner Java Basics - Anfänger-Themen 11
S brauche hilfe beim fehler finden Java Basics - Anfänger-Themen 2
S Erste Schritte BlueJ-Aufgabe: Programmcode / Brauche dringend Hilfe !!! Java Basics - Anfänger-Themen 37
A Brauche Hilfe bei Division von Feldzahl durch Ganzzahl Java Basics - Anfänger-Themen 3
F Java-Anfänger, brauche Hilfe Java Basics - Anfänger-Themen 3
F Java-Anfänger, brauche Hilfe Java Basics - Anfänger-Themen 2
C Brauche dringend hilfe beim exception im code Java Basics - Anfänger-Themen 5
G Brauche bitte Hilfe, bei umgekehrter Ausgabe!! Java Basics - Anfänger-Themen 6
B Erste Schritte Brauche Hilfe für ein UML Diagramm Java Basics - Anfänger-Themen 7
S ICh brauche Hilfe,weil Java in der Schule Java Basics - Anfänger-Themen 11
B Brauche Hilfe mit Aufgaben mit dem JavaEditor Java Basics - Anfänger-Themen 8
I Primzahlenberechnung [Brauche Hilfe] Java Basics - Anfänger-Themen 5
T brauche HILFE beim Junit test:eek: Java Basics - Anfänger-Themen 11
F Reader - brauche Hilfe Java Basics - Anfänger-Themen 19
T Brauche Hilfe bei Variabeln Java Basics - Anfänger-Themen 4
J Brauche Hilfe mit replaceFirst Java Basics - Anfänger-Themen 10
M Brauche Hilfe bei Struktogramm Java Basics - Anfänger-Themen 9
T Datentypen brauche dringende hilfe!dezi in Asci umwandeln! Java Basics - Anfänger-Themen 4
X DB4O Collections and Arrays, brauche dringend Hilfe! Java Basics - Anfänger-Themen 3
B brauche hilfe bei funktion erstellen Java Basics - Anfänger-Themen 8
S Brauche Hilfe bei if/else Java Basics - Anfänger-Themen 3
J Brauche Hilfe bei Methode Java Basics - Anfänger-Themen 9
Y Brauche Hilfe beim Programm Java Basics - Anfänger-Themen 83
G 2 dim. Strsing Arrays brauche Hilfe Java Basics - Anfänger-Themen 20
A Brauche hilfe String untertrennen Java Basics - Anfänger-Themen 12
L Brauche bitte dringend Hilfe für Klausur Java Basics - Anfänger-Themen 8
H Brauche bei einen bsp hilfe! Java Basics - Anfänger-Themen 2
D Währungsrechner brauche Hilfe Java Basics - Anfänger-Themen 10
R Vokabeltrainer / Brauche Hilfe Java Basics - Anfänger-Themen 8
L Brauche Hilfe! Java Basics - Anfänger-Themen 8
S WAV-DATEIEN INTERPRETIEREN UND UMWANDELN Brauche Hilfe Java Basics - Anfänger-Themen 3
A Brauche Hilfe mit einer Forschleife Java Basics - Anfänger-Themen 20
N brauche Hilfe Stringverarbeitung Java Basics - Anfänger-Themen 9
JeromeM90 (Brauche Hilfe) Binär- in Dezimalzahlkonverter Java Basics - Anfänger-Themen 8
M Brauche Hilfe bei Javaapplication für JuFo Java Basics - Anfänger-Themen 21
M Brauche Hilfe beim Verstehen vom Quellcode Java Basics - Anfänger-Themen 4
A brauche hilfe ( gpanel und n-ecke) Java Basics - Anfänger-Themen 11
V Brauche Hilfe beim Programmieren Java Basics - Anfänger-Themen 3
V Brauche Hilfe beim Programmieren Java Basics - Anfänger-Themen 9
S Brauche Hilfe mit waitFor() Java Basics - Anfänger-Themen 4
N Brauche dringende Hilfe Java Aplett läuft nicht! Java Basics - Anfänger-Themen 3
D Brauche Hilfe: Funktion zum Kombinieren von Werten Java Basics - Anfänger-Themen 5
T Brauche Hilfe: Access DB + Hashmap Java Basics - Anfänger-Themen 2
S brauche hilfe beim dateien kopieren / bearbeiten Java Basics - Anfänger-Themen 3
E brauche hilfe beim KeyListener Java Basics - Anfänger-Themen 4
N brauche hilfe zu tictactoe Java Basics - Anfänger-Themen 2
G Ich brauche eure Hilfe! Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben