class SK::CircleCollider

Attributes

friction[RW]
radius[RW]
restitution[RW]
shape[RW]

Public Class Methods

new(radius) click to toggle source
# File lib/shirokuro/standard_components/physics/circle_collider.rb, line 6
def initialize radius
        @radius = radius
        @friction = 0.4
        @restitution = 0.1
end

Public Instance Methods

start() click to toggle source
# File lib/shirokuro/standard_components/physics/circle_collider.rb, line 12
def start
        rigid_body = get_component(RigidBody)
        
        if rigid_body == nil
                raise "RigidBody required for BoxCollider"
        end

        @shape = CP::Shape::Circle.new(rigid_body.body, @radius, CP::Vec2.new(0, 0))
        @shape.u = @friction
        @shape.e = @restitution

        # recalculate inertia
        rigid_body.body.i = CP.moment_for_circle(rigid_body.body.m, @radius, @radius, CP::Vec2.new(0, 0))

        physics.space.add_shape(@shape)
end