List of events supported by POOL
• Mouse move
to onmousemove :mousepos :buttons
Mouse has moved.
:mousepos - the new position of the mouse;
:buttons - code of the pressed buttons: 1 - left, 2 - middle, 4 - right; code is a logical sum
of flags of individual buttons if many buttons are pressed simultaneously.
• Mouse button pressed
to onmousedown :mousepos :button
Mouse button was pressed.
:mousepos - position of the mouse;
:button - code of the pressed button: 1 - left, 2 - middle, 4 - right.
• Mouse button released
to onmouseup :mousepos :button
Mouse button was released.
:mousepos - position of the mouse;
:button - code of the released button: 1 - left, 2 - middle, 4 - right.
• Mouse click
to onmouseclick :mousepos :button
Mouse button was pressed and released shortly.
:mousepos - position of the mouse;
:button - code of the used button: 1 - left, 2 - middle, 4 - right.
• Mouse double-click
to onmousedblclick :mousepos :button
Mouse button was pressed and released shortly twice.
:mousepos - position of the mouse;
:button - code of the used button: 1 - left, 2 - middle, 4 - right.
• Turtle was clicked with the mouse
to onturtleclicked :mousepos :button
Mouse button was pressed over a turtle (in a distance less than radius
from the position of a turtle).
:mousepos - position of the mouse;
:button - code of the used button: 1 - left, 2 - middle, 4 - right.
• Key pressed
to onkeydown :code :key :modifiers
Keyboard key was pressed.
:code - key code (a number);
:key - key name (a word);
:modifiers - code of a modifier key: 1 - Shift, 2 - Alt, 4 - Control, code is a logical sum
of flags of individual buttons if many buttons are pressed simultaneously.
• Key released
to onkeyup :code :key :modifiers
Keyboard key was released.
:code - key code (a number);
:key - key name (a word);
:modifiers - code of a modifier key: 1 - Shift, 2 - Alt, 4 - Control, code is a logical sum
of flags of individual buttons if many buttons are pressed simultaneously.
• Collision of two turtles
to onturtlecollided :turtle :vdir :dist
Two turtles were closer than the sum of their radius values.
Collision event automatically raises the interaction event (oninteraction) - first on the turtle which was hit
(:turtle), and thein on the turtle which is executing onturtlecollided function. Function
onturtlecollided has to return a numerical value, which will be passed to the function oninteraction
in the argument :mag (for example, this value can have a meaning of energy transferred in the collision).
:turtle - a turtle which was hit in the collision;
:vdir - unit vector of the direction to the turtle which was hit;
:dist - distance between turtles.
• Interaction with another turtle
to oninteraction :vdir :mag :drest :turtle
Turtle was interacting with another turtle.
:vdir - unit vector of the interaction "force" direction;
:mag - value passed in the interaction;
:drest - remaining distance to do if the interaction happened before the turtle has finished its
step or position changing instructions;
:turtle - another turtle which takes part in the interaction.
• Collision with the graphics window edge
to onwallcollided :vdir :drest :wall
Turtle was closer to the edge than its radius value.
Implementation of this function replaces the default function of the bounce
mode.
:vdir - unit vector of the direction to the edge;
:drest - remaining distance to do if the collision happened before the turtle has finished its
step or position changing instructions;
:wall - edge code: 1 - left, 2 - right, 3 - top, 4 - bottom.
• Change of the position of the edge of the graphics window
to onworldchanged :walls
Coordinate of the edge(s) has changed, e.g. window size has changed or drawing scale or center were
changed.
:walls - array of coordinates of the window edges: {left right top bottom}.
See also:
Event and signal handling functions
Table of Content