Collision nur mit Koordinaten und einem Entity

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

faeX

Betreff: Collision nur mit Koordinaten und einem Entity

BeitragSa, Sep 27, 2008 16:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist es möglich eine Collision zu prüfen wenn man nur die Koordinaten des 1. Entity und dann das 2. Entity hat? Es kommt nur drauf an ob Entity 2 den Koordinatenpunkt von Entity 1 berührt.

Ist 'ne komische Frage aber ich hoffe ihr könnt mir helfen Wink

The_Nici

BeitragSa, Sep 27, 2008 16:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Inwiefern Koordinatenpunkt berührt?
Falls sie einfach gleich sein sollen, würd ich dir "=" empfehlen. Hat sich über Jahrtausende bewährt.

faeX

BeitragSa, Sep 27, 2008 16:14
Antworten mit Zitat
Benutzer-Profile anzeigen
The_Nici hat Folgendes geschrieben:
Inwiefern Koordinatenpunkt berührt?


Ich meine das Beispielsweise der Punkt 0.5, 0.5, 0.5 in einem Sphere mit nem Radius 1 bei den Koordinaten 0,0,0 kollidiert.

EDIT: Nur dass es beim Sphere natürlich einfacher ist, aber z.B. sollte Entity 2 zB ein Roboter sein...

The_Nici

BeitragSa, Sep 27, 2008 16:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Du könntest an der Koordinatenstelle ein Pivot erstellen den du dann mit Kollision mit dem zweiten Entity prüfst.

faeX

BeitragSa, Sep 27, 2008 16:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Das möchte ich ja umgehen, da dies wieder zeit kostet.
Aber ich habe es trotzdem probiert und komischerweise merkt er die Collision nicht.

Code: [AUSKLAPPEN]
      PositionEntity TestEntity,p\x#, p\y#, p\z#
      If EntityCollided(TestEntity,p\emitter\tmp\scenecollision) And p\emitter\tmp\scenestop
         p\frozen = True
         p\xv# = 0
         p\yv# = 0
         p\zv# = 0   
      EndIf


wobei p ein type für ein particle ist, das selbst aber kein mesh hat.
scenecollision ist der type für die scene
scenestop ist ein Field (Boolean), ob bei collision sich das Partikel nicht mehr bewegen soll
p\xv ist die velocity für x usw

EDIT:

Code: [AUSKLAPPEN]
      x# = EntityX(p\emitter\ent) + p\x#
      y# = EntityY(p\emitter\ent) + p\y#
      z# = EntityZ(p\emitter\ent) + p\z#
      sx# = p\sx#
      sy# = p\sy#
      TFormVector sx#, -sy#, 0, ParticlePiv, 0
      v1x# = TFormedX() + x#
      v1y# = TFormedY() + y#
      v1z# = TFormedZ() + z#
      TFormVector -sx#, -sy#, 0, ParticlePiv, 0
      v2x# = TFormedX() + x#
      v2y# = TFormedY() + y#
      v2z# = TFormedZ() + z#
      TFormVector sx#, sy#, 0, ParticlePiv, 0
      v3x# = TFormedX() + x#
      v3y# = TFormedY() + y#
      v3z# = TFormedZ() + z#
      TFormVector -sx#, sy#, 0, ParticlePiv, 0
      v4x# = TFormedX() + x#
      v4y# = TFormedY() + y#
      v4z# = TFormedZ() + z#
      v1 = AddVertex(p\emitter\surf, v1x#, v1y#, v1z#, 0, 0)
      v2 = AddVertex(p\emitter\surf, v2x#, v2y#, v2z#, 1, 0)
      v3 = AddVertex(p\emitter\surf, v3x#, v3y#, v3z#, 0, 1)
      v4 = AddVertex(p\emitter\surf, v4x#, v4y#, v4z#, 1, 1)


so werden die particles dargestellt (aus Devil Particle Engine)
  • Zuletzt bearbeitet von faeX am Sa, Sep 27, 2008 16:36, insgesamt einmal bearbeitet

The_Nici

BeitragSa, Sep 27, 2008 16:35
Antworten mit Zitat
Benutzer-Profile anzeigen
EntityRadius/Box gesetzt? EntityType gesetzt? Collisions ausgeführt?

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group