After a Freeentity on an animMesh, the bones are not being deleted.
Using one of the demonstration examples (press 1 to delete and reload the zombie)
Using one of the demonstration examples (press 1 to delete and reload the zombie)
Import "../minib3d.bmx" Strict Local width=640,height=480,depth=16,mode=0 Graphics3D width,height,depth,mode Local cam:TCamera=CreateCamera() PositionEntity cam,0,10,-15 Local light:TLight=CreateLight() ' load anim mesh Local ent:TMesh=LoadAnimMesh("media/zombie.b3d") ' child entity variables Local child_ent:TEntity ' this will store child entity of anim mesh Local child_no=1 ' used to select child entity Local count_children=TEntity.CountAllChildren(ent) ' total no. of children belonging to entity ' marker entity. will be used to highlight selected child entity (with zombie anim mesh it will be a bone) Local marker_ent:TMesh=CreateSphere(8) EntityColor marker_ent,255,255,0 ScaleEntity marker_ent,.25,.25,.25 EntityOrder marker_ent,-1 ' anim time - this will be incremented/decremented each frame and then supplied to SetAnimTime to animate entity Local anim_time#=0 ' used by fps code Local old_ms=MilliSecs() Local renders=0 Local fps=0 While Not KeyDown(KEY_ESCAPE) If KeyHit(KEY_ENTER) Then DebugStop ' control camera MoveEntity cam,KeyDown(KEY_D)-KeyDown(KEY_A),0,KeyDown(KEY_W)-KeyDown(KEY_S) TurnEntity cam,KeyDown(KEY_DOWN)-KeyDown(KEY_UP),KeyDown(KEY_LEFT)-KeyDown(KEY_RIGHT),0 ' change anim time values If KeyDown(KEY_MINUS) Then anim_time#=anim_time#-0.1 If KeyDown(KEY_EQUALS) Then anim_time#=anim_time#+0.1 ' animte entity SetAnimTime(ent,anim_time#) ' select child entity If KeyHit(KEY_OPENBRACKET) Then child_no=child_no-1 If KeyHit(KEY_CLOSEBRACKET) Then child_no=child_no+1 If child_no<1 Then child_no=1 If child_no>count_children Then child_no=count_children ' get child entity Local count=0 ' this is just a count variable needed by GetChildFromAll. must be set to 0. child_ent=ent.GetChildFromAll(child_no,count) ' get child entity ' position marker entity at child entity position If child_ent<>Null PositionEntity marker_ent,EntityX(child_ent,True),EntityY(child_ent,True),EntityZ(child_ent,True) EndIf RenderWorld renders=renders+1 ' calculate fps If MilliSecs()-old_ms>=1000 old_ms=MilliSecs() fps=renders renders=0 EndIf Text 0,0,"FPS: "+fps Text 0,20,"+/- to animate" Text 0,40,"[] to select different child entity (bone)" If child_ent<>Null Text 0,60,"Child Name: "+EntityName$(child_ent) EndIf 'Clear the Zombie and reload him. If KeyDown(key_1) Then FreeEntity ent ent:TMesh=LoadAnimMesh("media/zombie.b3d") EndIf tdebug.debugworld() Flip Wend End