löschen von Cubes, die mit types erstellt wurden *gelöst*
Übersicht

BlackErrorBetreff: löschen von Cubes, die mit types erstellt wurden *gelöst* |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo zusammen,
Wer in letzter zeit im Archiv gestöbert hat, hat vielleicht mein Miniprojekt "Block Jumper" gesehen und evtl. sogar getestet. Zum groben Aufbau: Die kamera (mit einer Kugel vorne als Player drangehängt) bewegt sich nach vorne und man muss mit der Kugel über 30 Plattformen hüpfen, um ins Ziel zu gelangen. Fällt man runter, dann beginnt man wieder vom Startpunkt aus. Da die Blöcke (Abstände und Position) jedoch random erscheinen sollen, muss ich nach dem "Tod" die oben erstellten Blöcke löschen, damit beim nächsten Versuch sie nicht einfach erneut erstellt werden (doppelt so viele Blöcke auf dem Feld). Da ich das Hochspringen durch ein GOTO gelöst habe, klappt das auch super. Nach jedem Versuch werden die Blöcke neu erstellt (random) und je nach level neu positioniert. Durch Zufall habe ich jetzt jedoch bemerkt, dass sich, wenn ich 2 mal sterbe (also beim dritten mal hochspringen im code), die Blöcke nicht löschen lassen -> Fehlermeldung: Entity does noch exist. Wieso geschieht dies erst beim 3. Erstellen der Blöcke? Hier mal die wichtigen Codeteile: Code: [AUSKLAPPEN] ... SeedRnd MilliSecs() Level = 1 Leben = 3 ;------------------------------------------------------------- ;Erstellung des Start- und Zielblocks Start_Block = CreateCube() ... Ziel_Blcok = createcube() ... ;------------------------------------------------------------- Cam = createcamera() ... Player = createsphere() ... ;------------------------------------------------------------- ;Types für Hauptblöcke Type Block Field Entity Field Pos_x# Field Pos_y# Field Pos_z# End Type ;------------------------------------------------------------- .Anfang ;Sprungmarke für Neustart Start = 0 Speed# = 0 ;Speed# = 0 da sonst Cam mit vorheriger Geschwindigkeit sofort weiterfährt z# = 0 ;Damit Abstand der Blöcke richtig funktioniert PositionEntity Cam, 0,15,-50 ;Cam und Player werden wieder an den Anfang gesetzt PositionEntity Player, 0,15,-30 ;------------------------------------------------------------- ;Erstellung der Hauptblöcke For I = 0 To 30 B.Block = New Block B\Entity = CopyEntity (Start_Block) ;auch mit createcube kommt der Fehler !! B\Pos_x# = Rnd(-20,20) If Level = 1 Then B\Pos_y# = 0 If Level = 2 Or Level = 3 Then B\Pos_y# = Rnd(-5,5) ;Schwirigkeitsgrad wird durch Ebenen erschwert z# = z# + 27 ; Für Abstand der Blöcke zueinander PositionEntity B\Entity, B\Pos_x#, B\Pos_y#, z# Next Repeat Steuerung() Gravitation() Collision() ... ;wenn Player stirbt If EntityY (Player) < -7 Or (EntityZ(Player) - EntityZ(Cam)) < 15 ;Wenn player unterhalb der Blöcke Leben = Leben - 1 WaitMouse For B.Block = Each Block FreeEntity B\Entity ;Hier tritt beim 2. mal Sterben der Fehler auf: Entity does not exist!! Next Goto Anfang ;Neuer Versuch soll gestartet Werden (Sprung zu Sprungmarke - Siehe Oben) End If Ich hoffe, dass mir jemand helfen kann. Wenn nötig kann ich auch den kompletten code hochladen (Keine Grafiken nötig!) Hoffe auf Antworten und Vielen Dank im Vorraus Gruss BlackError |
||
- Zuletzt bearbeitet von BlackError am Mo, Mai 26, 2008 16:28, insgesamt einmal bearbeitet
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] For B.Block = Each Block
FreeEntity B\Entity Delete B Next Wenn du den Type nicht löscht, wird beim zweiten Mal Sterben versucht, ein Objekt freizugeben, das bereits freigegeben wurde -> Entity does not exist. Darum musst du jedes Mal beim Sterben die zugehörigen Types löschen. |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
BlackError |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Juhu, vielen Dank Noobody.
Da ich noch nicht viel mit types gearbeitet habe, wusste ich nicht genau, wie ich vorgehen sollte. Mit Delete habe ich es sogar versucht, habe jedoch Delete B\Entity versucht, was natürlich nicht geht Nochmals vielen Dank |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group