mirror of
https://github.com/cyberarm/i-mic-rts.git
synced 2025-12-15 07:42:34 +00:00
Updates to support changes to CyberarmEngine
This commit is contained in:
25
Gemfile.lock
25
Gemfile.lock
@@ -1,25 +1,26 @@
|
|||||||
GEM
|
GEM
|
||||||
remote: https://rubygems.org/
|
remote: https://rubygems.org/
|
||||||
specs:
|
specs:
|
||||||
clipboard (1.3.5)
|
cyberarm_engine (0.23.0)
|
||||||
cyberarm_engine (0.15.0)
|
excon (~> 0.88)
|
||||||
clipboard (~> 1.3.5)
|
gosu (~> 1.1)
|
||||||
excon (~> 0.78.0)
|
|
||||||
gosu (~> 1.0.0)
|
|
||||||
gosu_more_drawables (~> 0.3)
|
gosu_more_drawables (~> 0.3)
|
||||||
excon (0.78.1)
|
excon (0.99.0)
|
||||||
gosu (1.0.0)
|
gosu (1.4.5)
|
||||||
gosu_more_drawables (0.3.1)
|
gosu_more_drawables (0.3.1)
|
||||||
mini_portile2 (2.8.0)
|
mini_portile2 (2.8.1)
|
||||||
nokogiri (1.13.6)
|
nokogiri (1.14.2)
|
||||||
mini_portile2 (~> 2.8.0)
|
mini_portile2 (~> 2.8.0)
|
||||||
racc (~> 1.4)
|
racc (~> 1.4)
|
||||||
nokogiri (1.13.6-x86_64-linux)
|
nokogiri (1.14.2-x64-mingw-ucrt)
|
||||||
racc (~> 1.4)
|
racc (~> 1.4)
|
||||||
racc (1.6.0)
|
nokogiri (1.14.2-x86_64-linux)
|
||||||
|
racc (~> 1.4)
|
||||||
|
racc (1.6.2)
|
||||||
|
|
||||||
PLATFORMS
|
PLATFORMS
|
||||||
ruby
|
ruby
|
||||||
|
x64-mingw-ucrt
|
||||||
x86_64-linux
|
x86_64-linux
|
||||||
|
|
||||||
DEPENDENCIES
|
DEPENDENCIES
|
||||||
@@ -27,4 +28,4 @@ DEPENDENCIES
|
|||||||
nokogiri
|
nokogiri
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
2.2.3
|
2.4.8
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
class IMICRTS
|
class IMICRTS
|
||||||
class Camera
|
class Camera
|
||||||
|
include CyberarmEngine::Common
|
||||||
|
|
||||||
attr_reader :viewport, :position, :velocity, :zoom, :drag
|
attr_reader :viewport, :position, :velocity, :zoom, :drag
|
||||||
|
|
||||||
def initialize(viewport:, scroll_speed: 10, position: CyberarmEngine::Vector.new(0.0, 0.0))
|
def initialize(viewport: [0, 0, window.width, window.height], scroll_speed: 10, position: CyberarmEngine::Vector.new(0.0, 0.0))
|
||||||
@viewport = CyberarmEngine::BoundingBox.new(viewport[0], viewport[1], viewport[2], viewport[3])
|
@viewport = CyberarmEngine::BoundingBox.new(viewport[0], viewport[1], viewport[2], viewport[3])
|
||||||
@scroll_speed = scroll_speed
|
@scroll_speed = scroll_speed
|
||||||
@position = position
|
@position = position
|
||||||
@@ -16,10 +18,6 @@ class IMICRTS
|
|||||||
@grab_drag = 0.5 # Used when camera is panned using middle mouse button
|
@grab_drag = 0.5 # Used when camera is panned using middle mouse button
|
||||||
end
|
end
|
||||||
|
|
||||||
def window;
|
|
||||||
$window;
|
|
||||||
end
|
|
||||||
|
|
||||||
def draw(&block)
|
def draw(&block)
|
||||||
if block
|
if block
|
||||||
Gosu.clip_to(@viewport.min.x, @viewport.min.y, @viewport.max.x, @viewport.max.y) do
|
Gosu.clip_to(@viewport.min.x, @viewport.min.y, @viewport.max.x, @viewport.max.y) do
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
class IMICRTS
|
class IMICRTS
|
||||||
class Map
|
class Map
|
||||||
|
include CyberarmEngine::Common
|
||||||
|
|
||||||
attr_reader :tile_size, :tiles, :ores, :spawnpoints, :width, :height, :map_file
|
attr_reader :tile_size, :tiles, :ores, :spawnpoints, :width, :height, :map_file
|
||||||
|
|
||||||
def initialize(map_file:)
|
def initialize(map_file:)
|
||||||
@@ -88,7 +90,7 @@ class IMICRTS
|
|||||||
_tiles = []
|
_tiles = []
|
||||||
visiblity_map = observer.visiblity_map
|
visiblity_map = observer.visiblity_map
|
||||||
|
|
||||||
top_left = (observer.camera.center - observer.camera.position) - CyberarmEngine::Vector.new($window.width / 2, $window.height / 2) / observer.camera.zoom
|
top_left = (observer.camera.center - observer.camera.position) - CyberarmEngine::Vector.new(window.width / 2, window.height / 2) / observer.camera.zoom
|
||||||
top_left /= @tile_size
|
top_left /= @tile_size
|
||||||
|
|
||||||
top_left.x = top_left.x.floor
|
top_left.x = top_left.x.floor
|
||||||
@@ -96,8 +98,8 @@ class IMICRTS
|
|||||||
|
|
||||||
|
|
||||||
# +1 to overdraw a bit to hide pop-in
|
# +1 to overdraw a bit to hide pop-in
|
||||||
_width = ((($window.width / @tile_size) + 2) / observer.camera.zoom).ceil
|
_width = (((window.width / @tile_size) + 2) / observer.camera.zoom).ceil
|
||||||
_height = ((($window.height / @tile_size) + 2) / observer.camera.zoom).ceil
|
_height = (((window.height / @tile_size) + 2) / observer.camera.zoom).ceil
|
||||||
|
|
||||||
_height.times do |y|
|
_height.times do |y|
|
||||||
_width.times do |x|
|
_width.times do |x|
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ class IMICRTS
|
|||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
@position -= (@direction * @speed) * $window.dt
|
@position -= (@direction * @speed) * CyberarmEngine::Window.dt
|
||||||
end
|
end
|
||||||
|
|
||||||
def die?
|
def die?
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ class IMICRTS
|
|||||||
|
|
||||||
@entities = []
|
@entities = []
|
||||||
@orders = []
|
@orders = []
|
||||||
@camera = Camera.new(viewport: [0, 0, $window.width, $window.height])
|
@camera = Camera.new
|
||||||
@last_camera_position = @camera.position.clone
|
@last_camera_position = @camera.position.clone
|
||||||
@camera_moved = true
|
@camera_moved = true
|
||||||
@camera_move_threshold = 5
|
@camera_move_threshold = 5
|
||||||
@@ -27,7 +27,10 @@ class IMICRTS
|
|||||||
@camera_moved = (@last_camera_position - @camera.position.clone).sum > @camera_move_threshold
|
@camera_moved = (@last_camera_position - @camera.position.clone).sum > @camera_move_threshold
|
||||||
@last_camera_position = @camera.position.clone
|
@last_camera_position = @camera.position.clone
|
||||||
|
|
||||||
@entities.each { |ent| ent.tick(tick_id); @visiblity_map.update(ent) }
|
@entities.each do |ent|
|
||||||
|
ent.tick(tick_id)
|
||||||
|
@visiblity_map.update(ent)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
|
|||||||
Reference in New Issue
Block a user