JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=75f5707d765368d866c23aa74cf52c02Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Kollisionserkennung

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Loigie
Junior JLI'ler



Anmeldedatum: 29.06.2004
Beiträge: 52
Wohnort: NRW
Medaillen: Keine

BeitragVerfasst am: 18.04.2005, 16:36    Titel: Kollisionserkennung Antworten mit Zitat

Hallo,

ich suche im Moment eine geeignete Kollisionserkennung für ein 2D Jump & Run Spiel.
Als erstes habe ich die Kollisionserkennung aus Kapitel 25 mit dem Byte Array benutzt da ich aber dabei immer nur TRUE oder FALSE zurückkriege hing meine Figur immer kurz fest. War eigentlich ganz lustig aber nicht ganz in meinem sinne Confused . Beim googlen hab ich etwas über Tiles aufgeschnappt aber da kann man sein Spiel nur Quadratisch(in Tiles) aufbauen oder? Also kennt irgendjemand noch eine andere Lösung muss es ja schließlich geben.

M.f.G. Loigie
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 18.04.2005, 16:40    Titel: Antworten mit Zitat

welche meintest du denn mit "die aus dem Buch hab ich genommen"? Die mit dem 4D Vektor? Oder die andere Pixelgenaue? Falls es bei dir nicht allzu genau sien muss, nimm doch angepaste Bounding-Boxen; das geht schnell und is gut Wink

Gruß DirectXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Loigie
Junior JLI'ler



Anmeldedatum: 29.06.2004
Beiträge: 52
Wohnort: NRW
Medaillen: Keine

BeitragVerfasst am: 18.04.2005, 16:54    Titel: Antworten mit Zitat

25.6.2 Meine ich um genau zu sein Smile
Die Funktioniert auch aber ich weiß nicht wie ich auf ein TRUE reagieren soll? Momentan mache ich das so:
Code:
   SetPosition(m_vPosition.x,m_vLastPosition.y);
   if(CollisionClass.TestCollision(m_lpSelfSprite))
      SetPosition(m_vPosition.x,m_vLastPosition.y-1);
   if(CollisionClass.TestCollision(m_lpSelfSprite))
      SetPosition(m_vLastPosition.x,m_vLastPosition.y);


Hat halt den Effekt dass du dich an den Klötzen Seitlich und drunter hängen bleibst bis dich die Schwerkraft runter holt.
Da helfen mir auch Bounding-Boxen nicht weiter oder?
Ich bräuchte eine Kollisionserkennung die mir zumindest sagt wo mein Sprite Kolliediert ist (Rechts oder Links...).

M.f.G. Loigie
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
OLiver
Super JLI'ler


Alter: 33
Anmeldedatum: 29.06.2003
Beiträge: 306
Wohnort: Jena
Medaillen: Keine

BeitragVerfasst am: 18.04.2005, 16:59    Titel: Antworten mit Zitat

Mach doch eine Liste, wo du alle "festen" Objekte reinschreibst, dann schreibste 4 Funktionen (für alle vier Richtungen), die dir die Differenz vom Spieler zum jeweiligen Objekt zurückgibt.
_________________
http://www.sieder25.org/ (Siedler 2 - Remake)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Loigie
Junior JLI'ler



Anmeldedatum: 29.06.2004
Beiträge: 52
Wohnort: NRW
Medaillen: Keine

BeitragVerfasst am: 18.04.2005, 17:10    Titel: Antworten mit Zitat

Wir ziemlich schwierig.

1. Vom Verwaltungsaufwand.
2. Kann ich nur runde Objekte benutzen. Rolling Eyes

Es sei den ich trag jeden Pixel einzelnt ein.

und ich habe es ja sogar sozusagen schon in meinem CollisionArea umgesetzt.

Korrigiert mich ruhig falls ich mich irre Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 18.04.2005, 17:11    Titel: Antworten mit Zitat

Loigie hat Folgendes geschrieben:
25.6.2 Meine ich um genau zu sein Smile

M.f.G. Loigie


schon klar, aber unter dem Abschnitt 25.6.2 stehen 2 Varianten: einmal mit den 4D Vektor und die mit dem sperren. Dafür würde ich den Kollisionstest, der auf S.390 unter Abb. 25.6 zusehen ist benutzen, weil du dann auch überprüfen kannst, ob der Links oder rechts ist. Dazu lässt du dir ein D3DXVECTOR2 zurückgeben, der dir die Position der Pixelüberschreitung sagt. Die kannst du dann überprüfen(z.B. if(Sprite.GetWidth / 2 <= CollisionPos.x && CollisionPos.x <= Sprite.GetWidth)
...
else if(...)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Loigie
Junior JLI'ler



Anmeldedatum: 29.06.2004
Beiträge: 52
Wohnort: NRW
Medaillen: Keine

BeitragVerfasst am: 18.04.2005, 17:21    Titel: Antworten mit Zitat

Werde ich mall Probieren sollte funktionieren Smile

Danke für eure Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum