pacman-canvas
=============
An old classic, re-written in HTML5.
Visit http://pacman.platzh1rsch.ch to see it live.
Sounds from
http://soundfxcenter.com/ and http://soundfxnow.com/
If you like this project, feel free to buy me a coffee:
------
License
=======
Feel free to use / copy / modify my code, as long as you reshare your version and give some credit to the original author (me).
Pacman Canvas by Platzh1rsch is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
Based on a work at https://github.com/platzhersh/pacman-canvas.
Get started
===========
To just run the game locally, run `npm start`.
If you want to see the console logs in your browser, use the `npm run start:dev` instead.
To modify the game for your needs, look at the `pacman-canvas.js` file and make your modifications.
To change the look and feel, edit the `pacman-canvas.css` file or also the `index.htm`file, where everything comes together.
------
Version history
===============
*Version 1.0.5 - 22.03.2021*
* add webpack config
* fix finished game state
* show console logs when started locally
*Version 1.0.4 - 26.12.2020*
* remove highscore reset endpoint
*Version 1.0.3 - 26.12.2020*
* fix speed issue
*Version 1.0.2 - 26.12.2020*
* add get started section in README
* limit to 10 levels for now
* small refactorings
* add score validation in JS
*Version 1.0.1 - 6.10.2020*
* add `bump-version.sh` to make versioning easier
*Version 1.0.0 - 5.9.2020*
* use "default" version number format, go up to 1.0.0
* add `package.json`
* add `server.js`
* you can now run pacman running an express JS server, using `npm start`
* don't use ajax `async: false` anymore to load map config, since it has been marked as deprecated
*Version 0.93 - 8.1.2020*
* add `ads.txt`
*Version 0.92 - 6.3.2018*
* remove navigator.vibrate() calls
*Version 0.91 - 15.01.2016*
* more tests to avoid cheaters
* better highscore form validation
* timer integrated (not in use yet)
* "your screen is too small to play in landscape view" message removed
* fix number of points for eating a ghost
*Version 0.9 - 15.10.2015*
* different difficulties depending on level
* scatter / chase indicated through wall colour
* extended instructions
*Version 0.87 - 08.10.2015*
* fix a bug that allowed resuming a game after game over
*Version 0.86 - 25.05.2015*
* some security fixes to avoid cheaters from adding highscores
*Version 0.84 - 09.11.2014*
* fixed bug that caused game to crash when leaving game area to the right side while holding the right arrow
*Version 0.83 - 07.05.2014*
* not possible to stop by turning into walls anymore
* mute / unmute the game by pressing the "M" key
*Version 0.82 - 02.04.2014*
* small bugfixes
* swipe gestures detection on the whole screen not only game area
*Version 0.81 - 16.03.2014*
* Ghost Modes Scatter & Chase
* Pathfinding AI for Blinky
* Ghosts need to return to Ghost House when dead
*Version 0.8 - 13.11.2013*
* lots of small changes in the backend
* when you go in landscape mode and your screen is too small to display the whole site, you get notified to rotate your phone into portrait mode
* all onClick and onMousedown in HTML removed and replaced by EventListeners in JavaScript
* Pacman Canvas now uses ApplicationCache to cache its content, so you can play the game offline!
*Version 0.78 - 05.11.2013*
* navigation via buttons should be less delayed by using onMouseDown event instead of onClick
* refreshRate is now a game attribute and could be changed easily during the game (not yet implemented in frontend)
*Version 0.77 - 24.05.2013*
* Ghosts start to blink before to undazzle
* Pacman now dies with style
*Version 0.76 - 02.05.2013*
* You can now use the usual arrow keys to control pacman
* fixed 2 small bugs regarding KeyEvents
*Version 0.75 - 28.04.2013*
* You can pause / resume the game by pressing SPACE
* ESC is no longer used to pause / resume, but to go back to the main view
* Game Menu only showing while game is paused
* some css tweaks
* Simple Highscore implemented using Ajax, Json and Sqlite3
*Version 0.74 - 25.04.2013*
* You can pause / resume the game by pressing ESC or clicking into canvas
* Swipe Gestures using hammerjs
* replaced alerts by nice html overlay messages
*Version 0.73 - 17.04.2013*
* You can play on until you lost all your 3 lives
* Ghosts state gets reset everytime they get eaten or new level starts
*Version 0.72 - 30.01.2013*
* Ghost Base Door
* Reset Game after winning
*Version 0.71 - 30.01.2013*
* Ghosts can die too
*Version 0.7 - 29.01.2013*
* Powerpills & Beastmode
*Version 0.63 - 29.01.2013*
* Pills now get loaded over external json file (map.json)
* ghost collisions implemented -> dying
* tried to clean up the code a bit
*Version 0.62 - 23.01.2013*
* disable zoom on Mobile
* change name to Pacman Canvas (Alpha)
*Version 0.61 - 12.01.2013*
* all walls defined (incl. collisions)
*Version 0.6 - 12.01.2013*
* small fixes for mobile view
* sound control (default: muted)
* collision control for walls
* json datastructure design for all game objects (pills, magic pills, walls)
*Version 0.41 - 10.12.2012*
* Mobile Design Fix
* New Icon
*Version 0.40 - 08.12.2012*
* Control Buttons for mobile
* Small Design Updates
*Version 0.30 - 05.12.2012*
* Touch Support via jGestures
* Responsive
*Version 0.20 - 22.11.2012*
* Code Refactored for further development
* Sound added
* Appcache implemented
*Version 0.13 - 29.10.2012*
* Never miss a dot: Pacman now always stays in the grid.
*Version 0.12 - 19.10.2012*
* Pacman is now able to eat the dots. Eating a dot equals 10 points for now.
* LiveScore implemented.
* Game ends when all dots are eaten.
*Version 0.11 - 15.10.2012*
* Placing white Dots and storing them in a Hashtable
* Monster/Ghost Prototype
* Score Prototype
* Pacman had to get smaller (r=15px)
* Display Grid
* Refactoring HTML
*Version 0.10 - 23.08.2012*
* Started cleaning up the code using Objects
* Pacman now turns around when changing directions