finished menu
							parent
							
								
									81556a1a19
								
							
						
					
					
						commit
						4834ffe34d
					
				
							
								
								
									
										28
									
								
								app/main.rb
								
								
								
								
							
							
						
						
									
										28
									
								
								app/main.rb
								
								
								
								
							| 
						 | 
					@ -5,9 +5,11 @@ GRAVITY = 0.5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MIN_GRAVITY = 0.1
 | 
					MIN_GRAVITY = 0.1
 | 
				
			||||||
MAX_GRAVITY = 2.0
 | 
					MAX_GRAVITY = 2.0
 | 
				
			||||||
 | 
					STEP_GRAVITY = 0.02
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MIN_BOUNCE = 1.0
 | 
					MIN_BOUNCE = 1.0
 | 
				
			||||||
MAX_BOUNCE = 1.1
 | 
					MAX_BOUNCE = 1.1
 | 
				
			||||||
 | 
					STEP_BOUNCE = 0.0011
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CX = 636
 | 
					CX = 636
 | 
				
			||||||
CY = 399
 | 
					CY = 399
 | 
				
			||||||
| 
						 | 
					@ -49,14 +51,25 @@ def tick args
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					  # MENU CONTROLS
 | 
				
			||||||
 | 
					  if args.inputs.right && args.state.paused
 | 
				
			||||||
 | 
					    args.state.gravity += STEP_GRAVITY if args.state.gravity < MAX_GRAVITY
 | 
				
			||||||
 | 
					  elsif args.inputs.left && args.state.paused
 | 
				
			||||||
 | 
					    args.state.gravity -= STEP_GRAVITY if args.state.gravity > MIN_GRAVITY
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if args.inputs.up && args.state.paused
 | 
				
			||||||
 | 
					    args.state.bounce += STEP_BOUNCE if args.state.bounce < MAX_BOUNCE
 | 
				
			||||||
 | 
					  elsif args.inputs.down && args.state.paused
 | 
				
			||||||
 | 
					    args.state.bounce -= STEP_BOUNCE if args.state.bounce > MIN_BOUNCE
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
  # LOOP
 | 
					  # LOOP
 | 
				
			||||||
  if !args.state.paused
 | 
					  if !args.state.paused
 | 
				
			||||||
    #ball vector
 | 
					    #ball vector
 | 
				
			||||||
    move_x = args.state.ball_vector[:x]
 | 
					    move_x = args.state.ball_vector[:x]
 | 
				
			||||||
    move_y = args.state.ball_vector[:y]
 | 
					    move_y = args.state.ball_vector[:y]
 | 
				
			||||||
    # apply gravity
 | 
					    # apply gravity
 | 
				
			||||||
    move_y = move_y - GRAVITY
 | 
					    move_y = move_y - args.state.gravity
 | 
				
			||||||
    args.state.ball_vector[:x] = move_x
 | 
					    args.state.ball_vector[:x] = move_x
 | 
				
			||||||
    args.state.ball_vector[:y] = move_y
 | 
					    args.state.ball_vector[:y] = move_y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -67,8 +80,8 @@ def tick args
 | 
				
			||||||
    new_y = y + move_y
 | 
					    new_y = y + move_y
 | 
				
			||||||
    if bouncing?(new_x,new_y,cx,cy,cr)
 | 
					    if bouncing?(new_x,new_y,cx,cy,cr)
 | 
				
			||||||
      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 * args.state.bounce
 | 
				
			||||||
      args.state.ball_vector[:y] = new_move_y * BOUNCE_ACCL
 | 
					      args.state.ball_vector[:y] = new_move_y * args.state.bounce
 | 
				
			||||||
      # play sound
 | 
					      # play sound
 | 
				
			||||||
      sound = Math.rand(3)+1
 | 
					      sound = Math.rand(3)+1
 | 
				
			||||||
      args.outputs.sounds << "sounds/bounce#{sound}.wav"
 | 
					      args.outputs.sounds << "sounds/bounce#{sound}.wav"
 | 
				
			||||||
| 
						 | 
					@ -111,19 +124,22 @@ def tick args
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if  args.state.paused
 | 
					  if  args.state.paused
 | 
				
			||||||
    # Render menu
 | 
					    # Render menu
 | 
				
			||||||
    args.outputs.labels  << [640, 40, "Game is paused. Press <space> to continue", 4, 1]
 | 
					    args.outputs.labels  << [640, 40, "Press <space> to start the game", 6, 1]
 | 
				
			||||||
    # min_x = 440
 | 
					    # min_x = 440
 | 
				
			||||||
    # mid = 615
 | 
					    # mid = 615
 | 
				
			||||||
    # max_x = 780
 | 
					    # max_x = 780
 | 
				
			||||||
 | 
					    # l = 340
 | 
				
			||||||
 | 
					    gravity_x = 440 + args.state.gravity * 179
 | 
				
			||||||
    args.outputs.sprites << {
 | 
					    args.outputs.sprites << {
 | 
				
			||||||
      x: 615,
 | 
					      x: gravity_x,
 | 
				
			||||||
      y: 445,
 | 
					      y: 445,
 | 
				
			||||||
      w: 32,
 | 
					      w: 32,
 | 
				
			||||||
      h: 32,
 | 
					      h: 32,
 | 
				
			||||||
      path: 'sprites/slider.png'
 | 
					      path: 'sprites/slider.png'
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    bounce_x = 440 + (args.state.bounce - 1)*3400
 | 
				
			||||||
    args.outputs.sprites << {
 | 
					    args.outputs.sprites << {
 | 
				
			||||||
      x: 615,
 | 
					      x: bounce_x,
 | 
				
			||||||
      y: 325,
 | 
					      y: 325,
 | 
				
			||||||
      w: 32,
 | 
					      w: 32,
 | 
				
			||||||
      h: 32,
 | 
					      h: 32,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.3 MiB  | 
		Loading…
	
		Reference in New Issue