diff --git a/Gemfile b/Gemfile index 89576b9..b57046b 100644 --- a/Gemfile +++ b/Gemfile @@ -2,4 +2,4 @@ source "https://rubygems.org" gem "opengl-bindings" gem "glu" # gem "glut" -gem "gosu" +gem "gosu" \ No newline at end of file diff --git a/i-mic-fps.rb b/i-mic-fps.rb index 7b0b509..12359f7 100644 --- a/i-mic-fps.rb +++ b/i-mic-fps.rb @@ -63,4 +63,18 @@ require_relative "lib/window" MODEL_METER_SCALE = 0.001 # Objects exported from blender using the millimeter object scale will be close to 1 GL unit -IMICFPS::Window.new.show + +if ARGV.join.include?("--profile") + begin + require "ruby-prof" + RubyProf.start + IMICFPS::Window.new.show + result = RubyProf.stop + printer = RubyProf::MultiPrinter.new(result) + printer.print(path: ".", profile: "profile", min_percent: 2) + rescue LoadError + puts "ruby-prof not installed!" + end +else + IMICFPS::Window.new.show +end diff --git a/lib/objects/player.rb b/lib/objects/player.rb index 788910a..2355983 100644 --- a/lib/objects/player.rb +++ b/lib/objects/player.rb @@ -9,7 +9,7 @@ class IMICFPS def setup bind_model(ModelLoader.new(type: :obj, file_path: "objects/biped.obj", game_object: self)) @speed = 2.5 # meter's per second - @running_speed = 6.8 + @running_speed = 6.8 # meter's per second @old_speed = @speed @mass = 72 # kg @y_velocity = 0 diff --git a/lib/objects/tree.rb b/lib/objects/tree.rb index 21be33f..9fbb820 100644 --- a/lib/objects/tree.rb +++ b/lib/objects/tree.rb @@ -2,7 +2,10 @@ class IMICFPS class Tree < GameObject def setup bind_model(ModelLoader.new(type: :obj, file_path: "objects/tree.obj", game_object: self)) - self.y = @terrain.height_at(self) + vert = @terrain.find_nearest_vertex(self) + self.x = vert.x + self.y = vert.y + self.z = vert.z end # def update diff --git a/lib/window.rb b/lib/window.rb index d63b0f1..559ba78 100644 --- a/lib/window.rb +++ b/lib/window.rb @@ -26,7 +26,6 @@ class IMICFPS @skydome = Skydome.new(scale: 0.08, backface_culling: false, auto_manage: false) 25.times do - p @terrain.width Tree.new(x: rand(@terrain.width)-(@terrain.width/2.0), z: rand(@terrain.depth)-(@terrain.depth/2.0), terrain: @terrain) end # Tree.new(x: 1, z: -5, terrain: @terrain)