Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mo Apr 29, 2024 08:25

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Kollison (2d)
BeitragVerfasst: Mi Jun 07, 2006 16:42 
Offline
DGL Member

Registriert: Do Mai 25, 2006 12:25
Beiträge: 3
hi,
hab mcih ma an die collision detection gewagt...
in meinem code wird einfach immer der nächste punkt, auf den der quad bewegt wird, überprüft, ob er passierbar ist, und wenn nicht, bleibt sie stehen. das funktioniert auch sehr gut, aber leider nur mit dem mittelpunkt des quads...
und ich weiß einfahc nciht, wie ich das amchen soll...
den quad zeichne ich so:
Code:
  1.   glBegin(GL_QUADS);
  2.     glTexCoord2f(0,0); glVertex3f(-32, -32, 0);
  3.     glTexCoord2f(1,0); glVertex3f(32, -32, 0);
  4.     glTexCoord2f(1,1); glVertex3f(32, 32, 0);
  5.     glTexCoord2f(0,1); glVertex3f(-32, 32, 0);
  6.   glEnd;


bewegt wird er nach dem tut "Tutorial Objekt gedreht und dennoch nach vorne bewegt"
und die collision detection:

Code:
  1. function TPlayer.PositionValid(NewX, NewY : Single) : Boolean;
  2. begin
  3. Result := True;
  4. if Map.PlayGround[floor(NewX / 32), floor(NewY / 32)].FType <> 0 then
  5.  begin
  6.  Result := False;
  7.  exit;
  8.  end;
  9. end;


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 07, 2006 17:31 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Wenn es nicht allzu genau sein muss, würde ich um das Quad einen Kreis/eine Kugel herumziehen. Mit der kann man schnell (perofrmant) und einfach recht gute Kollisionen bewerkstelligen.

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 07, 2006 17:52 
Offline
DGL Member

Registriert: Do Mai 25, 2006 12:25
Beiträge: 3
naja, in dem quad ist ne textur mit alphakanal und das onjekt dass man dann sieht ist fast ein rechteck, also wenn man das irgendwie mit einem rechteck lösen könnte, wär das toll...
und was meintest du genau mit kreis zeichnen? den punkt, der brechnet soll, bei der berechnung um den radius in bewegungsrichtung vershcieben?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 07, 2006 18:04 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2067
Programmiersprache: C++
Schau dir den Code von Phobeus mal an, der das Problem erfolgreich löst: http://svn.delphigl.com/websvn/filedetails.php?repname=dglsdk_linux&path=%2Ftrunk%2Fsamples%2FeasySDL%2Fcollision%2Fboundingbox.pas&rev=0&sc=0


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 32 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.042s | 20 Queries | GZIP : On ]