mirror of
https://github.com/cyberarm/i-mic-fps.git
synced 2025-12-16 08:02:36 +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:
@@ -62,12 +62,9 @@ if RUBY_VERSION < "2.5.0"
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
class IMICFPS
|
|
||||||
GAME_ROOT_PATH = File.expand_path(File.dirname(__FILE__))
|
|
||||||
end
|
|
||||||
|
|
||||||
include CyberarmEngine
|
include CyberarmEngine
|
||||||
require_relative "lib/version"
|
require_relative "lib/version"
|
||||||
|
require_relative "lib/constants"
|
||||||
require_relative "lib/common_methods"
|
require_relative "lib/common_methods"
|
||||||
|
|
||||||
require_relative "lib/trees/aabb_tree_debug"
|
require_relative "lib/trees/aabb_tree_debug"
|
||||||
@@ -75,7 +72,6 @@ require_relative "lib/trees/aabb_tree"
|
|||||||
require_relative "lib/trees/aabb_node"
|
require_relative "lib/trees/aabb_node"
|
||||||
|
|
||||||
require_relative "lib/managers/input_mapper"
|
require_relative "lib/managers/input_mapper"
|
||||||
require_relative "lib/managers/shader_manager"
|
|
||||||
require_relative "lib/managers/entity_manager"
|
require_relative "lib/managers/entity_manager"
|
||||||
require_relative "lib/managers/light_manager"
|
require_relative "lib/managers/light_manager"
|
||||||
require_relative "lib/managers/network_manager"
|
require_relative "lib/managers/network_manager"
|
||||||
|
|||||||
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
|
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
|
module EntityManager # Get included into GameState context
|
||||||
def add_entity(entity)
|
def add_entity(entity)
|
||||||
@collision_manager.add(entity)# Add every entity to collision manager
|
@collision_manager.add(entity)# Add every entity to collision manager
|
||||||
|
|||||||
@@ -96,6 +96,12 @@ class IMICFPS
|
|||||||
raise "InputMapper.action(#{key}) is nil!" unless answer
|
raise "InputMapper.action(#{key}) is nil!" unless answer
|
||||||
answer
|
answer
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.reset_keys
|
||||||
|
@@keys.each do |key, value|
|
||||||
|
@@keys[key] = false
|
||||||
|
end
|
||||||
|
end
|
||||||
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
|
@collision = :dynamic
|
||||||
|
|
||||||
@speed = 2.5 # meter's per second
|
@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
|
@turn_speed = 50.0
|
||||||
@old_speed = @speed
|
@old_speed = @speed
|
||||||
@mass = 72 # kg
|
@mass = 72 # kg
|
||||||
@first_person_view = true
|
@first_person_view = true
|
||||||
|
@visible = false
|
||||||
@drag = 0.6
|
@drag = 0.6
|
||||||
|
|
||||||
@devisor = 500.0
|
@devisor = 500.0
|
||||||
|
|||||||
@@ -28,18 +28,22 @@ class IMICFPS
|
|||||||
|
|
||||||
handleGlError
|
handleGlError
|
||||||
|
|
||||||
if ShaderManager.shader("lighting")
|
if Shader.available?("lighting")
|
||||||
ShaderManager.shader("lighting").use do |shader|
|
Shader.use("lighting") do |shader|
|
||||||
glUniform3f(shader.variable("SunLight"), 1.0, 1.0, 1.0)
|
glUniform3f(shader.attribute_location("SunLight"), 1.0, 1.0, 1.0)
|
||||||
|
|
||||||
handleGlError
|
handleGlError
|
||||||
draw_mesh(object.model)
|
if object.visible
|
||||||
object.draw
|
draw_mesh(object.model)
|
||||||
|
object.draw
|
||||||
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
handleGlError
|
handleGlError
|
||||||
draw_mesh(object.model)
|
if object.visible
|
||||||
object.draw
|
draw_mesh(object.model)
|
||||||
|
object.draw
|
||||||
|
end
|
||||||
end
|
end
|
||||||
handleGlError
|
handleGlError
|
||||||
|
|
||||||
|
|||||||
@@ -15,8 +15,7 @@ class IMICFPS
|
|||||||
add_asset(:model, "base", "tree")
|
add_asset(:model, "base", "tree")
|
||||||
add_asset(:model, "base", "biped")
|
add_asset(:model, "base", "biped")
|
||||||
|
|
||||||
# Currently broken
|
add_asset(:shader, nil, "lighting")
|
||||||
Shader.new(name: "lighting", vertex: "shaders/vertex/lighting.glsl", fragment: "shaders/fragment/lighting.glsl")
|
|
||||||
|
|
||||||
@act = false
|
@act = false
|
||||||
@cycled = false
|
@cycled = false
|
||||||
@@ -37,7 +36,6 @@ class IMICFPS
|
|||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
# puts (@asset_index.to_f/@assets.count)
|
|
||||||
@percentage.text = "#{((@asset_index.to_f/@assets.count)*100.0).round}%"
|
@percentage.text = "#{((@asset_index.to_f/@assets.count)*100.0).round}%"
|
||||||
@act = true if @cycled
|
@act = true if @cycled
|
||||||
|
|
||||||
@@ -49,7 +47,8 @@ class IMICFPS
|
|||||||
case hash[:type]
|
case hash[:type]
|
||||||
when :model
|
when :model
|
||||||
ModelLoader.new(manifest_file: IMICFPS.assets_path + "/#{hash[:package]}/#{hash[:name]}/manifest.yaml", entity: @dummy_entity)
|
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
|
else
|
||||||
warn "Unknown asset: #{hash}"
|
warn "Unknown asset: #{hash}"
|
||||||
end
|
end
|
||||||
@@ -66,7 +65,7 @@ class IMICFPS
|
|||||||
@lock = true
|
@lock = true
|
||||||
end
|
end
|
||||||
else
|
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)
|
@state.x = (window.width/2)-(@state.width/2)
|
||||||
@cycled = true
|
@cycled = true
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ class IMICFPS
|
|||||||
|
|
||||||
def setup
|
def setup
|
||||||
$debug = self
|
$debug = self
|
||||||
|
|
||||||
set(:boundingboxes, false)
|
set(:boundingboxes, false)
|
||||||
set(:wireframe, false)
|
set(:wireframe, false)
|
||||||
set(:stats, false)
|
set(:stats, false)
|
||||||
|
|||||||
@@ -151,6 +151,8 @@ class IMICFPS
|
|||||||
end
|
end
|
||||||
|
|
||||||
def focus
|
def focus
|
||||||
|
InputMapper.reset_keys
|
||||||
|
|
||||||
@active_text_input = window.text_input
|
@active_text_input = window.text_input
|
||||||
window.text_input = @text_input
|
window.text_input = @text_input
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user