====== Shooting Bullets with a Spawner ======
This tutorial will show you how to set up a spawner to shoot bullets that can be turned on and off from code. Normally if you attach a spawner to an object, you can only turn it off using orxObject_Enable. But that will make the parent object invisible as well. We use a child object in the case.
===== Assets =====
You can use the following assets in this tutorial.
{{ :examples:spawners:spawner-gun.png?nolink&100 |}} {{ :examples:spawners:spawner-bullet.png?nolink&33 |}}
===== Config =====
In this config, we create a CannonObject. We give it an empty child object called: CannonSwitchingObject. The spawner CannonSpawner is attached to CannonSwitchingObject.
CannonSwitchingObject is the one we will turn on or off to stop the spawner from shooting bullets.
[CannonObject]
Graphic = CannonGraphic
Position = (100, 100, 0)
Scale = 5
ChildList = CannonSwitchingObject
[CannonGraphic]
Texture = spawner-gun.png
[CannonSwitchingObject]
Spawner = CannonSpawner
[CannonSpawner]
Object = BulletObject
WaveSize = 1
WaveDelay = 0.2
ActiveObject = 10
Position = (10, -1, 0)
Next, the bullet object to be fired by the CannonSpawner.
[BulletObject]
Graphic = BulletGraphic
Speed = (300, -15, 0) ~ (300, 15, 0)
LifeTime = 2.0
[BulletGraphic]
Texture = spawner-bullet.png
===== Code =====
Then in the code, use the cannonObject to get the switchObject by calling orxObject_GetChild on the cannonObject.
Finally, use orxObject_Enable(switchObject, orxFALSE) to stop the spawner shooting bullets, or use orxTRUE to switch it back on.
orxOBJECT *cannonObject;
orxOBJECT *switchObject;
cannonObject = orxObject_CreateFromConfig("CannonObject");
switchObject = (orxOBJECT*)orxObject_GetChild(cannonObject );
orxObject_Enable(switchObject, orxFALSE); //turn off the firing
orxObject_Enable(switchObject, orxFALSE); //turn on the firing