summaryrefslogtreecommitdiffhomepage
path: root/run.rb
diff options
context:
space:
mode:
Diffstat (limited to 'run.rb')
-rw-r--r--run.rb89
1 files changed, 51 insertions, 38 deletions
diff --git a/run.rb b/run.rb
index 3899c83..5197978 100644
--- a/run.rb
+++ b/run.rb
@@ -28,11 +28,13 @@ Window.set(icon: './assets/blobcoolthink.png',
'assets/blobshadow.png',
width: 52,
height: 10,
- z: 1
+ z: 4
)
Camera << @shadow
@player.play animation: :walk, loop: true
Camera << @player
+
+# UI
Rectangle.new(
width: 350,
height: 135,
@@ -88,8 +90,8 @@ Rectangle.new(
@speed = 5
# Initializing
-player_movement_x = 0
-player_movement_y = 0
+@player_movement_x = 0
+@player_movement_y = 0
@pressed_space = false
@scene_transition_into = false
@scene_transition_out = false
@@ -99,62 +101,68 @@ player_movement_y = 0
on :key do |event|
if event.key == 'w'
- player_movement_y -= @speed unless @scene_transition_into || @scene_transition_out
+ @player_movement_y -= @speed unless @scene_transition_into || @scene_transition_out
end
if event.key == 's'
- player_movement_y += @speed unless @scene_transition_into || @scene_transition_out
+ @player_movement_y += @speed unless @scene_transition_into || @scene_transition_out
end
if event.key == 'd'
- player_movement_x += @speed unless @scene_transition_into || @scene_transition_out
+ @player_movement_x += @speed unless @scene_transition_into || @scene_transition_out
end
if event.key == 'a'
- player_movement_x -= @speed unless @scene_transition_into || @scene_transition_out
+ @player_movement_x -= @speed unless @scene_transition_into || @scene_transition_out
end
if event.key == 'space'
@pressed_space = true unless @scene_transition_into || @scene_transition_out
end
if event.key == 'q'
- Camera.angle += 1
+ Camera.angle += 1 unless @scene_transition_into || @scene_transition_out
end
if event.key == 'e'
- Camera.angle -= 1
- end
- if event.key == 'z'
- Camera.zoom *= 1.015
- end
- if event.key == 'x'
- Camera.zoom *= 0.985
+ Camera.angle -= 1 unless @scene_transition_into || @scene_transition_out
+ end
+ if event.key == 'r'
+ unless @scene_transition_into || @scene_transition_out || Camera.angle.zero?
+ if Camera.angle <= 180
+ if Camera.angle > 10
+ Camera.angle -= 10
+ else
+ Camera.angle -=1
+ end
+ elsif
+ if Camera.angle < 350
+ Camera.angle += 10
+ else
+ Camera.angle += 1
+ end
+ end
+ end
end
end
-=begin
-Camera << Text.new('rotate me to see how if it works',
- x: 500,
- y: 500,
- z: 99)
-=end
+
update do
- if (@player.x > 2371 && player_movement_x.positive?) || (@player.x.negative? && player_movement_x.negative?)
- player_movement_x = 0
+ if (@player.x > 2371 && @player_movement_x.positive?) || (@player.x.negative? && @player_movement_x.negative?)
+ @player_movement_x = 0
end
- if (@player.y > 1608 && player_movement_y.positive?) || (@player.y.negative? && player_movement_y.negative?)
- player_movement_y = 0
+ if (@player.y > 1608 && @player_movement_y.positive?) || (@player.y.negative? && @player_movement_y.negative?)
+ @player_movement_y = 0
end
- if !player_movement_y.zero? == !player_movement_x.zero?
- player_movement_x /= 1.4141
- player_movement_y /= 1.4141
+ if !@player_movement_y.zero? == !@player_movement_x.zero?
+ @player_movement_x /= 1.4141
+ @player_movement_y /= 1.4141
end
- @player.x += player_movement_x
- @player.y += player_movement_y
- if player_movement_x.negative?
+ @player.x += @player_movement_x
+ @player.y += @player_movement_y
+ if @player_movement_x.negative?
@player.play animation: :walk, loop: true
- elsif player_movement_x.positive? || !player_movement_y.zero?
+ elsif @player_movement_x.positive? || !@player_movement_y.zero?
@player.play animation: :walk, loop: true, flip: :vertical
else
@player.play animation: :stand
end
if !@scene_transition_into && !@scene_transition_out
- Camera.zoom = (-[Math.sqrt(((@player.x + (@player.width / 2) - Camera.x)**2) + ((@player.y + (@player.width / 2) - Camera.y)**2)), 350].min * 0.004) + 2
+ Camera.zoom += ((-[Math.sqrt(((@player.x + (@player.width / 2) - Camera.x)**2) + ((@player.y + (@player.width / 2) - Camera.y)**2)), 350].min * 0.004) + 2 - Camera.zoom) * 0.25
Camera.x += (@player.x + (@player.width / 2) - Camera.x) * 0.025
Camera.y += (@player.y + (@player.height / 2)- Camera.y) * 0.025
elsif @scene_transition_into
@@ -180,7 +188,7 @@ update do
Camera.x += (@player.x + (@player.width / 2) - Camera.x) * 0.25
Camera.y += (@player.y + (@player.height / 2) - Camera.y) * 0.25
elsif @scene_transition_out
- if !(Camera.zoom <= 2.1 && Camera.angle.zero?)
+ if !((Camera.zoom <= (@zoom_transition * 1.001)) && (Camera.angle == @angle_transition))
Camera.zoom /= 1.05
Camera.angle -= 5
else
@@ -217,17 +225,22 @@ update do
else
@house_text = @house.visted_by?(@player)
end
- Camera << @house_text unless @house_text.nil?
- if !@house_text.nil? && @pressed_space
+ unless @house_text.nil?
+ Camera << @house_text
+ @house_text.center = true
+ end
+ if !@house_text.nil? && @pressed_space && !@scene_transition_into && !@scene_transition_out
@scene_transition_into = true
+ @angle_transition = Camera.angle
+ @zoom_transition = Camera.zoom
end
@ui_pos_cam.text = "Camera Position: #{Camera.x.round(1)}, #{Camera.y.round(1)}"
@ui_pos_ply.text = "Player Position: #{@player.x.round(1)}, #{@player.y.round(1)}"
@ui_zoom.text = "Zoom: #{Camera.zoom.round(3)}"
@ui_fps.text = "FPS: #{Window.fps.round(2)}"
@ui_rotation.text = "Angle: #{Camera.angle}"
- player_movement_x = 0
- player_movement_y = 0
+ @player_movement_x = 0
+ @player_movement_y = 0
@pressed_space = false
Camera.redraw