Nice! Although, I will say I like Chipmunk as a physics engine to do
collision detection. It has full ruby support.

On Fri, Jul 17, 2009 at 5:27 PM, Samuel Peterson<[email protected]> wrote:
> Personally, I've always adored the hittest() function in actionscript 2.0
> and I decided to make a simple implementation of it in ruby shoes. This is a
> simple rough draft of my hittest function in action. It's the most basic of
> collision detection. This should be able to get many of the people that like
> programming games headed in the right direction.
> Shoes.app(:width => 400, :height => 400, :resizable => false, :scroll =>
> false){
> background "#000000"
> def hittest(obj1, obj2)
> # We're pretending that obj2 is static
> lowlft = obj2.left - obj1.width
> higlft = obj2.left + obj2.width
> lowtop = obj2.top - obj1.height
> higtop = obj2.top + obj2.height
> if obj1.left > lowlft and obj1.left < higlft and obj1.top > lowtop and
> obj1.top < higtop then
> return true
> else
> return false
> end
> end
>
> para strong("The greyish circle will follow your mouse and when the greyish
> circle hits the black circle, the text will change to Hitting!"), :stroke =>
> "#FFFFFF", :size => 10, :top => 0, :left => 10
> hitting = para "Not Hitting!", :stroke => "#FFFFFF", :size => 8, :top =>
> 400-30, :left => 10
> m_chords = para "Mouse Coordinates!", :stroke => "#FFFFFF", :size => 8, :top
> => 400-20, :left => 10
> circle1 = oval(:left => 100, :top => 100, :radius => 20, :center => true,
> :stroke => "#FFFFFF", :fill => "#000000")
> circle_mouse = oval(:radius => 20, :center => true, :stroke => "#FFFFFF",
> :fill => "#9E9E9E")
> animate(50){
> if hittest(circle_mouse, circle1) == true then
> hitting.text = "Hitting!"
> else
> hitting.text = "Not hitting!"
> end
> circle_mouse.left = mouse[1]
> circle_mouse.top = mouse[2]
> m_chords.text = "Left:" + mouse[1].to_s + " - Top: " + mouse[2].to_s
> }
> }



-- 
    ~devyn

Reply via email to