blob: 4f7dc76965895e380d6a592027f6acad08ae2081 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
FF::Scn::Render.add(
# Update the position of the boid sprite before
# the camera and before its rendered
FF::Sys.new('UpdateBoidSprite', priority: 95) do
FF::Cmp::Boid.each do |boid|
sprite = boid.entities[0].components[FF::Cmp::Sprite][0]
sprite.props[:x] = boid.x - boid.h / 2
sprite.props[:y] = boid.y - boid.w / 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
sprite.props[:w] = boid.w
sprite.props[:h] = boid.h
end
end
)
|