Delete Objetc?
Blitz3D Forums/Blitz3D Programming/Delete Objetc?| 
 | ||
| ; =================================================== ; Proyecto : ISON. ; ; Programador : Yue Rexie. ; ; Sitio Web : http://www.iris3dgames.tk ; ; Nombre Fichero: TRobot.cs ; ; =================================================== ; Notas : Tipo Robot - Objeto. ; ; ; ; =================================================== Type TRobot Field malla.TMalla Field padre% End Type Function Init_OTRobot.TRobot( padre% = False ) Local oRobot.TRobot = New TRobot oRobot\padre% = padre% oRobot\malla.TMalla = Init_OMalla.TMalla ( "Robot.b3d", padre%, False ) <<<<<<< Delete objetc finish Function ? Return ( oRobot.TRobot ) End Function Function DeInit_ORobot%() Local oRobot.TRobot = Null For oRobot.TRobot = Each TRobot If ( oRobot.TRobot <> Null ) Then Delete ( oRobot.TRobot ) End If Next End Function Last object within a capo other one is removed , manually remove or touch ? | 
| 
 | ||
| Not sure what you are asking, but here is an example of removing one object and then removing all objects. Graphics 600, 400, 0, 2 SetBuffer FrontBuffer() Type thing Field n End Type For k = 1 To 3 s.thing = New thing s\n = k Next Print Print "Show entire list, delete item 2." Print For s.thing = Each thing Print s\n If s\n = 2 Then Delete s Next Print Print "Show list again, then delete all." Print For s.thing = Each thing Print s\n Next Delete Each thing count = 0 For s.thing = Each thing count = count + 1 Next Print Print "Number of items in list: " + count WaitKey | 
| 
 | ||
| If I understand correctly: you want to delete all objects in a type? Then I think (not sure) to do the right way, free entity first(if any exists), then delete the object. Function objdelete(o.obj) ; Delete object. If o\obj<>Null Then emitterdelete(o\remitter) If o\entity<>0 Then FreeEntity o\entity Delete o End Function Function objdeleteall() ;Delete all objects. For o.obj=Each obj objdelete(o) Next End Function [edit: Aaargh.. Floyd beat me to it ;-) | 
| 
 | ||
| Ok, Thanks You. 
Type TMalla
	
	Field anim%
	Field malla%
	Field padre%
	
End Type
Function Init_OMalla.TMalla( nombreMalla$, padre% = 0, anim% = False )
	Local oMalla.TMalla  = New TMalla
	
	oMalla.TMalla\anim%  = anim%
	oMalla.TMalla\padre% = padre%
	
	oMalla.TMalla\malla% = TCargarMalla%( nombreMalla$, oMalla\padre%, oMalla\anim% )
	
	
	Return oMalla.TMalla
	
End Function
Function TCargarMalla%( nombreMalla$, padre%=False, anim%=False)
	
	
	InitZip%("Data/","Modelos.00")
	
	Local malla%
	
	Select anim%
			
		Case True
			
			malla% =xLoadAnimMesh(pak( nombreMalla$), padre% )
			
		Case False
	 		
	        malla% =xLoadMesh(pak( nombreMalla$), padre% )		
			
	End Select 
	
	PakClean%()
	
	Return malla%
	
	
End Function 
Function DeInit_OMalla%()
	
	
	Local oMalla.TMalla = Null 
	
	
	For  oMalla.TMalla = Each TMalla
		
		
		If ( oMalla\padre% ) Then 
			
			
			xEntityParent ( oMalla\malla%, 0 )
			
		End If 
		
		If ( oMalla\malla% ) Then 
			
			xFreeEntity( oMalla\malla% )
			
		End If 
			
		
		If ( oMalla.TMalla <> Null ) Then 
			
			Delete ( oMalla.TMalla )
			
		End If 
		
		
		
	Next 
	
	
	
End Function 
Local jugador.TRobot = Null Type TRobot Field malla.TMalla Field padre% End Type Function Init_ORobot.TRobot( padre% = False ) Local oRobot.TRobot = New TRobot oRobot\padre% = padre% oRobot\malla.TMalla = Init_OMalla.TMalla ( "Robot.b3d", padre%, False ) xEntityAddConcaveShape(oRobot\malla\malla%, 10) xEntityReleaseForces(oRobot\malla\malla%) xRotateEntity(oRobot\malla\malla%, -35.0, 0.0, 0.0) xEntityWakeUp(oRobot\malla\malla%) Return ( oRobot.TRobot ) End Function Function DeInit_ORobot%() Local oRobot.TRobot = Null If ( oRobot\malla.TMalla <> Null ) Then DeInit_OMalla%() End If For oRobot.TRobot = Each TRobot If ( oRobot.TRobot <> Null ) Then Delete ( oRobot.TRobot ) End If Next End Function |