Problem mit CollisionSurface & ClearSurface

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

crazy_down

BeitragMo, Okt 30, 2006 22:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, ich habe auch eine Frage zu diesem Fehler.

Code: [AUSKLAPPEN]
   
   a#=CollisionSurface(drum,i)
   ClearSurface a# ;löschen
ClearCollisions


Ich kann 2 oder 3 Objekte löschen die in "a#" stehen aber dannach taucht dieser Fehler auf.
Ich dachte erst Er würde in a# den alten Surface stehen lassen und den versuchen beim nächsten Collide zu löschen aber da es den nicht mehr gibt kommt der Fehler.

Deswegen habe ich versucht mit "ClearCollisions" die Kollisionsliste zu löschen das er ein neues Surface da drinne hat. Weiß nicht ob ich den Befehl evtl. nicht richtig verstanden habe oder einfach da was verdreht habe.

Hoffe ihr könnt mir weiter Helfen.

greetz
 

Dreamora

BeitragMo, Okt 30, 2006 23:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Da brauchen wir wohl ein wenig mehr code um zu sehen was du genau machst.

~AUFSPALTUNG~

Kein Threadhijacking
Dreamora
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

crazy_down

BeitragMo, Okt 30, 2006 23:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Erzeugen der Objekte...
Code: [AUSKLAPPEN]

For count = 1 To 50


   sphere(count) = CreateSphere(32)
   baum1(count)=LoadAnimMesh("baum-bone-ani.3DS")
   ScaleEntity baum1(count),0.15,0.15,0.15   
   ScaleEntity sphere(count),0.5,0.5,0.5
   EntityColor sphere(count),255,0,0   
   ;WaitTimer(frameTimer)

    PositionEntity baum1(count),Rand(9)*Rnd(7),1,Rnd(9)*Rnd(7)
   
   PositionEntity sphere(count),Rand(9)*Rnd(7),1,Rnd(9)*Rnd(7)
   
   EntityType baum1(count),type_scenery
   
   EntityType sphere(count),type_apfel
   ;Animate baum1(count),1,.3,0,60
   
Next



Kollision
Code: [AUSKLAPPEN]
col=CountCollisions(drum)
   For i=1 To col
    
      ;Text 000,i*20,"Entity="+CollisionEntity(drum,i)
      ;Text 150,i*20,"Surface="+CollisionSurface(drum,i)
      ;Text 300,i*20,"Triangle="+CollisionTriangle(drum,i)

   
      
   a#=CollisionSurface(drum,i)
   ClearSurface a# ;löschen
      ClearCollisions


   Next



Sorry, wollte nicht extra ein neuen Thread aufmachen Wink[/code]
 

Dreamora

BeitragMo, Okt 30, 2006 23:40
Antworten mit Zitat
Benutzer-Profile anzeigen
das problem ist das col da bzw. das fehlende exit:

Aktuell geht er auch nach ClearCollisions weiter und überprüft die nächste Kollision ... nur gibt es eine Kollision mit dem entsprechenden Index garnicht mehr.

Lösung 1: Exit falls du ClearCollisions machst

Lösung 2: anstatt col einfach den Count selbst verwenden, dieser wird durchs ClearCollisions geändert (ist natürlich nicht optimal, da es dann zeit kostet das immer auszuwerten -> Lösung 1 vermutlich die bessere)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

crazy_down

BeitragDi, Okt 31, 2006 0:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Super, danke schön.

Sowas meinte ich mit meiner Beschreibung das halt dieses Objekt dann nicht mehr vorhanden ist. Hatte von dem Exit befehl nichts in der OnlineHilfe gelesen und hatte den ClearSurface Befehl vorher noch nicht verwendet deswegen wusste ich es nicht.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group