Sha256: 8a74a2dfbad2315a949edd970c999457dc838f50a4f34de045627ba6a527c35f

Contents?: true

Size: 1.75 KB

Versions: 4

Compression:

Stored size: 1.75 KB

Contents

require 'helper'

describe "Using gamebox's built in collision handling", acceptance: true do

  define_actor :frickin_laser do
    has_behavior :projectile
    has_behavior collidable: {shape: :polygon, points: [[0,0],[10,7],[20,10]]}
  end

  define_actor :alien do
    has_behavior collidable: {shape: :circle, radius: 10}
  end

  it 'shows that two overlapping objects collide' do
    #scope cheatzys
    laser = nil
    alien = nil
    game.stage do |stage| # instance of TestingStage
      laser = create_actor :frickin_laser, x: 0, y: 0, vel_x: 5, vel_y: 1
      alien = create_actor :alien, x: 0, y: 0
      on_collision_of :frickin_laser, :alien do |collision_laser, collision_alien|
        @collision_laser = collision_laser
        @collision_alien = collision_alien
      end
    end
    see_stage_ivars collision_laser: nil, collision_alien: nil
    update 1
    # TODO not sure about this one..
    update 1
    see_stage_ivars collision_laser: laser, collision_alien: alien
  end

  it 'shows that an object in motion can collide' do
    laser = nil
    alien = nil
    game.stage do |stage| # instance of TestingStage
      laser = create_actor :frickin_laser, x: 0, y: 0, vel_x: 5, vel_y: 0
      alien = create_actor :alien, x: 31, y: 0
      on_collision_of :frickin_laser, :alien do |collision_laser, collision_alien|
        @collision_laser = collision_laser
        @collision_alien = collision_alien
      end
    end
    see_stage_ivars collision_laser: nil, collision_alien: nil
    # now the laser moved and will be checked for collisions _next_ update
    update 1
    # trigger the next round of collision detection
    update 2000
    # TODO not sure about this one..
    update 1
    see_stage_ivars collision_laser: laser, collision_alien: alien
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
gamebox-0.4.0.rc4 spec/acceptance/built_in_collision_handling_spec.rb
gamebox-0.4.0.rc3 spec/acceptance/built_in_collision_handling_spec.rb
gamebox-0.4.0.rc2 spec/acceptance/built_in_collision_handling_spec.rb
gamebox-0.4.0.rc1 spec/acceptance/built_in_collision_handling_spec.rb