NAME
Tk::Taxis::Critter - Perl extension for simulating critters
SYNOPSIS
use Tk::Taxis::Critter;
my $critter = Tk::Taxis::Critter->new( -taxis => $taxis );
$critter->randomise();
$critter->move();
ABSTRACT
Simulates critters in a taxis object
DESCRIPTION
This module is used by the Tk:::Taxis class to implement the critter objects in the taxis simulation. Classes using it require the same interface as Tk::Taxis to work, namely one supporting width, height, image_width, image_height, tumble, preference, calculation and speed methods.
METHODS
new( -taxis => $taxis )Generates a new
Tk::Taxis::Critterobject. Must be passed the-taxisoption and object. This object should be aTk::Taxisobject or one implementing the methodswidth,height,image_width,image_height,tumble,preference,speedandcalculation. The module willcroakunless it receives this object in its constructor's arguments.randomiseRandomises the positions of the critters.
moveMoves each critter through one cycle of run-and-tumble.
get_posandset_posGets the position of the critter. Returns a two item list of x, y coordinates.
set_possets the critters x, y coordinates, and expects a two item list.get_orientandset_orientGets the orientation of the critter: returns a string: either 'n', 'ne', 'e', 'se', 's', 'sw', 'w', or 'nw'. The
set_orientmethod is called with no argument: the orientation will be set automatically from internal data.get_idandset_idGets or sets the canvas ID of the critter. Returns this integer.
get_boundriesGets a hash of numbers describing the area in which the critters may move. The keys are
min_x,max_x,min_y,max_y,widthandheight. The width and height are the physical dimensions of the taxis canvas (as specified by the object passed to the constructor), the min and max values take into account the size of the critters' images:min_xwill be 5px if the critter images are 10px wide, since objects cannot be squashed any closer to the edges of the canvas than this.
SEE ALSO
AUTHOR
Steve Cook, <steve@steve.gb.com>
COPYRIGHT AND LICENSE
Copyright 2005 by Steve Cook
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.