mirror of
https://github.com/cyberarm/i-mic-fps.git
synced 2025-12-15 15:42:35 +00:00
Remove collision checking from Game and move it into CollisionManager
This commit is contained in:
@@ -4,6 +4,7 @@ class IMICFPS
|
|||||||
include GLU
|
include GLU
|
||||||
|
|
||||||
def setup
|
def setup
|
||||||
|
@collision_manager = CollisionManager.new(game_state: self)
|
||||||
@renderer = Renderer.new(game_state: self)
|
@renderer = Renderer.new(game_state: self)
|
||||||
@terrain = Terrain.new(game_state: self)#(size: 170, height: 0)
|
@terrain = Terrain.new(game_state: self)#(size: 170, height: 0)
|
||||||
@draw_skydome = true
|
@draw_skydome = true
|
||||||
@@ -105,25 +106,7 @@ eos
|
|||||||
end
|
end
|
||||||
@text.text = string
|
@text.text = string
|
||||||
|
|
||||||
# Expensive AABB collision detection
|
@collision_manager.update
|
||||||
@game_objects.each do |object|
|
|
||||||
@game_objects.each do |b|
|
|
||||||
next if object == b
|
|
||||||
next if object.is_a?(Terrain) || b.is_a?(Terrain)
|
|
||||||
|
|
||||||
if object.intersect(object, b)
|
|
||||||
object.debug_color = Color.new(1.0,0.0,0.0)
|
|
||||||
b.debug_color = Color.new(1.0,0.0,0.0)
|
|
||||||
|
|
||||||
# ObjectManager.objects.delete(object) unless object.is_a?(Player)
|
|
||||||
# puts "#{object} is intersecting #{b}" if object.is_a?(Player)
|
|
||||||
else
|
|
||||||
object.debug_color = Color.new(0,1,0)
|
|
||||||
b.debug_color = Color.new(0,1,0)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
@game_objects.each(&:update)
|
@game_objects.each(&:update)
|
||||||
|
|
||||||
@skydome.update if @skydome.renderable
|
@skydome.update if @skydome.renderable
|
||||||
|
|||||||
Reference in New Issue
Block a user