GetClone

(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
 
Clone an object.
 
Clone an object.
  
#''Some notes about clones :''
+
 
#* They keeps the base object active behavior
+
*'''Some notes about clones :'''
#* They keeps physics proprieties
+
** They keeps the base object active behavior
#* They don't keep the translate/force/etc.. values of the base object from lua script (because they are new objects)
+
** They keeps physics proprieties
 +
** They don't keep the translate/force/etc.. values of the base object from lua script (because they are new objects)
 +
 
 +
 
 +
*'''Warning :''' Spawning a lot of clones in a very short time may cause slow-down, because :
 +
** memory allocation : each cloning allocate new memory, fast games (like a shoot'em'up) usually pre-allocate memory.
 +
** when using physics, the new object need to be also allocated to the physics world
 +
** when using sound, the source need to be also allocated to the sound context
 +
 
 +
 
 +
-----
 +
 
  
 
Basic usage :
 
Basic usage :
Line 30: Line 41:
  
 
In this case all the clones currently on the scene and the newly created ones will rotate.
 
In this case all the clones currently on the scene and the newly created ones will rotate.
 +
  
 
[[Category:Lua scripting]]
 
[[Category:Lua scripting]]
 
[[Category:Lua function]]
 
[[Category:Lua function]]
 
[[Category:Object]]
 
[[Category:Object]]

Revision as of 18:29, 6 February 2014

Clone an object.


  • Some notes about clones :
    • They keeps the base object active behavior
    • They keeps physics proprieties
    • They don't keep the translate/force/etc.. values of the base object from lua script (because they are new objects)


  • Warning : Spawning a lot of clones in a very short time may cause slow-down, because :
    • memory allocation : each cloning allocate new memory, fast games (like a shoot'em'up) usually pre-allocate memory.
    • when using physics, the new object need to be also allocated to the physics world
    • when using sound, the source need to be also allocated to the sound context




Basic usage :

   object = getObject("object")
   objectClone = getClone(object)

For referencing you can store them into a table :

   object = getObject("object")
   cloneList = {}
   function onSceneUpdate()
           if onKeyDown("SPACE") then
               table.insert(cloneList, #cloneList + 1, getClone(object)) -- create a clone
           end
   end

With that method, the first clone will be cloneList[1], second clone will be cloneList[2], and so on..

To manage all these clones at once you could add to the script, for example :

   for i=1, #cloneList do 
       rotate(cloneList[i], {0, 0, 1}, 1, "local")
   end 

In this case all the clones currently on the scene and the newly created ones will rotate.

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox