Class: Zyps::Friction
- Inherits:
-
EnvironmentalFactor
- Object
- EnvironmentalFactor
- Zyps::Friction
- Defined in:
- lib/zyps/environmental_factors.rb
Overview
A force that slows all objects.
Instance Attribute Summary collapse
-
#force ⇒ Object
Rate of slowing.
Instance Method Summary collapse
-
#act(environment) ⇒ Object
Reduce the target’s speed at the given rate.
-
#initialize(force) ⇒ Friction
constructor
A new instance of Friction.
Constructor Details
Instance Attribute Details
#force ⇒ Object
Rate of slowing.
138 139 140 |
# File 'lib/zyps/environmental_factors.rb', line 138 def force @force end |
Instance Method Details
#act(environment) ⇒ Object
Reduce the target’s speed at the given rate.
147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 |
# File 'lib/zyps/environmental_factors.rb', line 147 def act(environment) elapsed_time = @clock.elapsed_time environment.objects.each do |object| #Slow object. acceleration = @force * elapsed_time speed = object.vector.speed if speed > 0 speed -= acceleration speed = 0 if speed < 0 elsif speed < 0 speed += acceleration speed = 0 if speed > 0 end object.vector.speed = speed end end |