adding menu with sliders
parent
e7b6352e7a
commit
81556a1a19
53
app/main.rb
53
app/main.rb
|
@ -1,7 +1,14 @@
|
||||||
require "app/bounce.rb"
|
require "app/bounce.rb"
|
||||||
|
|
||||||
BOUNCE_ACCL = 1.02
|
BOUNCE_ACCL = 1.02
|
||||||
GRAVITY = 0.9
|
GRAVITY = 0.5
|
||||||
|
|
||||||
|
MIN_GRAVITY = 0.1
|
||||||
|
MAX_GRAVITY = 2.0
|
||||||
|
|
||||||
|
MIN_BOUNCE = 1.0
|
||||||
|
MAX_BOUNCE = 1.1
|
||||||
|
|
||||||
CX = 636
|
CX = 636
|
||||||
CY = 399
|
CY = 399
|
||||||
CR = 205
|
CR = 205
|
||||||
|
@ -13,8 +20,8 @@ def tick args
|
||||||
cy = CY
|
cy = CY
|
||||||
cr = CR
|
cr = CR
|
||||||
# pause
|
# pause
|
||||||
args.state.paused = false if args.state.paused.nil?
|
if args.state.paused.nil?
|
||||||
if args.state.ball.nil?
|
args.state.paused = true
|
||||||
args.state.ball = {
|
args.state.ball = {
|
||||||
x: 500,
|
x: 500,
|
||||||
y: 500,
|
y: 500,
|
||||||
|
@ -23,11 +30,24 @@ def tick args
|
||||||
x: 0,
|
x: 0,
|
||||||
y: 0
|
y: 0
|
||||||
}
|
}
|
||||||
|
args.state.bounce = BOUNCE_ACCL
|
||||||
|
args.state.gravity = GRAVITY
|
||||||
end
|
end
|
||||||
|
|
||||||
# INPUT
|
# INPUT
|
||||||
if args.inputs.keyboard.key_up.space
|
if args.inputs.keyboard.key_up.space
|
||||||
args.state.paused = !args.state.paused
|
args.state.paused = !args.state.paused
|
||||||
|
if !args.state.paused
|
||||||
|
#REINIT with inputs
|
||||||
|
args.state.ball = {
|
||||||
|
x: 500+Math.rand(150),
|
||||||
|
y: 400+Math.rand(50),
|
||||||
|
}
|
||||||
|
args.state.ball_vector = {
|
||||||
|
x: 0,
|
||||||
|
y: 0
|
||||||
|
}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# LOOP
|
# LOOP
|
||||||
|
@ -49,6 +69,9 @@ def tick args
|
||||||
new_move_x, new_move_y = reflection_vector(x,y,cx,cy,move_x,move_y)
|
new_move_x, new_move_y = reflection_vector(x,y,cx,cy,move_x,move_y)
|
||||||
args.state.ball_vector[:x] = new_move_x * BOUNCE_ACCL
|
args.state.ball_vector[:x] = new_move_x * BOUNCE_ACCL
|
||||||
args.state.ball_vector[:y] = new_move_y * BOUNCE_ACCL
|
args.state.ball_vector[:y] = new_move_y * BOUNCE_ACCL
|
||||||
|
# play sound
|
||||||
|
sound = Math.rand(3)+1
|
||||||
|
args.outputs.sounds << "sounds/bounce#{sound}.wav"
|
||||||
end
|
end
|
||||||
|
|
||||||
# move the ball
|
# move the ball
|
||||||
|
@ -78,22 +101,42 @@ def tick args
|
||||||
# RENDER
|
# RENDER
|
||||||
#
|
#
|
||||||
# BG
|
# BG
|
||||||
|
bg = args.state.paused ? 'sprites/BG1_menu.png' : 'sprites/BG1.png'
|
||||||
args.outputs.sprites << {
|
args.outputs.sprites << {
|
||||||
x: 0,
|
x: 0,
|
||||||
y: 0,
|
y: 0,
|
||||||
w: 1280,
|
w: 1280,
|
||||||
h: 720,
|
h: 720,
|
||||||
path: 'sprites/BG1.png' }
|
path: bg }
|
||||||
|
|
||||||
if args.state.paused
|
if args.state.paused
|
||||||
|
# Render menu
|
||||||
args.outputs.labels << [640, 40, "Game is paused. Press <space> to continue", 4, 1]
|
args.outputs.labels << [640, 40, "Game is paused. Press <space> to continue", 4, 1]
|
||||||
|
# min_x = 440
|
||||||
|
# mid = 615
|
||||||
|
# max_x = 780
|
||||||
|
args.outputs.sprites << {
|
||||||
|
x: 615,
|
||||||
|
y: 445,
|
||||||
|
w: 32,
|
||||||
|
h: 32,
|
||||||
|
path: 'sprites/slider.png'
|
||||||
|
}
|
||||||
|
args.outputs.sprites << {
|
||||||
|
x: 615,
|
||||||
|
y: 325,
|
||||||
|
w: 32,
|
||||||
|
h: 32,
|
||||||
|
path: 'sprites/slider.png'
|
||||||
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
# BALL
|
# BALL
|
||||||
|
|
||||||
args.outputs.sprites << {
|
args.outputs.sprites << {
|
||||||
x: args.state.ball[:x]-16,
|
x: args.state.ball[:x]-16,
|
||||||
y: args.state.ball[:y]-16,
|
y: args.state.ball[:y]-16,
|
||||||
w: 32,
|
w: 32,
|
||||||
h: 32,
|
h: 32,
|
||||||
path: 'sprites/ball.png' }
|
path: 'sprites/ball.png' } if !args.state.paused
|
||||||
end
|
end
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 1.3 MiB |
Binary file not shown.
After Width: | Height: | Size: 3.9 KiB |
Binary file not shown.
After Width: | Height: | Size: 155 KiB |
Loading…
Reference in New Issue