Sha256: 7d43640f0c6982f2efa87c7fbd0e214795c166795d8e1fbb722dd2ec2b2a913a

Contents?: true

Size: 1.92 KB

Versions: 3

Compression:

Stored size: 1.92 KB

Contents

require 'gosu'
require_relative '../lib/minigl'
include MiniGL

class MyGame < GameWindow
  def initialize
    super 800, 600, false

    @obj = GameObject.new(0, 0, 50, 50, :square)
    # @obj.max_speed.x = 3
    @obsts = [
      Block.new(0, 600, 800, 1, false),
      Block.new(-1, 0, 1, 600, false),
      Block.new(800, 0, 1, 600, false),
      # Block.new(375, 550, 50, 50, true),
      # Block.new(150, 200, 20, 300, false),
      # Block.new(220, 300, 100, 20, true),
      # Block.new(485, 490, 127, 10, false),
    ]
    @ramps = [
      Ramp.new(200, 550, 200, 50, true),
      Ramp.new(0, 200, 150, 300, false),
      Ramp.new(150, 500, 150, 100, false),
      Ramp.new(500, 500, 150, 100, true),
      Ramp.new(650, 300, 150, 200, true),
      # Ramp.new(650, 500, 150, 100, true),
    ]

    @cyc_obj = GameObject.new(0, 0, 50, 50, :square)
    @cycle = [Vector.new(0, 0), Vector.new(430, 107), Vector.new(265, 324)]
  end

  def update
    KB.update

    forces = Vector.new(0, 0)
    if @obj.bottom
      forces.y -= 15 if KB.key_pressed?(Gosu::KbSpace)
      if KB.key_down?(Gosu::KbLeft)
        forces.x -= 0.5
      end
      if KB.key_down?(Gosu::KbRight)
        forces.x += 0.5
      end
      forces.x -= @obj.speed.x * 0.1
    else
      forces.x -= 0.2 if KB.key_down?(Gosu::KbLeft)
      forces.x += 0.2 if KB.key_down?(Gosu::KbRight)
    end
    @obj.move(forces, @obsts, @ramps)
    # puts @obj.x
    @cyc_obj.cycle(@cycle, 5, [@obj])
    # puts @obj.bottom
  end

  def draw
    @obj.draw
    @cyc_obj.draw
    @obsts.each do |o|
      draw_quad o.x, o.y, 0xffffffff,
                o.x + o.w, o.y, 0xffffffff,
                o.x + o.w, o.y + o.h, 0xffffffff,
                o.x, o.y + o.h, 0xffffffff, 0
    end
    @ramps.each do |r|
      draw_triangle r.left ? r.x + r.w : r.x, r.y, 0xffffffff,
                    r.x + r.w, r.y + r.h, 0xffffffff,
                    r.x, r.y + r.h, 0xffffffff, 0
    end
  end
end

MyGame.new.show

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
minigl-2.0.3 test/mov_game.rb
minigl-2.0.2 test/mov_game.rb
minigl-2.0.1 test/mov_game.rb