Entity does not exist aber wo ist mein Fehler ?

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

PhillipB

Betreff: Entity does not exist aber wo ist mein Fehler ?

BeitragSo, Apr 17, 2011 14:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!
Ich habe mal wieder einen Problem.
Doch ich finde den Fehler nicht.
Ich habe in meiner .3ds 2 Knöpfe der eine soll gehiden werden damit der andere sichtbar ist.
Sie liegen beide hintereinander und sind auch benannt.
Sonst ging immer alles mit Entitypic.
Naja hier der Code: [AUSKLAPPEN]
Graphics3D 800,600,32,2
SetBuffer BackBuffer()

cam1=CreateCamera()
PositionEntity cam1,0,5,-5
TurnEntity cam1,45,0,0

plane=CreatePlane()
PositionEntity plane,0,-1,0

dashboard = LoadAnimMesh ("dashboard.3ds")

Global spiegel_r_aus = FindChild (dashboard,"spiegel_r_aus")
Global spiegel_r_an = FindChild (dashboard,"spiegel_r_an")

EntityPickMode dashboard,2

While Not KeyHit(1)

 mx = MouseX()
   my = MouseY()
   Pick = CameraPick(cam1, mx, my)
   mausklick = MouseHit ( 1 )
If mausklick Then
     If  PickedEntity() = spiegel_r_aus
     HideEntity  spiegel_r_aus
     ElseIf PickedEntity() = spiegel_r_an
     ShowEntity  spiegel_r_aus
          Endif
Endif


UpdateWorld
   RenderWorld
   
   Flip
Wend
End


Ich hoffe ihr könnt mir helfen.
Vielen dank im Vorraus.
Mfg
PhillipB.


Nachtrag: Der debugger gibt die Zeile raus : HideEntity spiegel_r_aus
  • Zuletzt bearbeitet von PhillipB am So, Apr 17, 2011 14:54, insgesamt einmal bearbeitet

BladeRunner

Moderator

BeitragSo, Apr 17, 2011 14:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Wo taucht der Fehler auf? Hast Du selbst schon mal nachgeguckt was er nicht findet? Der Debugger hilft enorm, er sagt Dir in welcher Zeile der Fehler ist, und es würde allen hier helfen (da wir den Code ja nicht ausführen können, ohne Medias) wenn Du sagst was der debugger ausgibt.
Alles andere hat keinen Zweck.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

mDave

BeitragSo, Apr 17, 2011 15:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Bones verstecken klappt nicht.
 

LucySalz

BeitragSo, Apr 17, 2011 15:03
Antworten mit Zitat
Benutzer-Profile anzeigen
den kann er ja nicht finden, wenn du chield keinen namen zuweist ^^ NameEntity hilft dir dabei
Lars Kammer

PhillipB

BeitragSo, Apr 17, 2011 15:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
NameEntity spiegel_r_aus,"spiegel_r_aus"


Wird auch sofort markiert also kanns nur oben an der Variable liegen!
Aber die ist ja richtig.

Johannes´

BeitragSo, Apr 17, 2011 17:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Versuche doch mal, den beiden Child-Modellen einzeln einen Pickmode zuzuweisen. Soweit ich weiß, musst du das bei LoadAnimMesh immer machen, weil das Ganze dann ja mit Untermodellen geladen wird. Ich meine, dass ich mal ähnliche Probleme im Zusammenhang mit EntityType hatte, wo dann die Kollision nicht funktionierte.

PhillipB

BeitragSo, Apr 17, 2011 17:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Jetzt wird Code: [AUSKLAPPEN]
NameEntity spiegel_r_aus,"spiegel_r_aus"
markiert.
Aber die Objekte sind im mesh drin!

Johannes´

BeitragSo, Apr 17, 2011 18:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Lass dir doch einfach mal die Children des Meshes ausgeben.

Code: [AUSKLAPPEN]
For i=1 To CountChildren(dashboard)
   child=GetChild(dashboard,i)
   DebugLog EntityName(child)
Next



Mein Beitrag weiter oben bezog sich darauf, dass es keine Fehler gibt, trotzdem die Pick-Befehle nichts zurückliefern. Ich hatte noch nicht verstanden, dass es um einen konkreten Fehler geht.

PhillipB

BeitragSo, Apr 17, 2011 18:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Also komiger weise wird aus spiegel_r_aus spiegel_00 und aus spiegel_r_an spiegel_r_ .
Doch trotzdem immernoch der gleiche Fehler!

Johannes´

BeitragSo, Apr 17, 2011 18:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Hast du die Bezeichnungen, die du für die Children ausgegeben bekommen hast, in die Funktionen eingesetzt?

Also:
Code: [AUSKLAPPEN]
Global spiegel_r_aus = FindChild (dashboard,"spiegel_00")
Global spiegel_r_an = FindChild (dashboard,"spiegel_r_")


Nur wieso wollt ihr eigentlich NameEntity verwenden?

PhillipB

BeitragSo, Apr 17, 2011 20:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja ich hab mal mit Debug log gearbeitet er erkennt es bloß es geht nicht zu hiden!
Komigerweise!

Villeicht fällt ja jemanden noch etwas ein!
Aber danke für dier Antworten

mfg
PhillipB.

BladeRunner

Moderator

BeitragSo, Apr 17, 2011 20:59
Antworten mit Zitat
Benutzer-Profile anzeigen
das iest ja komig!!!! fielleicht has du die anwort scho erhlten und sie nur überlesn und es gayt nicht so wei zu komplex mit 2 meshes in ein mesh.

(Oder kurz: bemüh doch bitte die Rechtschreibeprüfung, das macht es für alle einfacher hier. Danke.)
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

PhillipB

BeitragSo, Apr 17, 2011 21:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja sry mir kam da nochmal ein GedankenBlitz werend ich geschrieben habe Wink
Hat aber nicht geholfen!

Dottakopf

BeitragMo, Apr 18, 2011 10:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:

Bones verstecken klappt nicht.


Berichtigung: Bones bzw. Joints welche mit Milkshape erstellt wurden, lassen sich in BB schon verstecken.
Ich weiß es daher weil ich es in meinem aktuellen projekt mache.

@Topic:
FindChild und Co. ist meines wissens Keysensetive... also achte genau auf Groß und kleinschreibung.


Gruß
Dottakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!

Johannes´

BeitragMo, Apr 18, 2011 10:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie ist denn das jetzt, gibt es einen Fehler, wenn du versuchst, eins der Modelle zu verstecken, oder funktioniert es soweit alles, nur die Modelle werden weiterhin angezeigt?

Vielleicht könntest du auch noch mal deinen momentanen Code posten und uns die fehlerhafte Zeile sagen.

BladeRunner

Moderator

BeitragMo, Apr 18, 2011 10:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Johannes´ hat Folgendes geschrieben:
...
Vielleicht könntest du auch noch mal deinen momentanen Code posten und uns die fehlerhafte Zeile sagen.

Das predige ich ihm seit einem dutzend threads. Ich persönlich werde mich in Zukunft nur noch aufs moderieren seiner Beiträge beschränken, uns solange er nichts an seiner Art um Hilfe zu bitten ändert kann ich nur jedem hier raten auch keine Energie zu verschwenden.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Dottakopf

BeitragMo, Apr 18, 2011 12:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich verstehe die Logik allgemein nicht.

Du willst eine Art 3D Menü haben. Also hast du ein animiertes 3D Modell erstellt.
Und beim Klicken versteckst du das gleiche Modell und versuchst gleichzeitig das Versteckte modell nur über einen anderen Bone wieder anzuzeigen.

Das kling für mich absolut nicht durchführbar Very Happy


Da du dein Objekt mit LoadanimMesh lädst, nehme ich an das du über deine Joints dem Objekt 2 Zustände gegeben hast... in form einer Animation.
Des weiteren nehme ich mal an das es nur 2 Keyframes sind... ON und Off...

Jetzt ist nur noch die Frage, warum zum geier lässt du nicht einfach den Button von Keyframe 0 zu Keyframe 1 springen ???

Das geht ganz einfach mit dem Befehl Animate und als Modus nimmste einfach 3 (1x Abspielen).
Und wenn der Button wieder auf Aus geschalten wird dann wieder Animate und Modus 3 nur Speed -1 dann wirds rückwärts gespielt....


Alternativ zu 3D Objekten wären Sprites die lösung ....Also so würde ich das machen.
- 2 Sprite Grafiken und bei klick wird einfach eine andere dargestellt. Ganz billig und simpel...




Gruß
Dottakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!

PhillipB

BeitragMo, Apr 18, 2011 16:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Das moven geht ja auch nciht es kommt ja immernoch Entity does not exist!

Dottakopf

BeitragMo, Apr 18, 2011 18:52
Antworten mit Zitat
Benutzer-Profile anzeigen
würdest du uns bitte die codezeile verraten in der das "entity does not Exist" kommt. Damit wir normal sterblichen endlich sehen können wo es kommt.

wenn du weiterhin 1 zeiler postest wird das wohl nix werden. Besser gesagt, ein Moderator wird diesen Eintrag einfach Sperren oder löschen.


~Edit~
bitte ergänze deinen Code um die zeilen beim laden des 3D Objekts.



Code: [AUSKLAPPEN]

DebugLog "handle 1 " + spiegel_r_aus
DebugLog "handle 2 " + spiegel_r_an




So sieht das dann komplett aus:

Code: [AUSKLAPPEN]

Graphics3D 800,600,32,2
SetBuffer BackBuffer()

cam1=CreateCamera()
PositionEntity cam1,0,5,-5
TurnEntity cam1,45,0,0

plane=CreatePlane()
PositionEntity plane,0,-1,0

dashboard = LoadAnimMesh ("dashboard.3ds")

Global spiegel_r_aus = FindChild (dashboard,"spiegel_r_aus")
Global spiegel_r_an = FindChild (dashboard,"spiegel_r_an")

DebugLog "handle 1 " + spiegel_r_aus  ; HIER IST DIE ERGÄNZUNG
DebugLog "handle 2 " + spiegel_r_an


EntityPickMode dashboard,2

While Not KeyHit(1)

 mx = MouseX()
   my = MouseY()
   Pick = CameraPick(cam1, mx, my)
   mausklick = MouseHit ( 1 )
If mausklick Then
     If  PickedEntity() = spiegel_r_aus
     HideEntity  spiegel_r_aus
     ElseIf PickedEntity() = spiegel_r_an
     ShowEntity  spiegel_r_aus
          Endif
Endif


UpdateWorld
   RenderWorld
   
   Flip
Wend
End



natürlich muss der debugger an sein. was steht da in den handels drin ?
Meine vermutung ist, das er hier die Speicheradresse und nicht die namen der Objekte speichert.
Drum wird unten auch nie dein Objekt gefunden... den es existiert unter der bezeichnung nicht.


Gruß
Dottakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!

PhillipB

BeitragMo, Apr 18, 2011 20:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Erstmal Danke der Code muss nur leider jetzt so aussehen weil anim8or die mesh nie richtig benennt sie krigen immer diese komigen namen diese bleiben aber Wink
Code: [AUSKLAPPEN]
Graphics3D 800,600,32,2
SetBuffer BackBuffer()

cam1=CreateCamera()
PositionEntity cam1,0,5,-5
TurnEntity cam1,45,0,0

plane=CreatePlane()
PositionEntity plane,0,-1,0

dashboard = LoadAnimMesh ("dashboard.3ds")

Global spiegel_r_aus = FindChild (dashboard,"spiegel_00")
Global spiegel_r_an = FindChild (dashboard,"spiegel_r_")

DebugLog "handle 1 " + spiegel_r_aus  ; HIER IST DIE ERGÄNZUNG
DebugLog "handle 2 " + spiegel_r_an


EntityPickMode dashboard,2

While Not KeyHit(1)

   
   mx = MouseX()
   my = MouseY()
   Pick = CameraPick(cam1, mx, my)
   mausklick = MouseHit ( 1 )
   If mausklick Then
      If  PickedEntity() = spiegel_r_aus
         HideEntity  spiegel_r_aus
      ElseIf PickedEntity() = spiegel_r_an
         ShowEntity  spiegel_r_aus
      EndIf
   EndIf
   
   
   UpdateWorld
   RenderWorld
   
   Flip
Wend
End


Der Debuger gibt aus:
Code: [AUSKLAPPEN]
handle 1 144950456
handle 2 144949776


Und die Objekte werden nicht gehiden! (OHNE FEHLERMELDUNG)

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group