Entity exsitenz überprüfen

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Ana

Betreff: Entity exsitenz überprüfen

BeitragMi, Jul 14, 2010 16:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

For o.objekt = Each objekt
      If cam\e <> 0 And o\e <> 0
      CameraProject cam\e,EntityX(o\e),EntityY(o\e),EntityZ(o\e)
      Text ProjectedX(),ProjectedY(),o\t
      EndIf
   Next


cam\e ist die Camera und aufjedenfall (debugger sagt das auch) vorhanden (also e hat halt ne lange zahl als wert ist das die Speicheradresse?) und o\e hat auch immer einen wert und trotzallem kommt der fehler entity doesnt exisit. Kann mir das wer erklären wie sie sich durch die if abfrage mogeln kann?

NightPhoenix

BeitragMi, Jul 14, 2010 16:38
Antworten mit Zitat
Benutzer-Profile anzeigen
In welcher zeile kommt denn der Fehler?
Spontan fällt mir ein dass es daran liegen könnte dass ein Eintrag o\e (du hast übrigens komische Typ-Bezeichnungen) kein Objekt sein könnte (oder nicht mehr existiert), sodass Positionsabfragen wie EntityX fehlschlagen.

Was hat cam\e und o\e für Werte, wenn der Fehler kommt? (Ja die Int-Werte von den Objekten sind sozusagen Speicheradressen)

Ana

BeitragMi, Jul 14, 2010 17:08
Antworten mit Zitat
Benutzer-Profile anzeigen
in der zeile

CameraProject cam\e,EntityX(o\e),EntityY(o\e),EntityZ(o\e)

kommt der Fehler, der Wert ändert sich und kommt im zusammenhang wenn pointer geändert werden

Beispiel werte für e = 172117176 / cam\e = 43573616

NightPhoenix

BeitragMi, Jul 14, 2010 17:14
Antworten mit Zitat
Benutzer-Profile anzeigen
mmmh wie gesagt es könnte gewisse Objekte aus der Typliste nicht mehr geben...
Kommt der Fehler immer, oder nur wenn o\e Objekte im Spiel/Programm beeinflusst werden? (Zersört, etc.)

Mal verschiedenen Möglichkeiten:
1. o\e ist kein Objekt
2. cam\e ist falsch zugewiesen
3. Die For-Each Schleife steht in einer Funktion, cam\e ist nicht global und somit nicht zugewiesen?

Bei 3. bin ich mir auch nicht sicher, versuch einfach mal alle unveränderlichen Variablen in die Funktion zu übergeben (z.b. cam\e) oder mache die Typen mal global.

Prüfe mal ob es an CameraProject cam\e liegt oder an EntityX / Y / Z...

Probiere also mal:
Code: [AUSKLAPPEN]
CameraProject cam\e,0,0,0

und
Code: [AUSKLAPPEN]
testvariable#=EntityX(o\e)


bei welcher der beiden varianten gibt er einen Fehler aus?

Ana

BeitragMi, Jul 14, 2010 17:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Glaube ich hab den Fehlergefunden

Cam ist ebenfalls vom typ Objekt, es stürtz zwar nicht ab wenn o\e = cam\e ist aber wenn man den fall ausschließt kann ich den fehler nicht mehr erzeugen

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group