mirror of
https://github.com/cyberarm/i-mic-fps.git
synced 2025-12-16 08:02:36 +00:00
Storm Sync
This commit is contained in:
@@ -2,19 +2,31 @@ class IMICFPS
|
||||
class HUD
|
||||
class Widget
|
||||
include CommonMethods
|
||||
attr_reader :options
|
||||
|
||||
# Widget margin from screen edge
|
||||
# or how much widget is pushed in
|
||||
def self.margin
|
||||
@@margin ||= 10
|
||||
end
|
||||
|
||||
def self.padding=(n)
|
||||
@@padding = n
|
||||
end
|
||||
|
||||
# Widget element padding
|
||||
def self.padding
|
||||
@@margin ||= 10
|
||||
end
|
||||
|
||||
def self.padding=(n)
|
||||
@@padding = n
|
||||
end
|
||||
|
||||
attr_reader :options
|
||||
def initialize(options = {})
|
||||
@options = options
|
||||
@player = options[:player]
|
||||
|
||||
# Widget margin from screen edge
|
||||
# or how much widget is pushed in
|
||||
@margin = 10
|
||||
|
||||
# Widget element padding
|
||||
@padding = 10
|
||||
|
||||
setup
|
||||
end
|
||||
|
||||
|
||||
@@ -8,8 +8,8 @@ class IMICFPS
|
||||
|
||||
def draw
|
||||
Gosu.draw_rect(
|
||||
@text.x - @padding, @text.y - @padding,
|
||||
@text.width + @padding * 2, @text.height + @padding * 2,
|
||||
@text.x - Widget.padding, @text.y - Widget.padding,
|
||||
@text.width + Widget.padding * 2, @text.height + Widget.padding * 2,
|
||||
@background
|
||||
)
|
||||
@text.draw
|
||||
@@ -21,8 +21,8 @@ class IMICFPS
|
||||
@text.text = "#{random}/999"
|
||||
end
|
||||
|
||||
@text.x = window.width - (@margin + @text.width + @padding)
|
||||
@text.y = window.height - (@margin + @text.height + @padding)
|
||||
@text.x = window.width - (Widget.margin + @text.width + Widget.padding)
|
||||
@text.y = window.height - (Widget.margin + @text.height + Widget.padding)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -7,7 +7,7 @@ class IMICFPS
|
||||
@text = CyberarmEngine::Text.new(
|
||||
"",
|
||||
size: 16,
|
||||
x: @margin, y: @margin, z: 45,
|
||||
x: Widget.margin, y: Widget.margin, z: 45,
|
||||
shadow_size: 0.5,
|
||||
shadow_alpha: 0,
|
||||
shadow_color: Gosu::Color::WHITE,
|
||||
|
||||
@@ -17,10 +17,10 @@ class IMICFPS
|
||||
def draw
|
||||
@text.draw
|
||||
fill_quad(
|
||||
window.width / 2 - @width / 2, @spacer + @margin, # TOP LEFT
|
||||
window.width / 2 + @width / 2, @spacer + @margin, # TOP RIGHT
|
||||
window.width / 2 + @width / 2 - @slant, @spacer + @margin + @height, # BOTTOM RIGHT
|
||||
window.width / 2 - @width / 2 + @slant, @spacer + @margin + @height, # BOTTOM LEFT
|
||||
window.width / 2 - @width / 2, @spacer + Widget.margin, # TOP LEFT
|
||||
window.width / 2 + @width / 2, @spacer + Widget.margin, # TOP RIGHT
|
||||
window.width / 2 + @width / 2 - @slant, @spacer + Widget.margin + @height, # BOTTOM RIGHT
|
||||
window.width / 2 - @width / 2 + @slant, @spacer + Widget.margin + @height, # BOTTOM LEFT
|
||||
@color
|
||||
)
|
||||
|
||||
@@ -31,10 +31,10 @@ class IMICFPS
|
||||
|
||||
# Current Health
|
||||
fill_quad(
|
||||
window.width / 2 - @width / 2, @spacer + @margin, # TOP LEFT
|
||||
(window.width / 2 - @width / 2) + @width * @health, @spacer + @margin, # TOP RIGHT
|
||||
bottom_right, @spacer + @margin + @height, # BOTTOM RIGHT
|
||||
window.width / 2 - @width / 2 + @slant, @spacer + @margin + @height, # BOTTOM LEFT
|
||||
window.width / 2 - @width / 2, @spacer + Widget.margin, # TOP LEFT
|
||||
(window.width / 2 - @width / 2) + @width * @health, @spacer + Widget.margin, # TOP RIGHT
|
||||
bottom_right, @spacer + Widget.margin + @height, # BOTTOM RIGHT
|
||||
window.width / 2 - @width / 2 + @slant, @spacer + Widget.margin + @height, # BOTTOM LEFT
|
||||
@shield
|
||||
)
|
||||
end
|
||||
@@ -43,7 +43,7 @@ class IMICFPS
|
||||
percentage = "#{(@health * 100).round}".rjust(3, "0")
|
||||
@text.text = "[Health #{percentage}%]"
|
||||
@text.x = window.width / 2 - @text.width / 2
|
||||
@text.y = @spacer + @margin + @height / 2 - @text.height / 2
|
||||
@text.y = @spacer + Widget.margin + @height / 2 - @text.height / 2
|
||||
|
||||
@health += 0.1 * window.dt
|
||||
@health = 0 if @health > 1.0
|
||||
|
||||
@@ -8,31 +8,31 @@ class IMICFPS
|
||||
|
||||
@text = Text.new("RADAR", size: 18, mode: :add, font: MONOSPACE_FONT)
|
||||
@image = Gosu::Image.new("#{CYBERARM_ENGINE_ROOT_PATH}/assets/textures/default.png", retro: true)
|
||||
@scale = (@size - @padding * 2.0) / @image.width
|
||||
@scale = (@size - Widget.padding * 2.0) / @image.width
|
||||
end
|
||||
|
||||
def draw
|
||||
Gosu.draw_rect(
|
||||
@margin, window.height - (@size + @margin),
|
||||
Widget.margin, window.height - (@size + Widget.margin),
|
||||
@size, @size,
|
||||
@border_color
|
||||
)
|
||||
|
||||
Gosu.draw_rect(
|
||||
@margin + @padding, window.height - (@size + @margin) + @padding,
|
||||
@size - @padding * 2, @size - @padding * 2,
|
||||
Widget.margin + Widget.padding, window.height - (@size + Widget.margin) + Widget.padding,
|
||||
@size - Widget.padding * 2, @size - Widget.padding * 2,
|
||||
@radar_color
|
||||
)
|
||||
|
||||
@image.draw(@margin + @padding, window.height - (@size + @margin) + @padding, 46, @scale, @scale, 0x88ffffff)
|
||||
|
||||
@image.draw(Widget.margin + Widget.padding, window.height - (@size + Widget.margin) + Widget.padding, 46, @scale, @scale, 0x88ffffff)
|
||||
|
||||
@text.draw
|
||||
end
|
||||
|
||||
def update
|
||||
@text.text = "RADAR: X #{@player.position.x.round(1)} Y #{@player.position.y.round(1)} Z #{@player.position.z.round(1)}"
|
||||
@text.x = @margin + @size / 2 - @text.width / 2
|
||||
@text.y = window.height - (@margin + @size + @text.height)
|
||||
@text.x = Widget.margin + @size / 2 - @text.width / 2
|
||||
@text.y = window.height - (Widget.margin + @size + @text.height)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -7,7 +7,7 @@ class IMICFPS
|
||||
@text = CyberarmEngine::Text.new(
|
||||
"",
|
||||
size: 16,
|
||||
x: @margin, y: @margin, z: 45,
|
||||
x: Widget.margin, y: Widget.margin, z: 45,
|
||||
shadow: true,
|
||||
shadow_size: 0.5,
|
||||
shadow_alpha: 30,
|
||||
@@ -24,7 +24,7 @@ class IMICFPS
|
||||
end
|
||||
|
||||
def update
|
||||
@text.x = window.width - (@text.width + @margin)
|
||||
@text.x = window.width - (@text.width + Widget.margin)
|
||||
end
|
||||
|
||||
def generate_random_data
|
||||
|
||||
@@ -13,8 +13,8 @@ class IMICFPS
|
||||
end
|
||||
|
||||
def update
|
||||
@text.x = @margin + @size + @padding
|
||||
@text.y = window.height - (@margin + @text.height)
|
||||
@text.x = Widget.margin + @size + Widget.padding
|
||||
@text.y = window.height - (Widget.margin + @text.height)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user