Whatdotcolor

From Compsci.ca Wiki

(Difference between revisions)
Jump to: navigation, search
Line 5: Line 5:
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>%%Example of whatdotcolour collision detection
 +
%%By: Gandalf
%%By: Gandalf
 +
setscreen ("graphics,offscreenonly")
setscreen ("graphics,offscreenonly")
 +
var cx, cy, mx, my, mb : int
var cx, cy, mx, my, mb : int
 +
cx := maxx div 2
cx := maxx div 2
 +
cy := maxy div 2
cy := maxy div 2
 +
var circleColour : int := red
var circleColour : int := red
 +
loop
loop
 +
     cls
     cls
 +
     Draw.FillOval (cx, cy, 40, 40, circleColour)
     Draw.FillOval (cx, cy, 40, 40, circleColour)
 +
     Mouse.Where (mx, my, mb)
     Mouse.Where (mx, my, mb)
 +
     %if your mouse is above the circle and you click
     %if your mouse is above the circle and you click
 +
     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
         %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</code>
end loop</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:45, 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. %%Example of whatdotcolour collision detection

%%By: Gandalf

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 your mouse is above the circle and you click
   if whatdotcolour (mx, my) = circleColour and mb > 0 then
       %move the circle to the mouse coordinates
       cx := mx
       cy := my
   end if


   View.Update

end loop

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

Personal tools