Pacman Ghost Algorithm

pacman
In a game of Pacman a specific algorithm is used to control the movement of the ghosts who are chasing (running towards) Pacman.

For this challenge we will assume that ghosts can walk through walls (as ghosts do!). So we will implement an algorithm that is slightly different to the algorithm used in the real game of Pacman where ghosts can only run alongside the corridors of the maze.

Our algorithm will be used in a frame based game where the sprites (e.g. Pacman, Ghosts) are positionned using (x,y) coordinates. The Pacman movement will be based on the position of the mouse cursor whereas the Ghosts will use a velocity vector (vx,vy) to move/translate between two frames.

velocity-vector

Trigonometric Ratios: SOH-CAH-TOA


Our algorithm will use the trigonometric ration to find the angle the Ghost needs to head towards to chase Pacman.
pacman-sohcahtoa-angle

The next step of our algorithm will use this angle to calculate the velocity vector (Vx,Vy) of the ghost:
pacman-sohcahtoa-velocity

The final step of our algorithm will update the (x,y) coordinates of our ghost to apply the velocity vector translation before drawing the ghost sprite on the screen.
pacman-sohcahtoa-translation

Python Code


Share Button
Posted in Computer Science, Computing Concepts, Python - Advanced, Python Challenges Tagged with:

Our Latest Book

Follow this blog