blob: b89579d9e94a86b453b1e8927558b877c798f3f4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
|
FF::Scn::Render.add(
FF::Sys.new('UpdateBoidSprite', priority: 98) do
FF::Cmp::Boid.each do |boid|
sprite = boid.entities[0].components[FF::Cmp::Sprite][0]
sprite.props[:x] = boid.x - sprite.props[:w] / 2
sprite.props[:y] = boid.y - sprite.props[:h] / 2
diff_angle = (((Math.atan2(boid.vy, boid.vx) * 180.0) / Math::PI).round(3) - 90) - sprite.props[:angle]
diff_angle = (diff_angle + 180) % 360 - 180
sprite.props[:angle] += diff_angle
end
end
)
|