User Tools

Site Tools


en:tutorials:useparentspace_for_spawners

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
en:tutorials:useparentspace_for_spawners [2019/06/13 03:52 (12 months ago)]
sausage created draft
en:tutorials:useparentspace_for_spawners [2019/06/14 01:48 (12 months ago)] (current)
Line 10: Line 10:
 ===== Objects and Spawners ===== ===== Objects and Spawners =====
  
-In general when specifying what object to spawn, the object is given screen ​co-ordinates like:+In general when specifying what object to spawn, the object is given co-ordinates ​in world space like:
  
     Position = (35, 100, 0.0)     Position = (35, 100, 0.0)
   
-With relative positioning,​ the object that is spawned will be positioned relative to the Parent Object (the one that has a spawner attached).+With relative positioning,​ the object that is spawned will be positioned relative to the Parent Object's Size (The Parent Object is one that has a spawner attached).
  
 That can be confusing. Let's view it as a tree: That can be confusing. Let's view it as a tree:
  
   * Main Object   * Main Object
-  * * Spawner connected +    ​* Spawner connected 
-  * * * Object to Spawn+      * Object to Spawn
  
 It is the Object to Spawn, that will use the ''​UseParentSpace''​ property. It is the Object to Spawn, that will use the ''​UseParentSpace''​ property.
  
-But before we get there, ​lets start the usual screen coordinate ​way.+But before we get there, ​let's set up a spawner in the usual way using world coordinates.
  
  
 ===== Making it rain ===== ===== Making it rain =====
  
-Let's start by making a rain cloud that spawns raindrops. Here's a cloud for you to use:+Start by making a rain cloud that spawns raindrops. Here's a cloud for you to use:
  
-{{ :​tutorials:​cloud.png?​nolink |}} +<WRAP center round box 90%> 
 +{{ :​tutorials:​cloud.png?​nolink |}}  
 +</​WRAP>​ 
 + 
 + 
 +
  
 Define a ''​Cloud''​ object in config: Define a ''​Cloud''​ object in config:
Line 50: Line 55:
 </​code>​ </​code>​
  
-This will give a cloud object a little up from the centre of the screen. We haven'​t provided a spawner yet so it doesn'​t do anything. ​Define ​the spawnerand object to swap with:+This will create ​a cloud object a little up from the centre of the screen. We haven'​t provided a spawner yet so it doesn'​t do anything. ​So define both the spawner and object to spawn with:
  
 <code ini> <code ini>
 [RainSpawner] [RainSpawner]
-Object ​      ​= RainDrop +Object ​          ​= RainDrop 
-TotalObject ​ = 0 +TotalObject ​     = 0 
-ActiveObject = 1000 +ActiveObject ​    ​= 1000 
-WaveSize ​    ​= 5 +WaveSize ​        ​= 5 
-WaveDelay ​   = 0.005 ~ 0.03 +WaveDelay ​       = 0.016 ~ 0.03 
-ObjectSpeed ​ = (-400, 800)+ObjectSpeed ​     = (0, 800) 
 +Rotation ​        = 22.5 
 +UseRelativeSpeed = true
  
 [RainDrop] [RainDrop]
Line 72: Line 79:
 LifeTime ​      = 1.0 LifeTime ​      = 1.0
 Smoothing ​     = true Smoothing ​     = true
-Rotation ​      = 22.5 
 Position ​      = (-50.0, 00.0, 0.0) ~ (90.0, 00.0, 0.5) Position ​      = (-50.0, 00.0, 0.0) ~ (90.0, 00.0, 0.5)
 </​code>​ </​code>​
  
-In the spawner config above, ​make it spawn ''​RainDrop''​ objects, lots of them, in a fast down-right direction.+In the spawner config above, ​we're making ''​RainSpawner'' ​spawn ''​RainDrop''​ objects, lots of them, in a fast down direction, but rotating the spawner by 22 degrees (plus using relative speed) to get a nice down-left direction ​for the rain.
  
-For the ''​RainDrop''​ objects themselves, vary their alpha transparency, ​their stretched size and their starting position on screen between X = -50.0 to 90.+For the ''​RainDrop''​ objects themselves, ​we vary their alpha transparency,​ stretched size and their starting position on screen between X = -50.0 to 90.0.
  
-There is no image for the raindrops, we're just using a stretched pixel that is rotated 22 degrees to match the direction. That will do nicely. ​+There is no image for the raindrops, we're just using a stretched pixel. That will do nicely. ​
  
 {{ :​tutorials:​raining.png?​nolink |}} {{ :​tutorials:​raining.png?​nolink |}}
Line 87: Line 93:
 ===== Relative Spawner Positioning ===== ===== Relative Spawner Positioning =====
  
-The last step is to convert the positioning to be relative to the Cloud'​s size. This means changing the ''​Position''​ property of the ''​RainDrop''​ and setting ''​UseParentSpace''​ to both:+The last step is to convert the positioning to be relative to the Cloud'​s size. This means changing the ''​Position''​ property of the ''​RainDrop''​ and setting ''​UseParentSpace''​ to position:
  
 <code ini> <code ini>
Line 93: Line 99:
 Graphic ​       = @ Graphic ​       = @
 Texture ​       = pixel Texture ​       = pixel
-Size           = (1,20) ~ (1,40)+Scale          ​= (1,20) ~ (1,40)
 Alpha          = 0.3 ~ 0.8 Alpha          = 0.3 ~ 0.8
 Color          = (255,​255,​255) Color          = (255,​255,​255)
Line 102: Line 108:
 Smoothing ​     = true Smoothing ​     = true
 Rotation ​      = 22.5 Rotation ​      = 22.5
-Position ​      = (-0.3, 00.0, 0.0) ~ (0.45, 00.0, 0.5) +Position ​      = (-0.3, 0.0, 0.0) ~ (0.45, 0.0, 0.5) 
-UseParentSpace = both+UseParentSpace = position
 </​code> ​ </​code> ​
  
Line 111: Line 117:
  
 {{ :​tutorials:​raining.png?​nolink |}} {{ :​tutorials:​raining.png?​nolink |}}
 +
 +
 +==== Further information ====
 +  - Ordered List Item[[en:​tutorials:​useparentspace|UseParentSpace for Relative Object Positioning and Scaling]]
 +  - [[en:​orx:​config:​settings_structure:​orxobject|Object Configuration]]
  
en/tutorials/useparentspace_for_spawners.1560397943.txt.gz · Last modified: 2019/06/13 06:52 (12 months ago) (external edit)