Whatdotcolor

From Compsci.ca Wiki

(Difference between revisions)
Jump to: navigation, search
Line 4: Line 4:
Here's a quick example of a few basic graphics functions which uses whatdotcolour to check if the mouse is above a red circle.
Here's a quick example of a few basic graphics functions which uses whatdotcolour to check if the mouse is above a red circle.
-
<code>%%Example of whatdotcolour collision detection
+
<code>
-
%%By: Gandalf
+
    %%Created By: Gandalf
-
setscreen ("graphics,offscreenonly")
+
    %%Example of whatdotcolour collision detection
-
var cx, cy, mx, my, mb : int
+
    setscreen ("graphics,offscreenonly")
-
cx := maxx div 2
+
    var cx, cy, mx, my, mb : int
-
cy := maxy div 2
+
    cx := maxx div 2
-
var circleColour : int := red
+
    cy := maxy div 2
-
loop
+
    var circleColour : int := red
-
    cls
+
    loop
-
    Draw.FillOval (cx, cy, 40, 40, circleColour)
+
        cls
-
    Mouse.Where (mx, my, mb)
+
        Draw.FillOval (cx, cy, 40, 40, circleColour)
-
    %if your mouse is above the circle and you click
+
        Mouse.Where (mx, my, mb)
-
    if whatdotcolour (mx, my) = circleColour and mb > 0 then
+
        if whatdotcolour (mx, my) = circleColour and mb > 0 then
-
        %move the circle to the mouse coordinates
+
            cx := mx  
-
        cx := mx
+
            cy := my
-
        cy := my
+
        end if
-
    end if
+
        View.Update
-
    View.Update
+
    end loop
-
end loop</code>
+
</code>
An alternative of whatdotcolour collision detection in Turing is using Math.Distance.
An alternative of whatdotcolour collision detection in Turing is using Math.Distance.

Revision as of 23:46, 15 December 2005

Also spelled whatdotcolour (Canadian spelling of colour), it is a Turing function which returns the colour of a specific pixel. Often used for collision detection, it is an easy solution when creating something using Turing graphics alone without external images being involved.

It's actually so important that there's a whatdotcolor Warrior mod.

Here's a quick example of a few basic graphics functions which uses whatdotcolour to check if the mouse is above a red circle.

   %%Created By: Gandalf
   %%Example of whatdotcolour collision detection
   setscreen ("graphics,offscreenonly")
   var cx, cy, mx, my, mb : int
   cx := maxx div 2
   cy := maxy div 2
   var circleColour : int := red
   loop
       cls
       Draw.FillOval (cx, cy, 40, 40, circleColour)
       Mouse.Where (mx, my, mb)
       if whatdotcolour (mx, my) = circleColour and mb > 0 then
           cx := mx 
           cy := my
       end if
       View.Update
   end loop

An alternative of whatdotcolour collision detection in Turing is using Math.Distance.

Personal tools