====== Part 14 – FX ======
Every game needs an objective. In our game, the hero needs to the top of the platforms to reach the flashing star.
We don't have a star asset, so I've provided one below:
{{ :guides:beginners:star.png?nolink |}}
Right and click this image and save it as "star.png" in the ''data/texture'' folder in our project.
Create a object section for this star and position it at the top right hand platform:
[StarGraphic]
Texture = star.png
[StarObject]
Graphic = StarGraphic
Position = (290, -260, 0)
Add the star to the Scene section's child list so that it is created when the platforms are:
[Scene]
ChildList = PlatformObject # MiddlePlatformObject #
TopLeftPlatformObject # TopPlatformObject # TopRightPlatformObject #
StarObject
Run the game and you will have a star in the top right hand corner:
{{:guides:beginners:beginners-33-star-positioned.png?nolink|}}
It will be nice if the star pulses colour and slowly turns. We can use two FXSlot sections for this:
[StarFlashSlotFX]
Type = color
Curve = sine
StartTime = 0
EndTime = 1
Absolute = true
StartValue = (255,0,0)
EndValue = (255,255,0)
[StarRotateSlotFX]
Type = rotation
Curve = linear
StartTime = 0
EndTime = 2
StartValue = 0
EndValue = 359
Now group the two slots under one FX section:
[StarFX]
SlotList = StarFlashSlotFX # StarRotateSlotFX
KeepInCache = true
Loop = true
The FX section will be in charge of ensuring they stay in memory and that they both loop.
Add the FX to the StarObject:
[StarObject]
Graphic = StarGraphic
Position = (290, -260, 0)
FXList = StarFX
Cool. Run that and the star should turn and flash.
The only problem is that the turning pivot for the star is a little off. Fix that on the StarGraphic:
[StarGraphic]
Texture = star.png
Pivot = center
Run that. And it will turn nicely.
One more tweak, a minor detail: As the sprite is turning, there are some jaggies. Smooth them out my applying ''Smoothing'' to the ''StarObject'':
[StarObject]
Graphic = StarGraphic
Position = (290, -260, 0)
FXList = StarFX
Smoothing = true
Run that and you should get:
{{:guides:beginners:beginners-34-star-fx.png?nolink|}}
Great! Next, is to make the hero collide with the star in order to win the game.
The star object will need a static body, with a solid body part:
[StarBody]
Dynamic = false
PartList = StarBodyPart
[StarBodyPart]
Type = box
Solid = true
SelfFlags = star
CheckMask = hero
And add the body to the ''StarObject'':
[StarObject]
Graphic = StarGraphic
Position = (290, -260, 0)
FXList = StarFX
Smoothing = true
Body = StarBody
We've also declared flags to make sure that we only care if the star collides with the hero and nothing else.
We will set that collision up in a moment.
----
Next: [[en:guides:beginners:collision_events|Part 15 – Collision Events.]]
{{section>en:guides:beginners:toc&noheader&nofooter&noeditbutton}}