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:
glBegin(GL_QUADS);
glTexCoord2f(0,0); glVertex3f(-32,-32,0);
glTexCoord2f(1,0); glVertex3f(32,-32,0);
glTexCoord2f(1,1); glVertex3f(32,32,0);
glTexCoord2f(0,1); glVertex3f(-32,32,0);
glEnd;
bewegt wird er nach dem tut "Tutorial Objekt gedreht und dennoch nach vorne bewegt"
und die collision detection:
Code:
function TPlayer.PositionValid(NewX, NewY :Single):Boolean;
begin
Result :=True;
if Map.PlayGround[floor(NewX /32),floor(NewY /32)].FType <> 0then
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
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?
Mitglieder in diesem Forum: 0 Mitglieder und 28 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.