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 its taxis simulation. It requires the use of an object with the same interface as Tk::Taxis to work, namely one supporting width, height, image_width and image_height methods.

METHODS

  • new( -taxis = $taxis )>

    Generates a new Critter object. Must be passed the -taxis option and object. This object should be a Tk::Taxis object or one implementing the methods width, height, image_width, image_height, tumble, preference and speed. The module will croak unless it receives this object in its constructor's arguments.

  • randomise

    Randomises the positions of the critters.

  • move

    Moves each critter through one cycle of run-and-tumble.

  • get_pos set_pos

    Gets the position of the critter. Returns a two item list of x, y coordinates). The set_pos sets the critters position, and expects a two item list.

  • get_orient set_orient

    Gets the orientation of the critter: returns a string: either 'n', 'ne', 'e', 'se', 's', 'sw', 'w', or 'nw'. The set_orient method can also be called with no argument: the orientation will be set automatically from internal data.

  • get_id set_id

    Gets or sets the canvas ID of the critter. Returns this integer.

  • get_boundries

    Gets a hash of numbers describing the area in which the critters may move. The keys are min_x, max_x, min_y, max_y, width and height. 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_x will 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

perl

Tk::Taxis

AUTHOR

Steve Cook, <steve@steve.gb.com>

COPYRIGHT AND LICENSE

Copyright 2003 by Steve Cook

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.