mirror of
https://github.com/cyberarm/i-mic-fps.git
synced 2025-12-15 23:52:35 +00:00
Moved constants into their own file, LoadingState now loads shaders and now shows 'Loading [model|shader] name...', tweaked player running speed, Player model is no longer rendered when in first person view, removed redundant ShaderManager
This commit is contained in:
8
lib/constants.rb
Normal file
8
lib/constants.rb
Normal file
@@ -0,0 +1,8 @@
|
||||
class IMICFPS
|
||||
GAME_ROOT_PATH = File.expand_path("..", File.dirname(__FILE__))
|
||||
|
||||
TextureCoordinate = Struct.new(:u, :v, :weight)
|
||||
Point = Struct.new(:x, :y)
|
||||
Color = Struct.new(:red, :green, :blue, :alpha)
|
||||
Face = Struct.new(:vertices, :uvs, :normals, :material, :smoothing)
|
||||
end
|
||||
@@ -1,9 +1,4 @@
|
||||
class IMICFPS
|
||||
TextureCoordinate = Struct.new(:u, :v, :weight)
|
||||
Point = Struct.new(:x, :y)
|
||||
Color = Struct.new(:red, :green, :blue, :alpha)
|
||||
Face = Struct.new(:vertices, :uvs, :normals, :material, :smoothing)
|
||||
|
||||
module EntityManager # Get included into GameState context
|
||||
def add_entity(entity)
|
||||
@collision_manager.add(entity)# Add every entity to collision manager
|
||||
|
||||
@@ -96,6 +96,12 @@ class IMICFPS
|
||||
raise "InputMapper.action(#{key}) is nil!" unless answer
|
||||
answer
|
||||
end
|
||||
|
||||
def self.reset_keys
|
||||
@@keys.each do |key, value|
|
||||
@@keys[key] = false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
class IMICFPS
|
||||
class ShaderManager
|
||||
SHADERS = {}
|
||||
def self.add_shader(name, shader)
|
||||
SHADERS[name] = shader
|
||||
end
|
||||
|
||||
def self.shader(name)
|
||||
SHADERS[name]
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -11,11 +11,12 @@ class IMICFPS
|
||||
@collision = :dynamic
|
||||
|
||||
@speed = 2.5 # meter's per second
|
||||
@running_speed = 6.8 # meter's per second
|
||||
@running_speed = 5.0 # meter's per second
|
||||
@turn_speed = 50.0
|
||||
@old_speed = @speed
|
||||
@mass = 72 # kg
|
||||
@first_person_view = true
|
||||
@visible = false
|
||||
@drag = 0.6
|
||||
|
||||
@devisor = 500.0
|
||||
|
||||
@@ -28,18 +28,22 @@ class IMICFPS
|
||||
|
||||
handleGlError
|
||||
|
||||
if ShaderManager.shader("lighting")
|
||||
ShaderManager.shader("lighting").use do |shader|
|
||||
glUniform3f(shader.variable("SunLight"), 1.0, 1.0, 1.0)
|
||||
if Shader.available?("lighting")
|
||||
Shader.use("lighting") do |shader|
|
||||
glUniform3f(shader.attribute_location("SunLight"), 1.0, 1.0, 1.0)
|
||||
|
||||
handleGlError
|
||||
draw_mesh(object.model)
|
||||
object.draw
|
||||
if object.visible
|
||||
draw_mesh(object.model)
|
||||
object.draw
|
||||
end
|
||||
end
|
||||
else
|
||||
handleGlError
|
||||
draw_mesh(object.model)
|
||||
object.draw
|
||||
if object.visible
|
||||
draw_mesh(object.model)
|
||||
object.draw
|
||||
end
|
||||
end
|
||||
handleGlError
|
||||
|
||||
|
||||
@@ -15,8 +15,7 @@ class IMICFPS
|
||||
add_asset(:model, "base", "tree")
|
||||
add_asset(:model, "base", "biped")
|
||||
|
||||
# Currently broken
|
||||
Shader.new(name: "lighting", vertex: "shaders/vertex/lighting.glsl", fragment: "shaders/fragment/lighting.glsl")
|
||||
add_asset(:shader, nil, "lighting")
|
||||
|
||||
@act = false
|
||||
@cycled = false
|
||||
@@ -37,7 +36,6 @@ class IMICFPS
|
||||
end
|
||||
|
||||
def update
|
||||
# puts (@asset_index.to_f/@assets.count)
|
||||
@percentage.text = "#{((@asset_index.to_f/@assets.count)*100.0).round}%"
|
||||
@act = true if @cycled
|
||||
|
||||
@@ -49,7 +47,8 @@ class IMICFPS
|
||||
case hash[:type]
|
||||
when :model
|
||||
ModelLoader.new(manifest_file: IMICFPS.assets_path + "/#{hash[:package]}/#{hash[:name]}/manifest.yaml", entity: @dummy_entity)
|
||||
# when :shader
|
||||
when :shader
|
||||
Shader.new(name: hash[:name], vertex: "shaders/vertex/#{hash[:name]}.glsl", fragment: "shaders/fragment/#{hash[:name]}.glsl")
|
||||
else
|
||||
warn "Unknown asset: #{hash}"
|
||||
end
|
||||
@@ -66,7 +65,7 @@ class IMICFPS
|
||||
@lock = true
|
||||
end
|
||||
else
|
||||
@state.text = "Loading #{@assets[@asset_index][:name].split('/').last}..."
|
||||
@state.text = "Loading #{@assets[@asset_index][:type]} #{@assets[@asset_index][:name].split('/').last}..."
|
||||
@state.x = (window.width/2)-(@state.width/2)
|
||||
@cycled = true
|
||||
end
|
||||
|
||||
@@ -11,6 +11,7 @@ class IMICFPS
|
||||
|
||||
def setup
|
||||
$debug = self
|
||||
|
||||
set(:boundingboxes, false)
|
||||
set(:wireframe, false)
|
||||
set(:stats, false)
|
||||
|
||||
@@ -151,6 +151,8 @@ class IMICFPS
|
||||
end
|
||||
|
||||
def focus
|
||||
InputMapper.reset_keys
|
||||
|
||||
@active_text_input = window.text_input
|
||||
window.text_input = @text_input
|
||||
|
||||
|
||||
Reference in New Issue
Block a user