GetClone

(Difference between revisions)
Jump to: navigation, search
m
Line 1: Line 1:
 +
{{lua-function|getClone|}}
 +
 
Clone an object.
 
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")
 
     object = getObject("object")
Line 42: Line 26:
 
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.
  
 +
'''Notes:'''
 +
* 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
  
 
[[Category:Lua scripting]]
 
[[Category:Lua scripting]]
 
[[Category:Lua function]]
 
[[Category:Lua function]]
 
[[Category:Object]]
 
[[Category:Object]]

Revision as of 18:32, 8 February 2014

getClone()

Clone an object.

   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.

Notes:

  • 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
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox