b0VIM 7.0+4ZGy M nicknick-laptop~nick/Projects/perlman/perlman 3210#"! Utp xhyevauefbadxzyma`OF8&dWI;,  Z 5  } Z < 9 8 ! W  N  3 oR;$ u^G,D }KCB1HEeD$ 14, 92, 1, 1, 0, 1, # 1 114, 92, 1, 1, 1, 1, # 1, 3 172, 92, 0, 1, 1, 1, # 3, 17 230, 92, 1, 0, 1, 1, # 17, 5 232, 16, 0, 1, 1, 0, # 5 114, 14, 0, 1, 1, 1, # 2 14, 16, 0, 1, 0, 1, # 0my @intersections = (#### ( 498, 552, 1, 0, 1, 0 )#### corner of the screen, you can go up and left: ## directions are available, up, down, left, right. Example, the lower right## The format of this is the upper left corner coordinate, (x, y) and which#### is chasing pacman. ## it reaches an intersection, unless the ghost has a high agression level and## to determine which way to move. So a ghost will move in one direction until## When they hit an intersection they will be given which directions they can go## These intersections are for a method I am trying out with the ghosts## intersections ); { x => 298, y => 265, color => 'orange' }, { x => 222, y => 265, color => 'cyan' }, { x => 260, y => 265, color => 'pink' },my @ghostStart = ( { x => 260, y => 207, color => 'red' }, 'apple', 'pear', 'banana' );my @levelFruits = ( 'cherry', 'strawberry', 'orange', 'pretzel', my %ghostAggressions = ( 'red' => 90, 'cyan' => 70, 'pink' => 50, 'orange' => 30 );my @ghostColors = ( 'red', 'cyan', 'pink', 'orange' ); # in order of agressionmy %ghosts; # ghost datamy $eattenPellets = 0;my $baseSpeed = 0.3;my $fullscreen = 0;my $directionNext = 0;my $directionOld = $direction;my $direction = $LEFT;my $perlManAnim = 0;my $perlManAnimSpeed = 7;my $perlManSpeed = 0;my $ghostSpeed = 1;my $revdFreeLife = 0;my $freeLife = $FREE_LIFE;my $players = 0;my $lives = 0;my $highScore = 0;my $score = 0;my $redraw_all = 0;my $gameOver = 0;my $playing = 0; #0 Are we playing the game? default to '0' till game startsmy $level = 0; # keep track of the level, we default to '0' till the game beginsmy $pelletOffsetY = 0;my $pelletOffsetX = 13;my $boardOffsetY = 0;my $boardOffsetX = 5;## End of debug varsmy $drawGrid = 1; # draw path gridmy $drawIntersections = 1; # draw intersectionsmy $drawWarpGates = 1; # draw the actual gates that warp pacmanmy $drawWarps = 1; # draw warp collision rectanglesmy $collisionDebugOn = 1; # Collision data is printed to STDOUTmy $numOnly = 1; # this will draw ONLY the number labels and no grey rectanglesmy $labelRects = 1; # this numerically labels each onemy $drawPoints = 1; # this will draw the collision rectanglesmy $DEBUG = 1; # This will turn off ALL debugging, including the variables below## Debugging variables); -size => 1024 -channels => 2, -frequency => 44100,my $mixer = new SDL::Mixer(); -flags => SDL_DOUBLEBUF | SDL_HWSURFACE | SDL_HWACCEL, -depth => 32, -height => 600, -width => 800, -title => 'PerlMan',my $app = new SDL::App(my $CHASE = 1;my $PATROL = 0;my $UP_RIGHT = 8;my $DOWN_RIGHT = 7;my $DOWN_LEFT = 6;my $UP_LEFT = 5;my $RIGHT = 4;my $LEFT = 3;my $DOWN = 2;my $UP = 1;my $FREE_LIFE = 200; #should be 10000my $LIVES = 3;## Some 'static' variable declarationsuse SDL::OpenGL;use SDL::TTFont;use SDL::Sound;use SDL::Mixer;use SDL::Event;use SDL::Cursor;use SDL::Surface;use SDL::App;use SDL;## SDL Librariesuse Switch;use strict;=cut=end comment info Version : $Id: .perlman.swn,v 1.1.1.1 2009/03/28 03:35:34 nick Exp $ PerlMan -- PacMan clone written using the Perl::SDL=begin comment info#!/usr/bin/perl -wadfyvbL4!~KHFEDC#  w i e d G +  y ] N ? 0   r H     l P 4  ~ p b ^ ] @ 0  } $app->fill ( $rect, $color ); ); -y => $y + $boardOffsetY, -x => $x + $boardOffsetX, -width => 1, -height => 1, my $rect = SDL::Rect->new ( ); -b => 0x00, -g => 0x00, -r => 0xff, my $color = SDL::Color->new ( my ( $x, $y ) = @_;sub drawPixel {} $app->fill ( $rect, $color ); ); -y => $y1 + $boardOffsetY, -x => $x1 + $boardOffsetX, -width => ( $x2 - $x1 ), -height => ( $y2 - $y1 ), my $rect = SDL::Rect->new ( ); -b => 0x00, -g => 0xff, -r => 0x00, my $color = SDL::Color->new ( my ( $x1, $y1, $x2, $y2, $num ) = @_;sub drawRectI {} } $font->print ( $app, $rect->x, $rect->y, $num ); -bg=>$color, -fg=>$fontColor ); my $font = new SDL::TTFont ( -name=>"./fonts/CourierNew-Bold.ttf", -size=>10, ); -b => 0x00, -g => 0x00, -r => 0xff, my $fontColor = new SDL::Color ( ) if ( $numOnly ); -b => 0x00, -g => 0x00, -r => 0x00, $color = new SDL::Color ( $num /= 4; if ( $labelRects ) { $app->fill ( $rect, $color ) if ( ! $numOnly ); ); -y => $y1 + $boardOffsetY, -x => $x1 + $boardOffsetX, -width => ( $x2 - $x1 ), -height => ( $y2 - $y1 ), my $rect = SDL::Rect->new ( ); -b => 0xff, -g => 0xff, -r => 0xff, my $color = SDL::Color->new ( my ( $x1, $y1, $x2, $y2, $num ) = @_;sub drawRect {################################### Temporary fucntions###############################} } $app->grab_input ( SDL_GRAB_OFF ); SDL::Cursor::show ( undef, 1 ); $fullscreen = 0; else { } $app->grab_input ( SDL_GRAB_ON ); SDL::Cursor::show ( undef, 0 ); $fullscreen = 1; if ( ! $fullscreen ) { $app->fullscreen ();sub setFullScreen {#### Switch between fullscreen and windowed. Take away our mouse cursor in fullscreen##} return $hit; # returns non-zero for a hit