├── backend ├── index.js ├── package-lock.json └── package.json ├── install.docx ├── manager └── manage.html └── pacman ├── .gitignore ├── BACKLOG ├── COPYING ├── README.md ├── build.sh ├── debug.htm ├── doc ├── Coding ├── GameDesign ├── Hardware ├── README ├── cutscenes.tar.bz2 ├── disasm │ ├── 16K-memblock.asm │ ├── README │ ├── bart.asm │ ├── ida │ │ ├── mspac8000.rom │ │ ├── mspacman.rom │ │ ├── pacman.idb │ │ └── pacman.rom │ ├── mspac-fruit-path.asm │ ├── notes │ ├── pacman.mmap │ ├── pos_notes │ └── scott.asm ├── pacman.c ├── pie │ ├── arcade.cxx │ ├── arcade.h │ ├── dib24.cxx │ ├── dib24.h │ ├── hardware.htm │ ├── license.txt │ ├── main.cxx │ ├── main.ico │ ├── makefile.mgw │ ├── makefile.vc │ ├── namcowsg3.cxx │ ├── namcowsg3.h │ ├── readme.txt │ ├── resource.h │ ├── resource.rc │ ├── wsg3.htm │ ├── z80.cxx │ ├── z80.h │ ├── z80_history.txt │ ├── z80op1.cxx │ ├── z80op2cb.cxx │ ├── z80op2dd.cxx │ ├── z80op2ed.cxx │ ├── z80op2fd.cxx │ ├── z80op3xycb.cxx │ └── z80sub.cxx ├── pixeltests.tar.bz2 ├── pixeltests │ ├── redoffset.png │ ├── reverse.gif │ └── turn.gif └── ram_snapshot │ ├── notes │ ├── ram │ └── screenshot.png ├── font ├── ARCADE_R.TTF ├── FONTLOG.txt ├── LICENSE.txt ├── PressStart2P.ttf └── index.htm ├── fruit ├── Map.js ├── README.md ├── colors.js ├── cookie.htm ├── cookie_paths.png ├── decode_fruit.py ├── mapgen.js ├── maps.js ├── mspac.htm └── mspac_paths.png ├── icon ├── favicon.png ├── index.htm └── ios_icon.png ├── index.htm ├── index.htm.bak ├── issues ├── 10 ├── 11 ├── 12 ├── 13 ├── 14 ├── 15 ├── 16 ├── 17 ├── 18 ├── 19 ├── 20 ├── 21 ├── 22 ├── 23 ├── 24 ├── 25 ├── 26 ├── 27 ├── 28 ├── 29 ├── 30 ├── 31 ├── 32 ├── 33 ├── 34 ├── 35 ├── 36 ├── 37 ├── 38 ├── 39 ├── 40 ├── 41 ├── 42 ├── 43 ├── 44 ├── 45 ├── 46 ├── 47 ├── 48 ├── 49 ├── 50 ├── 51 ├── 52 ├── 53 ├── 54 ├── 55 ├── 56 ├── 57 ├── 58 ├── 59 ├── 60 ├── 61 ├── 62 ├── 63 ├── 64 ├── 65 ├── 66 ├── 67 ├── 68 ├── 01 ├── 02 ├── 03 ├── 04 ├── 05 ├── 06 ├── 07 ├── 08 ├── 09 └── README ├── mapgen ├── README.md ├── answerset │ ├── draw.py │ ├── examples │ ├── gen.sh │ ├── rules.lp │ └── rules2.lp ├── img │ ├── Map.js │ ├── conv_maze.htm │ ├── drawmaps.htm │ ├── origmaps.txt │ ├── origmaps_2x.png │ ├── origmaps_2x_print.png │ ├── origmaps_3x.png │ ├── origmaps_3x_print.png │ ├── origmaps_path.png │ └── spanning1.png ├── index.htm ├── randomfill │ ├── test.py │ └── walls.py ├── simple │ ├── README │ ├── gen.py │ └── presets ├── spanningtree │ └── README.md └── tetris │ ├── Map.js │ ├── README.md │ ├── colors.js │ ├── colortest.htm │ ├── doc.htm │ ├── many.htm │ ├── mapgen.js │ ├── presets.png │ ├── simplify.png │ └── working.png ├── mission ├── pacman.js ├── promo ├── index.htm ├── interp.js ├── jquery.js ├── main.js ├── philipp.ogg ├── render.htm ├── render.js └── server.js ├── randturn ├── .gitignore ├── index.htm ├── lcg_cycle ├── lcg_period_test.py ├── make_turn_stats.py └── turn_stats ├── shots ├── color01.png ├── color02.png ├── color03.png ├── color04.png ├── color05.png ├── color06.png ├── color07.png ├── color08.png ├── color09.png ├── cookie.png ├── cyan.png ├── learn.png ├── montage.png ├── montage2.png ├── mspac.png ├── orange.png ├── otto.png ├── pac.png ├── paths.png ├── pink.png ├── practice.png ├── procedural.png ├── red.png ├── rewind.png └── targets.png ├── sounds ├── coffee-break-music.mp3 ├── credit.mp3 ├── eating-fruit.mp3 ├── eating-ghost.mp3 ├── eating.mp3 ├── extend.mp3 ├── ghost-normal-move.mp3 ├── ghost-return-to-home.mp3 ├── ghost-spurt-move-1.mp3 ├── ghost-spurt-move-2.mp3 ├── ghost-spurt-move-3.mp3 ├── ghost-spurt-move-4.mp3 ├── ghost-turn-to-blue.mp3 ├── miss.mp3 ├── original │ ├── pacman-sounds.m4a │ └── pacman-sounds.mp3 └── start-music.mp3 ├── sprites ├── Cookie-Monster-Pac-Man-Tee.gif ├── index.htm ├── otto.jpg ├── spritecloseup.gif └── spritesheet.png └── src ├── .htaccess ├── Actor.js ├── Button.js ├── Ghost.js ├── Map.js ├── Menu.js ├── Player.js ├── actors.js ├── atlas.js ├── colors.js ├── cutscenes.js ├── direction.js ├── elroyTimer.js ├── energizer.js ├── executive.js ├── fruit.js ├── galagaStars.js ├── game.js ├── ghostCommander.js ├── ghostReleaser.js ├── hud.js ├── inGameMenu.js ├── inherit.js ├── input.js ├── main.js ├── mapgen.js ├── maps.js ├── random.js ├── renderers.js ├── sound.js ├── sprites.js ├── states.js ├── targets.js └── vcr.js /backend/index.js: -------------------------------------------------------------------------------- 1 | const express = require('express') 2 | var bodyParser = require('body-parser') 3 | const app = express() 4 | const cors = require('cors') 5 | var dgram = require('dgram'); 6 | app.use(bodyParser.json()); 7 | app.use(bodyParser.urlencoded({ 8 | extended: true 9 | })); 10 | app.use(bodyParser.json()) 11 | app.use(cors()); 12 | var http = require('http').Server(app); 13 | var io = require('socket.io')(http); 14 | io.on('connection', (socket)=>{ 15 | socket.on('ctrl', (keyPressed) => { 16 | console.log("input key",keyPressed); 17 | io.emit('ctrl', keyPressed); 18 | console.log("send direction",keyPressed); 19 | }) 20 | }); 21 | http.listen(4000, function(){ 22 | console.log(`listening on *:4000`); 23 | }); -------------------------------------------------------------------------------- /backend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "braiseit", 3 | "version": "1.0.0", 4 | "description": "Be the chef you want to be!", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node index.js", 9 | "dev": "nodemon index.js" 10 | }, 11 | "repository": { 12 | "type": "git", 13 | "url": "git+https://github.com/Shai7aleb/CMSE473TP.git" 14 | }, 15 | "keywords": [ 16 | "Recipe", 17 | "Search" 18 | ], 19 | "author": "Team 7 fall-2022", 20 | "license": "ISC", 21 | "bugs": { 22 | "url": "https://github.com/Shai7aleb/CMSE473TP/issues" 23 | }, 24 | "homepage": "https://github.com/Shai7aleb/CMSE473TP#readme", 25 | "dependencies": { 26 | "@fast-csv/format": "^4.3.5", 27 | "@fast-csv/parse": "^4.3.6", 28 | "body-parser": "^1.20.1", 29 | "convert-array-to-csv": "^2.0.0", 30 | "cors": "^2.8.5", 31 | "csv-parse": "^5.3.3", 32 | "dgram": "^1.0.1", 33 | "express": "^4.18.2", 34 | "fast-csv": "^4.3.6", 35 | "http": "0.0.1-security", 36 | "js-levenshtein": "^1.1.6", 37 | "nodemon": "^2.0.20", 38 | "socket.io": "^4.5.4", 39 | "sys": "0.0.1" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /install.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/install.docx -------------------------------------------------------------------------------- /pacman/.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | *.pyc 3 | -------------------------------------------------------------------------------- /pacman/BACKLOG: -------------------------------------------------------------------------------- 1 | # This is a feature backlog. 2 | 3 | - create informational website to replace github 4 | - phase out all the markdown readmes from github 5 | 6 | - cookie-man 7 | - change ghost sprites to muppet sprites 8 | 9 | - two player mode 10 | - (cocktail option for screen flipping?) 11 | 12 | - cutscenes 13 | - pac-man 2,3 14 | - ms. pac-man 2,3 15 | - cookie-man 1,2,3 16 | 17 | - puzzles 18 | - experiment with puzzle mode 19 | - mapgen 20 | - post-resize path-shifting for more diversity 21 | - write article 22 | - automated tester to check for sharp turns and deads and wide paths 23 | - hidden debug canvas to display cells and tiles to help track potential bugs 24 | - map a cell group to a size indicating number of cells attached to it? 25 | 26 | fullscreen: 27 | http://jlongster.com/2011/11/21/canvas.html 28 | 29 | audio: 30 | https://developer.mozilla.org/en-US/docs/Introducing_the_Audio_API_Extension 31 | 32 | 33 | -------------------------------------------------------------------------------- /pacman/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # 1. build 'pacman.js' by concatenating files specified in js_order 4 | # 2. update time stamp in index.htm 5 | # 3. build debug.htm with individual script includes 6 | 7 | output="pacman.js" 8 | debug_includes="\n" 9 | 10 | # write header 11 | echo " 12 | // Copyright 2012 Shaun Williams 13 | // 14 | // This program is free software: you can redistribute it and/or modify 15 | // it under the terms of the GNU General Public License Version 3 as 16 | // published by the Free Software Foundation. 17 | // 18 | // This program is distributed in the hope that it will be useful, 19 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 20 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 | // GNU General Public License for more details. 22 | 23 | // ========================================================================== 24 | // PAC-MAN 25 | // an accurate remake of the original arcade game 26 | 27 | // Based on original works by Namco, GCC, and Midway. 28 | // Research by Jamey Pittman and Bart Grantham 29 | // Developed by Shaun Williams 30 | 31 | // ========================================================================== 32 | 33 | (function(){ 34 | " > $output 35 | 36 | for file in \ 37 | inherit.js \ 38 | sound.js \ 39 | random.js \ 40 | game.js \ 41 | direction.js \ 42 | Map.js \ 43 | colors.js \ 44 | mapgen.js \ 45 | atlas.js \ 46 | renderers.js \ 47 | hud.js \ 48 | galagaStars.js \ 49 | Button.js \ 50 | Menu.js \ 51 | inGameMenu.js \ 52 | sprites.js \ 53 | Actor.js \ 54 | Ghost.js \ 55 | Player.js \ 56 | actors.js \ 57 | targets.js \ 58 | ghostCommander.js \ 59 | ghostReleaser.js \ 60 | elroyTimer.js \ 61 | energizer.js \ 62 | fruit.js \ 63 | executive.js \ 64 | states.js \ 65 | input.js \ 66 | cutscenes.js \ 67 | maps.js \ 68 | vcr.js \ 69 | main.js 70 | do 71 | # points firebug to correct file (or so I hoped) 72 | # if JSOPTION_ATLINE is set, this should work in firefox (but I don't know how to set it) 73 | echo "//@line 1 \"src/$file\"" >> $output 74 | 75 | # concatenate file to output 76 | cat src/$file >> $output 77 | 78 | # add this file to debug includes 79 | debug_includes="$debug_includes\n" 80 | done 81 | 82 | # end anonymous function wrapper 83 | echo "})();" >> $output 84 | 85 | # update time stamp 86 | sed -i '.bak' "s/last updated:[^<]*/last updated: $(date) -->/" index.htm 87 | 88 | # build debug.htm from index.htm adding debug includes 89 | sed "s:.*$output.*:$debug_includes:" index.htm > debug.htm 90 | -------------------------------------------------------------------------------- /pacman/debug.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Pac-Man 7 | 8 | 9 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 41 | 42 | nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
51 |
Your browser does not support HTML Canvas. Please upgrade!
52 | 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /pacman/doc/README: -------------------------------------------------------------------------------- 1 | 2 | cutscene.tar.bz2 contains: 3 | MNG format 60fps video of each cutscene in pac and mspac recorded with MAME 4 | Also frame-by-frame dumps in PNG format 5 | 6 | pixeltests.tar.bz2 contains: 7 | frame-by-frame GIMP files for moving through a recorded video to evaluate pixel positions and speeds of the actors 8 | -------------------------------------------------------------------------------- /pacman/doc/cutscenes.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/doc/cutscenes.tar.bz2 -------------------------------------------------------------------------------- /pacman/doc/disasm/README: -------------------------------------------------------------------------------- 1 | 2 | Thanks to Bart Grantham for these annotated disassembly notes 3 | -------------------------------------------------------------------------------- /pacman/doc/disasm/ida/mspac8000.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/doc/disasm/ida/mspac8000.rom -------------------------------------------------------------------------------- /pacman/doc/disasm/ida/mspacman.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/doc/disasm/ida/mspacman.rom -------------------------------------------------------------------------------- /pacman/doc/disasm/ida/pacman.idb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/doc/disasm/ida/pacman.idb -------------------------------------------------------------------------------- /pacman/doc/disasm/ida/pacman.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/doc/disasm/ida/pacman.rom -------------------------------------------------------------------------------- /pacman/doc/disasm/pacman.mmap: -------------------------------------------------------------------------------- 1 | Pac-Man Memory layout: 2 | 3 | 0000-3fff ROM 4 | 0000 - 0fff pacman 6e mspacman boot1 5 | 1000 - 1fff pacman 6f mspacman boot2 6 | 2000 - 2fff pacman 6h mspacman boot3 7 | 3000 - 3fff pacman 6j mspacman boot4 8 | 4000-43ff Video RAM 9 | 4400-47ff Color RAM 10 | 4c00-4fff RAM 11 | 8000-9fff ROM (Ms Pac-Man and Ponpoko only) 12 | 8000 - 8fff mspacman boot5 13 | 9000 - 9fff mspacman boot6 14 | 15 | a000-bfff ROM (Ponpoko only) 16 | 17 | memory mapped ports: 18 | 19 | read: 20 | 5000 IN0 21 | 5040 IN1 22 | 5080 DSW 1 23 | 50c0 DSW 2 (Ponpoko only) 24 | 25 | IN0: 26 | 01 up 27 | 02 left 28 | 04 right 29 | 08 down 30 | 10 rack test 31 | 20 coin 1 32 | 40 coin 2 33 | 80 coin 3 34 | 35 | IN1: 36 | 01 up 37 | 02 left 38 | 04 right 39 | 08 down 40 | 10 service 41 | 20 start 1 42 | 40 start 2 43 | 80 cabinet (set - upright) 44 | 45 | write: 46 | 4ff0-4fff 8 pairs of two bytes: 47 | the first byte contains the sprite image number (bits 2-7), 48 | Y flip (bit 0), 49 | X flip (bit 1); 50 | the second byte the color 51 | 52 | 5000 interrupt enable 53 | 5001 sound enable 54 | 5002 ???? 55 | 5003 flip screen 56 | 5004 1 player start lamp 57 | 5005 2 players start lamp 58 | 5006 coin lockout 59 | 5007 coin counter 60 | 5040-5044 sound voice 1 accumulator (nibbles) (used by the sound hardware only) 61 | 5045 sound voice 1 waveform (nibble) 62 | 5046-5049 sound voice 2 accumulator (nibbles) (used by the sound hardware only) 63 | 504a sound voice 2 waveform (nibble) 64 | 504b-504e sound voice 3 accumulator (nibbles) (used by the sound hardware only) 65 | 504f sound voice 3 waveform (nibble) 66 | 5050-5054 sound voice 1 frequency (nibbles) 67 | 5055 sound voice 1 volume (nibble) 68 | 5056-5059 sound voice 2 frequency (nibbles) 69 | 505a sound voice 2 volume (nibble) 70 | 505b-505e sound voice 3 frequency (nibbles) 71 | 505f sound voice 3 volume (nibble) 72 | 5060-506f Sprite coordinates, x/y pairs for 8 sprites 73 | 50c0 Watchdog reset 74 | 75 | 76 | I/O ports: 77 | OUT on port $0 sets the interrupt vector 78 | 79 | -------------------------------------------------------------------------------- /pacman/doc/disasm/pos_notes: -------------------------------------------------------------------------------- 1 | At 8759 (0x2237): 2 | call_6150(); call_6150(); 3 | call_6966(); 4 | call_3619(); 5 | 6 | 6150 (0x1806) 7 | 6966 (0x1B36) 8 | - call_8407 (0x20D7) // set red aggression flags 9 | 3619 (0x0E23) 10 | -------------------------------------------------------------------------------- /pacman/doc/pie/dib24.cxx: -------------------------------------------------------------------------------- 1 | /* 2 | 24 bit Device Independent Bitmap class 3 | 4 | Copyright (c) 2002,2003 Alessandro Scotti 5 | http://www.ascotti.org/ 6 | 7 | This program is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 2 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program; if not, write to the Free Software 19 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20 | */ 21 | #include 22 | 23 | #include "dib24.h" 24 | 25 | void Dib24::createBitmap( int width, int height ) 26 | { 27 | assert( width > 0 ); 28 | assert( height > 0 ); 29 | 30 | hdc_ = CreateCompatibleDC( 0 ); 31 | assert( hdc_ != 0 ); 32 | 33 | // Create DIB section to hold bitmap data 34 | ZeroMemory( &bitmapinfo_, sizeof(bitmapinfo_) ); 35 | bitmapinfo_.bmiHeader.biSize = sizeof(bitmapinfo_.bmiHeader); 36 | bitmapinfo_.bmiHeader.biWidth = width; 37 | bitmapinfo_.bmiHeader.biHeight = -height; // Create top-down bitmap 38 | bitmapinfo_.bmiHeader.biPlanes = 1; 39 | bitmapinfo_.bmiHeader.biBitCount = 24; 40 | bitmapinfo_.bmiHeader.biCompression = BI_RGB; 41 | bitmapinfo_.bmiHeader.biSizeImage = 0; 42 | bitmapinfo_.bmiHeader.biXPelsPerMeter = 1; 43 | bitmapinfo_.bmiHeader.biYPelsPerMeter = 1; 44 | bitmapinfo_.bmiHeader.biClrUsed = 0; 45 | bitmapinfo_.bmiHeader.biClrImportant = 0; 46 | 47 | LPVOID pb; 48 | 49 | hbm_ = CreateDIBSection( hdc_, 50 | &bitmapinfo_, 51 | DIB_RGB_COLORS, 52 | &pb, 53 | 0, 54 | 0 ); 55 | assert( hbm_ != 0 ); 56 | 57 | SelectObject( hdc_, hbm_ ); 58 | 59 | bitmapbits_ = (LPBYTE)pb; 60 | scanlength_ = 4 * ((width*3 + 3) / 4); // Length of a scan line 61 | width_ = width; 62 | height_ = height; 63 | } 64 | 65 | Dib24::Dib24( int width, int height ) 66 | { 67 | createBitmap( width, height ); 68 | clear(); 69 | } 70 | 71 | Dib24::Dib24( const Dib24 & dib ) 72 | { 73 | createBitmap( dib.width_, dib.height_ ); 74 | memcpy( bitmapbits_, dib.bitmapbits_, scanlength_*height_ ); 75 | } 76 | 77 | Dib24::~Dib24() 78 | { 79 | DeleteDC( hdc_ ); 80 | DeleteObject( hbm_ ); 81 | } 82 | 83 | void Dib24::clear() 84 | { 85 | ZeroMemory( bitmapbits_, scanlength_*height_ ); 86 | } 87 | 88 | void Dib24::stretch( HDC hdc, int x, int y, int width, int height ) 89 | { 90 | StretchDIBits( hdc, 91 | x, 92 | y, 93 | width, 94 | height, 95 | 0, 96 | 0, 97 | width_, 98 | height_, 99 | bitmapbits_, 100 | &bitmapinfo_, 101 | DIB_RGB_COLORS, 102 | SRCCOPY ); 103 | } 104 | 105 | DWORD Dib24::getPixel( int x, int y ) 106 | { 107 | if( x < 0 || x >= width_ || y < 0 || y >= height_ ) 108 | return 0; 109 | 110 | return getFastPixel( x, y ); 111 | } 112 | 113 | void Dib24::setPixel( int x, int y, DWORD value ) 114 | { 115 | if( x < 0 || x >= width_ || y < 0 || y >= height_ ) 116 | return; 117 | 118 | setFastPixel( x, y, value ); 119 | } 120 | -------------------------------------------------------------------------------- /pacman/doc/pie/main.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/doc/pie/main.ico -------------------------------------------------------------------------------- /pacman/doc/pie/makefile.mgw: -------------------------------------------------------------------------------- 1 | # Pacman Instructional Emulator 2 | # MinGW makefile 3 | 4 | # Compiler, linker and utilities 5 | CC = @g++ 6 | LD = @g++ 7 | RC = @windres 8 | 9 | # Link flags 10 | LDFLAGS = -s -mwindows 11 | LIBS = -ldsound -lddraw 12 | 13 | # Compile flags 14 | NAME = pacman 15 | TARGET = $(NAME).exe 16 | 17 | CDEFS = -DWIN32 -DWINNT 18 | 19 | CFLAGS_BASE = -DNDEBUG $(ARCH) -O3 -fomit-frame-pointer -fstrict-aliasing 20 | CFLAGS_WARNINGS = -Werror -Wall -Wno-sign-compare -Wunused \ 21 | -Wpointer-arith -Wbad-function-cast -Wcast-align -Waggregate-return \ 22 | -Wshadow -Wstrict-prototypes -Wundef \ 23 | -Wformat-security -Wwrite-strings \ 24 | -Wdisabled-optimization 25 | 26 | CFLAGS = $(CFLAGS_BASE) $(CFLAGS_WARNINGS) 27 | 28 | OBJS = main.o dib24.o arcade.o namcowsg3.o z80.o z80op1.o z80op2cb.o z80op2dd.o z80op2ed.o z80op2fd.o z80op3xycb.o z80sub.o 29 | 30 | $(TARGET): $(OBJS) resource.o 31 | $(LD) $(LDFLAGS) $^ $(LIBS) -o $@ 32 | 33 | resource.o: resource.rc 34 | $(RC) $< -o $@ -O coff 35 | 36 | %.o: %.cxx 37 | $(CC) $(CDEFS) $(CFLAGS) -c $< -o $@ 38 | -------------------------------------------------------------------------------- /pacman/doc/pie/makefile.vc: -------------------------------------------------------------------------------- 1 | # Pacman Instructional Emulator 2 | # Visual C++ makefile 3 | 4 | # Compiler, linker and utilities 5 | CC = cl 6 | LD = link 7 | RC = rc 8 | 9 | # Link flags 10 | LDFLAGS = 11 | LIBS = kernel32.lib user32.lib gdi32.lib dsound.lib ddraw.lib 12 | 13 | # Compile flags 14 | NAME = pacman 15 | TARGET = $(NAME).exe 16 | 17 | CDEFS = -DWIN32 -DWINNT 18 | 19 | CFLAGS_BASE = /nologo /GX /YX 20 | CFLAGS_WARNINGS = /W3 21 | 22 | CFLAGS = $(CFLAGS_BASE) $(CFLAGS_WARNINGS) 23 | 24 | OBJS = main.obj dib24.obj arcade.obj namcowsg3.obj z80.obj z80op1.obj z80op2cb.obj z80op2dd.obj z80op2ed.obj z80op2fd.obj z80op3xycb.obj z80sub.obj 25 | 26 | $(TARGET): $(OBJS) resource.res 27 | $(LD) $(LDFLAGS) $** $(LIBS) /OUT:$@ 28 | 29 | %.res: %.rc 30 | $(RC) $< 31 | 32 | %.o: %.cxx 33 | $(CC) $(CDEFS) $(CFLAGS) /c $< 34 | 35 | -------------------------------------------------------------------------------- /pacman/doc/pie/readme.txt: -------------------------------------------------------------------------------- 1 | PIE - Pacman Instructional Emulator 2 | Copyright (c) 1996-2004 Alessandro Scotti 3 | http://www.ascotti.org/ 4 | 5 | Emulator and Win32 front-end sources. 6 | 7 | The sources can be compiled with Visual C++ (makefile.vc) 8 | or MinGW/g++ (makefile.mgw). 9 | 10 | Homepage for the PIE emulator is: 11 | http://www.ascotti.org/programming/pie/pie.htm 12 | 13 | Supported games are: 14 | * Namco Pacman, with ROM files: 15 | - namcopac.6e 16 | - namcopac.6f 17 | - namcopac.6h 18 | - namcopac.6j 19 | - pacman.5e 20 | - pacman.5f 21 | * Midway Pacman, with ROM files: 22 | - pacman.6e 23 | - pacman.6f 24 | - pacman.6h 25 | - pacman.6j 26 | - pacman.5e 27 | - pacman.5f 28 | * Ms. Pacman, with ROM files: 29 | - pacman.6e 30 | - pacman.6f 31 | - pacman.6h 32 | - pacman.6j 33 | - 5e 34 | - 5f 35 | - u5 36 | - u6 37 | - u7 38 | 39 | In addition to the above ROMs the emulator also needs the color 40 | ROM files: 41 | - 82s123.7f 42 | - 82s126.4a 43 | 44 | The ROM files are the same required by MAME and other 45 | emulators and they must be present in the directory from where the 46 | emulator is started. Note however that MAME stores ROMs in ZIP files, 47 | while PIE is not able to read ZIPs and must have the files 48 | (unzipped and) directly available. The name for the MAME ZIP files 49 | are: pacman.zip (Namco edition), pacmanm.zip (Midway edition) and 50 | mspacman.zip. 51 | 52 | Please remember that the Pacman game ROM(s) are copyrighted material 53 | and are not included with the emulator. Furthermore, they must 54 | be *never* bundled or distributed together with this emulator in 55 | any format or media. 56 | 57 | HISTORY 58 | ------- 59 | 29 dec 2003 Version 1.00 60 | - Initial release 61 | 62 | 12 jan 2004 Version 1.10 63 | - Emulator/documentation has been enhanced to support 64 | all known features. 65 | - Trimmed unused MFC references from resource.h/.rc to allow 66 | compilation with MinGW/g++. 67 | - Added minimalist makefiles for MinGW and Visual C++. 68 | - Double screen size is now allowed, required some adjustement 69 | to make it fast enough. 70 | - The Dib24 class has been documented in ccdoc style. 71 | - Added new DIP switches: cocktail mode (try it with a 72 | two-players game!), test mode, rack advance and others. 73 | - Added the Pacman speed hack. 74 | - Some changes in the Z80 emulator (see z80_history.txt). 75 | - Added support for Ms. Pacman (just for fun). 76 | - Sound chip is emulated separately (and a bug was discovered 77 | while doing the change, so now sound is correct...) 78 | 79 | 15 jan 2004 Version 1.12 80 | - Using DirectDraw for display, it's now fast enough. 81 | - Fixed a possible bug (?) in sound handling. 82 | - Sound is still giving trouble, with different behavior 83 | on different machines. A triple buffering scheme seems 84 | to help for now... 85 | 86 | 87 | LICENSE 88 | ------- 89 | 90 | This program is free software; you can redistribute it and/or modify 91 | it under the terms of the GNU General Public License as published by 92 | the Free Software Foundation; either version 2 of the License, or 93 | (at your option) any later version. 94 | 95 | This program is distributed in the hope that it will be useful, 96 | but WITHOUT ANY WARRANTY; without even the implied warranty of 97 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 98 | GNU General Public License for more details. 99 | 100 | You should have received a copy of the GNU General Public License 101 | along with this program; if not, write to the Free Software 102 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 103 | -------------------------------------------------------------------------------- /pacman/doc/pie/resource.h: -------------------------------------------------------------------------------- 1 | #define IDM_NEW 1 2 | #define IDM_EXIT 2 3 | #define IDM_HELP_KEYS 3 4 | #define IDM_ABOUT 4 5 | #define IDM_LOAD_PACMAN 5 6 | #define IDM_LOAD_NAMCOPAC 6 7 | #define IDM_LOAD_MSPACMAN 7 8 | #define IDM_MAIN 101 9 | #define IDI_MAIN 102 10 | #define IDM_WINDOW_SIZE 40001 11 | #define IDM_EASY 40007 12 | #define IDM_NORMAL 40008 13 | #define IDM_HARD 40009 14 | #define IDM_LIFE_0 40014 15 | #define IDM_LIFE_1 40015 16 | #define IDM_LIFE_3 40016 17 | #define IDM_LIFE_2 40018 18 | #define IDM_GHOST_0 40019 19 | #define IDM_GHOST_1 40020 20 | #define IDM_SNAP_0 40021 21 | #define IDM_SNAP_1 40022 22 | #define IDM_SNAP_2 40023 23 | #define IDM_CABINET_UPRIGHT 40024 24 | #define IDM_CABINET_COCKTAIL 40025 25 | #define IDM_BONUS_10000 40026 26 | #define IDM_BONUS_15000 40027 27 | #define IDM_BONUS_20000 40028 28 | #define IDM_BONUS_NONE 40029 29 | -------------------------------------------------------------------------------- /pacman/doc/pie/resource.rc: -------------------------------------------------------------------------------- 1 | #include "resource.h" 2 | 3 | ///////////////////////////////////////////////////////////////////////////// 4 | // 5 | // Icon 6 | // 7 | 8 | // Icon with lowest ID value placed first to ensure application icon 9 | // remains consistent on all systems. 10 | IDI_MAIN ICON DISCARDABLE "main.ico" 11 | 12 | ///////////////////////////////////////////////////////////////////////////// 13 | // 14 | // Menu 15 | // 16 | 17 | IDM_MAIN MENU DISCARDABLE 18 | BEGIN 19 | POPUP "&File" 20 | BEGIN 21 | MENUITEM "Load Midway Pacman", IDM_LOAD_PACMAN 22 | MENUITEM "Load Namco Pacman", IDM_LOAD_NAMCOPAC 23 | MENUITEM "Load Ms. Pacman", IDM_LOAD_MSPACMAN 24 | MENUITEM SEPARATOR 25 | MENUITEM "&Restart", IDM_NEW 26 | MENUITEM SEPARATOR 27 | MENUITEM "Restore F5 Snapshot", IDM_SNAP_0 28 | MENUITEM "Restore F6 Snapshot", IDM_SNAP_1 29 | MENUITEM "Restore F7 Snapshot", IDM_SNAP_2 30 | MENUITEM SEPARATOR 31 | MENUITEM "Exit", IDM_EXIT 32 | END 33 | POPUP "&Options" 34 | BEGIN 35 | MENUITEM "Toggle window size", IDM_WINDOW_SIZE 36 | MENUITEM SEPARATOR 37 | MENUITEM "Normal", IDM_NORMAL, CHECKED 38 | MENUITEM "Hard (more difficult)", IDM_HARD 39 | MENUITEM SEPARATOR 40 | MENUITEM "1 Pacman per Game", IDM_LIFE_0 41 | MENUITEM "2 Pacmen per Game", IDM_LIFE_1 42 | MENUITEM "3 Pacmen per Game", IDM_LIFE_2, CHECKED 43 | MENUITEM "5 Pacmen per Game", IDM_LIFE_3 44 | MENUITEM SEPARATOR 45 | MENUITEM "Bonus pacman at 10000", IDM_BONUS_10000, CHECKED 46 | MENUITEM "Bonus pacman at 15000", IDM_BONUS_15000 47 | MENUITEM "Bonus pacman at 20000", IDM_BONUS_20000 48 | MENUITEM "No bonus", IDM_BONUS_NONE 49 | MENUITEM SEPARATOR 50 | MENUITEM "Normal Ghost Names", IDM_GHOST_0, CHECKED 51 | MENUITEM "Alternate Ghost Names", IDM_GHOST_1 52 | MENUITEM SEPARATOR 53 | MENUITEM "Cabinet upright", IDM_CABINET_UPRIGHT, CHECKED 54 | MENUITEM "Cabinet cocktail", IDM_CABINET_COCKTAIL 55 | END 56 | POPUP "&Help" 57 | BEGIN 58 | MENUITEM "&Keys", IDM_HELP_KEYS 59 | MENUITEM SEPARATOR 60 | MENUITEM "&About", IDM_ABOUT 61 | END 62 | END 63 | -------------------------------------------------------------------------------- /pacman/doc/pie/z80_history.txt: -------------------------------------------------------------------------------- 1 | Version 1.0 2 | ----------- 3 | Initial release (after so many years!) for Pacman emulator. 4 | 5 | Version 1.1 6 | ----------- 7 | Finally got some official (i.e. Zilog) documentation for the Z80, and 8 | the correct instructions for DAA! 9 | 10 | - Added more comments and explanations to the code. 11 | - LDIR, LDDR, CPIR, CPDR, INIR, INDR, OTIR, OTDR are now interruptible 12 | and the cycle count is correct. 13 | - Opcodes of type LD r, RLC/RRC/RL/RR/SLA/SRA/SLL/SRL/RES/SET (IX/IY + d) 14 | (undocumented) have been implemented. 15 | - Changed HALT management. 16 | - Removed support for undocumented flags to make code more clear. 17 | - DAA rewritten to avoid lookup table (thanks to S. Donati/S. Young for 18 | documenting that). 19 | - Removed readWord() and writeWord() from Z80Environment interface. 20 | - Added notification of RETI instruction to Z80Environment interface. 21 | - Added run() method to the Z80 class. 22 | - Modified some instruction in order to avoid unnecessary calls to 23 | the environment functions (e.g. for conditional branches not taken). -------------------------------------------------------------------------------- /pacman/doc/pixeltests.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/doc/pixeltests.tar.bz2 -------------------------------------------------------------------------------- /pacman/doc/pixeltests/redoffset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/doc/pixeltests/redoffset.png -------------------------------------------------------------------------------- /pacman/doc/pixeltests/reverse.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/doc/pixeltests/reverse.gif -------------------------------------------------------------------------------- /pacman/doc/pixeltests/turn.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/doc/pixeltests/turn.gif -------------------------------------------------------------------------------- /pacman/doc/ram_snapshot/notes: -------------------------------------------------------------------------------- 1 | 2 | 33333333333333222222222222222211 3 | DCBA9876543210FEDCBA9876543210FE 4 | 5 | ##____________________________## 6 | ##____________________________## 7 | 20 ##____________________________## 8 | 21 ##||||||||||||||||||||||||||||## 9 | 22 ##|............||............|## 10 | 23 ##|.||||.|||||.||.|||||.||||.|## 11 | 24 ##|o||||.|||||.||.|||||.||||o|## 12 | 25 ##|.||||.|||||.||.|||||.||||.|## 13 | 26 ##|..........................|## 14 | 27 ##|.||||.||.||||||||.||.||||.|## 15 | 28 ##|.||||.||.||||||||.||.||||.|## 16 | 29 ##|......||....||....||......|## 17 | 2A ##||||||.||||| || |||||.||||||## 18 | 2B ##_____|.||||| || |||||.|_____## 19 | 2C ##_____|.|| ||.|_____## 20 | 2D ##_____|.|| |||--||| ||.|_____## 21 | 2E ##||||||.|| |______| ||.||||||## 22 | 2F ## . |______| . ## 23 | 30 ##||||||.|| |______| ||.||||||## 24 | 31 ##_____|.|| |||||||| ||.|_____## 25 | 32 ##_____|.|| ||.|_____## 26 | 33 ##_____|.|| |||||||| ||.|_____## 27 | 34 ##||||||.|| |||||||| ||.||||||## 28 | 35 ##|............||............|## 29 | 36 ##|.||||.|||||.||.|||||.||||.|## 30 | 37 ##|.||||.|||||.||.|||||.||||.|## 31 | 38 ##|o..||....... .......||..o|## 32 | 39 ##|||.||.||.||||||||.||.||.|||## 33 | 3A ##|||.||.||.||||||||.||.||.|||## 34 | 3B ##|......||....||....||......|## 35 | 3C ##|.||||||||||.||.||||||||||.|## 36 | 3D ##|.||||||||||.||.||||||||||.|## 37 | 3E ##|..........................|## 38 | 3F ##||||||||||||||||||||||||||||## 39 | ##____________________________## 40 | ##____________________________## 41 | 42 | Pixel XY Position: 43 | 44 | IN TILE Y = Pixel / 0x8 + 0x20 45 | IN TILE X = Pixel / 0x8 + 0x1E 46 | 47 | TILE 48 | 4D00: B7 74 (36 2C) 49 | 4D02: AC 73 (35 2C) 50 | 4D04: F4 B8 (3E 35) 51 | 4D06: DC E4 (3B 3A) 52 | 4D08: DC D8 (3B 39) 53 | 54 | Lookahead Tile XY Position: 55 | 56 | 4D0A: 37 2C 57 | 4D0C: 35 2C 58 | 4D0E: 3E 35 59 | 4D10: 3B 3A 60 | 4D12: 3B 38 61 | 62 | Move XY Direction: 63 | 64 | 4D14: 01 00 65 | 4D16: 00 01 66 | 4D18: 00 01 67 | 4D1A: FF 00 68 | 4D1C: 00 FF 69 | 70 | Face XY Direction: 71 | 72 | 4D1E: 01 00 73 | 4D20: 01 00 74 | 4D22: 00 01 75 | 4D24: 00 FF 76 | 4D26: FF 00 77 | 78 | Move Enum Direction: 79 | 80 | 4D28: 01 81 | 4D29: 02 82 | 4D2A: 02 83 | 4D2B: 03 84 | 85 | Face Enum Direction: 86 | 87 | 4D2C: 01 88 | 4D2D: 01 89 | 4D2E: 02 90 | 4D2F: 00 91 | 4D30: 00 92 | 93 | Current XY Tile: 94 | 95 | 4D31: 36 2C 96 | 4D33: 35 2C 97 | 4D35: 3E 35 98 | 4D37: 3B 3A 99 | 4D39: 3B 39 100 | 101 | 102 | Ghost Direction 103 | 4D3B: 01 104 | 105 | Pac Direction 106 | 4D3C: 03 107 | 108 | 4D3B XOR 0x01 109 | 4D3D: 03 110 | 111 | Ghost Position: 112 | 4D3E: 37 2C 113 | 114 | Perceived Pac-Man Position: 115 | 4D40: 3B 39 116 | -------------------------------------------------------------------------------- /pacman/doc/ram_snapshot/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/doc/ram_snapshot/screenshot.png -------------------------------------------------------------------------------- /pacman/font/ARCADE_R.TTF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/font/ARCADE_R.TTF -------------------------------------------------------------------------------- /pacman/font/FONTLOG.txt: -------------------------------------------------------------------------------- 1 | FONTLOG for the Press Start 2P fonts 2 | 3 | This file provides detailed information on the Press Start 2P Font Software. 4 | This information should be distributed along with the Press Start 2P fonts 5 | and any derivative works. 6 | 7 | 8 | Basic Font Information 9 | 10 | Press Start 2P is a bitmap font based on the font design from 1980s Namco 11 | arcade games. Although the design of uppercase letters and digits dates 12 | back to Atari's "Sprint" (1977), the specific glyph forms in this TrueType 13 | conversion are based on those from "Return of Ishtar" (1986), one of the 14 | first games to include and regularly use lowercase as well as uppercase 15 | letters in its screen font. 16 | 17 | Unlike the original font from the "Return of Ishtar" ROM, Press Start 2P 18 | includes a wide variety of non-ASCII Unicode characters for pan-European 19 | use, including Greek and Cyrillic. 20 | 21 | 22 | ChangeLog 23 | 24 | 15 June 2011 (Cody Boisclair) Press Start 2P version 2.13 25 | - Correct accent marks on U+00D9 Ù and U+00DA Ú 26 | 27 | 13 June 2011 (Cody Boisclair) Press Start 2P version 2.12 28 | - Correct glyph for underscore _ 29 | - Move glyphs for Greek iota one pixel to left 30 | - Fix 'notdef' glyph, whose encoding was broken during last update 31 | 32 | 13 June 2011 (Cody Boisclair) Press Start 2P version 2.11 33 | - Retrace characters from bitmaps to fix glyph width bug 34 | - Add glyphs for Spacing Modifier Letters 35 | - Move U+201E „ one pixel to left, U+201A ‚ one pixel to right 36 | 37 | 13 June 2011 (Cody Boisclair) Press Start 2P version 2.10 38 | - Add Greek and Cyrillic alphabets. 39 | - Redesign U+0138 ĸ to match shape of Greek kappa 40 | - Correct glyph shape for grave accent ` 41 | - Move U+00B7 · down one row to appear more centered 42 | - Modify FONTLOG description to reflect Greek & Cyrillic addition 43 | 44 | 13 June 2011 (Cody Boisclair) Press Start 2P version 2.01 45 | - Correct glyph for @; improve glyphs for © and ® based on original @. 46 | 47 | 12 June 2011 (Cody Boisclair) Press Start 2P version 2.0 48 | - Initial public release. 49 | 50 | 51 | Acknowledgements 52 | 53 | If you make modifications be sure to add your name (N), email (E), 54 | web-address (if you have one) (W) and description (D). 55 | This list is in alphabetical order. 56 | 57 | N: Cody Boisclair ("CodeMan38") 58 | E: cody@zone38.net 59 | W: http://zone38.net/font/ 60 | D: Conversion of glyphs to TrueType; creation of non-ASCII glyphs 61 | 62 | N: "QTQ" 63 | E: [unknown] 64 | W: http://www22.atpages.jp/nbgifan/namco.html 65 | D: Original extraction of glyph bitmaps -------------------------------------------------------------------------------- /pacman/font/PressStart2P.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/font/PressStart2P.ttf -------------------------------------------------------------------------------- /pacman/font/index.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 14 | 15 | 16 | 17 |
18 |
19 | 20 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /pacman/fruit/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Ms. Pac-Man Fruit Paths 3 | 4 | A fruit takes a random path around a maze. It begins by traveling to the center of the maze from any of a given set of preset entrance paths. It continues around the ghost pen once and exits the maze from another given set of preset paths for exiting. 5 | 6 | All reverse-engineering research for this data was done and contributed by [Bart Grantham](http://www.bartgrantham.com). 7 | 8 | ## Original Maps 9 | 10 | Entrances are shown in **green**. Exits are shown in **red**. 11 | 12 | 13 | 14 | ## Generated Maps 15 | 16 | Random fruit paths are created for a procedurally generated map using Dijkstra's Algorithm. This was used in place of the minimum distance direction algorithm used by the ghosts to ensure that the fruit would never get stuck in a loop. 17 | 18 | This method runs Dijkstra's algorithm twice for every map: for entrances and exits, respectively. The single source for the entrance graph starts at tile (15,20), removing the node at (14,20) from the graph to prevent the fruit from reversing direction before rounding the ghost pen. Once the entrance graph is built, it is used to determine the paths to each of the tunnel openings as entrances, which are then reversed so that they start from the tunnel and end at the center. 19 | 20 | Similarly, the exit graphs start at tile (16,20), removing the node at (17,20) from the graph to prevent the fruit from reversing direction after rounding the ghost pen. Once the exit graph is built, it is used to determine the paths to each of the tunnel openings as exits. 21 | 22 | Here is a sample image of the paths built from procedurally generated maps. [View the demo here](http://shaunew.github.com/Pac-Man/fruit/cookie.htm) 23 | 24 | 25 | -------------------------------------------------------------------------------- /pacman/fruit/cookie.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Refresh to generate new maps. 10 | 11 | 12 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /pacman/fruit/cookie_paths.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/fruit/cookie_paths.png -------------------------------------------------------------------------------- /pacman/fruit/mspac.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /pacman/fruit/mspac_paths.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/fruit/mspac_paths.png -------------------------------------------------------------------------------- /pacman/icon/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/icon/favicon.png -------------------------------------------------------------------------------- /pacman/icon/index.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /pacman/icon/ios_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/icon/ios_icon.png -------------------------------------------------------------------------------- /pacman/index.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Pac-Man 5 | 6 | 7 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 36 | 37 | 38 | 39 | 40 |
41 |
Your browser does not support HTML Canvas. Please upgrade!
42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /pacman/index.htm.bak: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Pac-Man 7 | 8 | 9 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
51 |
Your browser does not support HTML Canvas. Please upgrade!
52 | 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /pacman/issues/01: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": "2012-01-27T06:06:27Z", 3 | "milestone": null, 4 | "body": "", 5 | "user": { 6 | "login": "shaunew", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": { 13 | "login": "shaunew", 14 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 15 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 16 | "id": 116838, 17 | "url": "https://api.github.com/users/shaunew" 18 | }, 19 | "created_at": "2012-01-20T15:54:00Z", 20 | "comments": 1, 21 | "assignee": null, 22 | "title": "Which speed pattern is used by the disembodied eyes?", 23 | "html_url": "https://github.com/shaunew/Pac-Man/issues/1", 24 | "number": 1, 25 | "state": "closed", 26 | "updated_at": "2012-01-27T06:06:27Z", 27 | "id": 2912789, 28 | "pull_request": { 29 | "html_url": null, 30 | "patch_url": null, 31 | "diff_url": null 32 | }, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/1" 37 | } 38 | [ 39 | { 40 | "body": "for now, not using any pattern, but just using a constant speed of 2 steps per frame. It looks right", 41 | "user": { 42 | "login": "shaunew", 43 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 44 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-01-25T16:34:52Z", 49 | "updated_at": "2012-01-25T16:34:52Z", 50 | "id": 3653822, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/3653822" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /pacman/issues/03: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": "2012-01-25T11:09:34Z", 3 | "milestone": null, 4 | "body": "The ghosts seem to ignore the tile system when in their home. I need to find the exact coordinates of the three custom y axes in that home, and how far up and down inky and clyde can move.", 5 | "user": { 6 | "login": "shaunew", 7 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 8 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": { 13 | "login": "shaunew", 14 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 15 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 16 | "id": 116838, 17 | "url": "https://api.github.com/users/shaunew" 18 | }, 19 | "created_at": "2012-01-22T21:55:12Z", 20 | "comments": 1, 21 | "assignee": null, 22 | "pull_request": { 23 | "html_url": null, 24 | "patch_url": null, 25 | "diff_url": null 26 | }, 27 | "title": "Ghosts at Home", 28 | "html_url": "https://github.com/shaunew/Pac-Man/issues/3", 29 | "number": 3, 30 | "state": "closed", 31 | "updated_at": "2012-01-25T11:09:34Z", 32 | "id": 2929061, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/3" 37 | } 38 | [ 39 | { 40 | "body": "found them with MAME debugger.", 41 | "user": { 42 | "login": "shaunew", 43 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 44 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-01-25T11:09:34Z", 49 | "updated_at": "2012-01-25T11:09:34Z", 50 | "id": 3648916, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/3648916" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /pacman/issues/04: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": "2012-01-23T08:24:46Z", 3 | "milestone": null, 4 | "body": "Which actors are drawn/updated before others? This is important for layer ordering when an actor is over another.", 5 | "user": { 6 | "login": "shaunew", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": { 13 | "login": "shaunew", 14 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 15 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 16 | "id": 116838, 17 | "url": "https://api.github.com/users/shaunew" 18 | }, 19 | "created_at": "2012-01-22T22:44:09Z", 20 | "comments": 2, 21 | "assignee": null, 22 | "title": "Actor Order", 23 | "html_url": "https://github.com/shaunew/Pac-Man/issues/4", 24 | "number": 4, 25 | "state": "closed", 26 | "updated_at": "2012-01-23T08:24:46Z", 27 | "id": 2929313, 28 | "pull_request": { 29 | "html_url": null, 30 | "patch_url": null, 31 | "diff_url": null 32 | }, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/4" 37 | } 38 | [ 39 | { 40 | "body": "Drawn in this order: pacman, clyde, inky, pinky, blinky", 41 | "user": { 42 | "login": "shaunew", 43 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 44 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-01-23T05:34:46Z", 49 | "updated_at": "2012-01-23T07:42:45Z", 50 | "id": 3609449, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/3609449" 52 | }, 53 | { 54 | "body": "The order is actually reversed when pacman is in energized mode.", 55 | "user": { 56 | "login": "shaunew", 57 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 58 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 59 | "id": 116838, 60 | "url": "https://api.github.com/users/shaunew" 61 | }, 62 | "created_at": "2012-01-23T08:01:03Z", 63 | "updated_at": "2012-01-23T08:01:03Z", 64 | "id": 3610350, 65 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/3610350" 66 | } 67 | ] 68 | -------------------------------------------------------------------------------- /pacman/issues/05: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": "2012-01-27T06:06:17Z", 3 | "milestone": null, 4 | "body": "Using red/green screens for place holders.", 5 | "user": { 6 | "login": "shaunew", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": { 13 | "login": "shaunew", 14 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 15 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 16 | "id": 116838, 17 | "url": "https://api.github.com/users/shaunew" 18 | }, 19 | "created_at": "2012-01-25T11:10:22Z", 20 | "comments": 0, 21 | "assignee": null, 22 | "pull_request": { 23 | "diff_url": null, 24 | "patch_url": null, 25 | "html_url": null 26 | }, 27 | "title": "Create real death/finish states", 28 | "html_url": "https://github.com/shaunew/Pac-Man/issues/5", 29 | "number": 5, 30 | "state": "closed", 31 | "updated_at": "2012-01-27T06:06:17Z", 32 | "id": 2963549, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/5" 37 | } 38 | [ 39 | 40 | ] 41 | -------------------------------------------------------------------------------- /pacman/issues/06: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": "2012-01-27T06:06:05Z", 3 | "milestone": null, 4 | "body": "I think it has to do with how I'm incrementing the targetCount. Perhaps it should increment even when inside in the home. That could explain why the ghosts seem to turn around pretty soon after exiting home.", 5 | "user": { 6 | "login": "shaunew", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": { 13 | "login": "shaunew", 14 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 15 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 16 | "id": 116838, 17 | "url": "https://api.github.com/users/shaunew" 18 | }, 19 | "created_at": "2012-01-25T11:12:47Z", 20 | "comments": 1, 21 | "assignee": null, 22 | "pull_request": { 23 | "diff_url": null, 24 | "patch_url": null, 25 | "html_url": null 26 | }, 27 | "title": "Inky and Clyde don't act like they do in the arcade when exiting home", 28 | "html_url": "https://github.com/shaunew/Pac-Man/issues/6", 29 | "number": 6, 30 | "state": "closed", 31 | "updated_at": "2012-01-27T06:06:05Z", 32 | "id": 2963568, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/6" 37 | } 38 | [ 39 | { 40 | "body": "I was using a separate target timer for each ghost. They're supposed to share.", 41 | "user": { 42 | "login": "shaunew", 43 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 44 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-01-27T06:06:05Z", 49 | "updated_at": "2012-01-27T06:06:05Z", 50 | "id": 3682519, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/3682519" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /pacman/issues/07: -------------------------------------------------------------------------------- 1 | { 2 | "milestone": null, 3 | "body": "", 4 | "user": { 5 | "login": "shaunew", 6 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "id": 116838, 9 | "url": "https://api.github.com/users/shaunew" 10 | }, 11 | "pull_request": { 12 | "diff_url": null, 13 | "html_url": null, 14 | "patch_url": null 15 | }, 16 | "closed_at": "2012-01-30T10:28:07Z", 17 | "created_at": "2012-01-25T11:15:21Z", 18 | "comments": 2, 19 | "assignee": null, 20 | "closed_by": { 21 | "login": "shaunew", 22 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 23 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 24 | "id": 116838, 25 | "url": "https://api.github.com/users/shaunew" 26 | }, 27 | "title": "Make ghosts flash before coming back from scared", 28 | "number": 7, 29 | "state": "closed", 30 | "html_url": "https://github.com/shaunew/Pac-Man/issues/7", 31 | "updated_at": "2012-01-30T10:28:07Z", 32 | "id": 2963594, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/7" 37 | } 38 | [ 39 | { 40 | "body": "maybe make them slowly fade from blue to their original color instead?", 41 | "user": { 42 | "login": "shaunew", 43 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 44 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-01-27T09:10:42Z", 49 | "updated_at": "2012-01-27T09:10:42Z", 50 | "id": 3683954, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/3683954" 52 | }, 53 | { 54 | "body": "Jamey Pittman informed me that the ghost color changes every 14 frames near the end of the frightened mode.", 55 | "user": { 56 | "login": "shaunew", 57 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 58 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 59 | "id": 116838, 60 | "url": "https://api.github.com/users/shaunew" 61 | }, 62 | "created_at": "2012-01-30T10:28:07Z", 63 | "updated_at": "2012-01-30T10:28:07Z", 64 | "id": 3717364, 65 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/3717364" 66 | } 67 | ] 68 | -------------------------------------------------------------------------------- /pacman/issues/08: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": "2012-01-27T09:09:41Z", 3 | "milestone": null, 4 | "body": "", 5 | "user": { 6 | "login": "shaunew", 7 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 8 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": { 13 | "login": "shaunew", 14 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 15 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 16 | "id": 116838, 17 | "url": "https://api.github.com/users/shaunew" 18 | }, 19 | "created_at": "2012-01-25T11:15:38Z", 20 | "comments": 1, 21 | "assignee": null, 22 | "pull_request": { 23 | "html_url": null, 24 | "patch_url": null, 25 | "diff_url": null 26 | }, 27 | "title": "make energizers blink", 28 | "html_url": "https://github.com/shaunew/Pac-Man/issues/8", 29 | "number": 8, 30 | "state": "closed", 31 | "updated_at": "2012-01-27T09:09:41Z", 32 | "id": 2963595, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/8" 37 | } 38 | [ 39 | { 40 | "body": "I tried to make it work, but it looked to busy on the screen. Increasing their size by a couple pixels helped make them stick out more, and it fits the minimalist theme better.", 41 | "user": { 42 | "login": "shaunew", 43 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 44 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-01-27T09:09:41Z", 49 | "updated_at": "2012-01-27T09:09:41Z", 50 | "id": 3683942, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/3683942" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /pacman/issues/09: -------------------------------------------------------------------------------- 1 | { 2 | "pull_request": { 3 | "html_url": null, 4 | "patch_url": null, 5 | "diff_url": null 6 | }, 7 | "closed_at": "2012-01-27T06:05:20Z", 8 | "milestone": null, 9 | "body": "I walked over it a few times, but it didn't die until it hit some wall away from where I was, then it proceeded to go home and revive.", 10 | "user": { 11 | "login": "shaunew", 12 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 13 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 14 | "id": 116838, 15 | "url": "https://api.github.com/users/shaunew" 16 | }, 17 | "closed_by": { 18 | "login": "shaunew", 19 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 20 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 21 | "id": 116838, 22 | "url": "https://api.github.com/users/shaunew" 23 | }, 24 | "created_at": "2012-01-25T11:18:13Z", 25 | "comments": 1, 26 | "assignee": null, 27 | "title": "encountered strange scared ghost bug", 28 | "html_url": "https://github.com/shaunew/Pac-Man/issues/9", 29 | "number": 9, 30 | "state": "closed", 31 | "updated_at": "2012-01-27T06:05:20Z", 32 | "id": 2963630, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/9" 37 | } 38 | [ 39 | { 40 | "body": "might have been a result of the double scare ghost bug that I think I fixed. It keeps from scaring ghosts that are already dead and going back home.", 41 | "user": { 42 | "login": "shaunew", 43 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 44 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-01-25T16:24:48Z", 49 | "updated_at": "2012-01-25T16:24:48Z", 50 | "id": 3653615, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/3653615" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /pacman/issues/10: -------------------------------------------------------------------------------- 1 | { 2 | "milestone": null, 3 | "body": "just create a state table in html that we can update from the game. motivation is to debug inky and clyde's timer to reproduce same motion paths from the game.", 4 | "user": { 5 | "login": "shaunew", 6 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "id": 116838, 9 | "url": "https://api.github.com/users/shaunew" 10 | }, 11 | "pull_request": { 12 | "diff_url": null, 13 | "html_url": null, 14 | "patch_url": null 15 | }, 16 | "closed_at": "2012-08-15T19:18:10Z", 17 | "created_at": "2012-01-25T16:36:45Z", 18 | "comments": 1, 19 | "assignee": null, 20 | "closed_by": { 21 | "login": "shaunew", 22 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 23 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 24 | "id": 116838, 25 | "url": "https://api.github.com/users/shaunew" 26 | }, 27 | "title": "Create a state table for debugging", 28 | "number": 10, 29 | "state": "closed", 30 | "html_url": "https://github.com/shaunew/Pac-Man/issues/10", 31 | "updated_at": "2012-08-15T19:18:10Z", 32 | "id": 2967421, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/10" 37 | } 38 | [ 39 | { 40 | "body": "To keep a dynamic table of debug values, we can expect the main page to have a div tag with id=\"pacman-debug-table\". We then write a function to generate an html table and set our div element's innerHtml property to that table. In this table, each cell will contain a span tag for its appropriate data to be updated by changing its innerHtml property.\r\n\r\nThis is a way to decouple the table from the main game code and the display page.", 41 | "user": { 42 | "login": "shaunew", 43 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 44 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-01-28T04:31:35Z", 49 | "updated_at": "2012-01-28T04:31:35Z", 50 | "id": 3698182, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/3698182" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /pacman/issues/11: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": "2012-08-15T19:20:44Z", 3 | "milestone": null, 4 | "body": "", 5 | "user": { 6 | "login": "shaunew", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": { 13 | "login": "shaunew", 14 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 15 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 16 | "id": 116838, 17 | "url": "https://api.github.com/users/shaunew" 18 | }, 19 | "created_at": "2012-01-30T03:27:00Z", 20 | "comments": 0, 21 | "assignee": null, 22 | "title": "Create sandbox AI mode to allow user to edit ghost/pacman targetting schemes", 23 | "html_url": "https://github.com/shaunew/Pac-Man/issues/11", 24 | "number": 11, 25 | "state": "closed", 26 | "updated_at": "2012-08-15T19:20:44Z", 27 | "id": 3015645, 28 | "pull_request": { 29 | "html_url": null, 30 | "patch_url": null, 31 | "diff_url": null 32 | }, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/11" 37 | } 38 | [ 39 | 40 | ] 41 | -------------------------------------------------------------------------------- /pacman/issues/12: -------------------------------------------------------------------------------- 1 | { 2 | "milestone": null, 3 | "body": "http://www.html5rocks.com/en/tutorials/canvas/performance/", 4 | "user": { 5 | "login": "shaunew", 6 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "id": 116838, 9 | "url": "https://api.github.com/users/shaunew" 10 | }, 11 | "closed_at": "2012-01-31T11:20:23Z", 12 | "created_at": "2012-01-30T10:31:41Z", 13 | "comments": 1, 14 | "assignee": null, 15 | "closed_by": { 16 | "login": "shaunew", 17 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 18 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 19 | "id": 116838, 20 | "url": "https://api.github.com/users/shaunew" 21 | }, 22 | "title": "Optimize drawing for performance", 23 | "pull_request": { 24 | "patch_url": null, 25 | "html_url": null, 26 | "diff_url": null 27 | }, 28 | "number": 12, 29 | "state": "closed", 30 | "html_url": "https://github.com/shaunew/Pac-Man/issues/12", 31 | "updated_at": "2012-01-31T11:20:26Z", 32 | "id": 3018620, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/12" 37 | } 38 | [ 39 | { 40 | "body": "added background canvas and erased tiles as pacman ate pellets. Blit the background at every frame", 41 | "user": { 42 | "login": "shaunew", 43 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 44 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-01-31T11:20:26Z", 49 | "updated_at": "2012-01-31T11:20:26Z", 50 | "id": 3737245, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/3737245" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /pacman/issues/13: -------------------------------------------------------------------------------- 1 | { 2 | "milestone": null, 3 | "body": "this seems to happen more often than it should.", 4 | "user": { 5 | "login": "shaunew", 6 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "id": 116838, 9 | "url": "https://api.github.com/users/shaunew" 10 | }, 11 | "closed_at": "2012-02-06T19:42:34Z", 12 | "created_at": "2012-01-30T10:32:33Z", 13 | "comments": 1, 14 | "assignee": null, 15 | "closed_by": { 16 | "login": "shaunew", 17 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 18 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 19 | "id": 116838, 20 | "url": "https://api.github.com/users/shaunew" 21 | }, 22 | "title": "investigate pacman going through ghosts", 23 | "number": 13, 24 | "state": "closed", 25 | "pull_request": { 26 | "patch_url": null, 27 | "diff_url": null, 28 | "html_url": null 29 | }, 30 | "html_url": "https://github.com/shaunew/Pac-Man/issues/13", 31 | "updated_at": "2012-02-06T19:42:34Z", 32 | "id": 3018632, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/13" 37 | } 38 | [ 39 | { 40 | "body": "Since actors will take a certain amount of steps every frame, we make them sychronize each step. After one steps is taken by all the actors who need to take one, collision will be tested. If there is a collision, we stop all stepping even if there are some left to be taken. This is probably how the original game handled it. I added a speed hack to pacman to test this new collision detection.", 41 | "user": { 42 | "login": "shaunew", 43 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 44 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-02-06T19:42:33Z", 49 | "updated_at": "2012-02-06T19:42:33Z", 50 | "id": 3835259, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/3835259" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /pacman/issues/14: -------------------------------------------------------------------------------- 1 | { 2 | "milestone": null, 3 | "body": "from an email exchange with Jamey Pittman:\r\n\r\n\"As for how the original game guides Pac-Man in demo/attract mode, it works like this:\r\n\r\nPac-Man operates in one of two possible pathfinding modes during the demo game. Let's call the first one \"Run Away From Pinky\" mode. In this mode, the code measures the distance from the pink ghost to Pac-Man and then doubles it to find his final target (see attached .jpg for an example). Imagine drawing a line from Pinky to Pac-Man and then continuing the line out that far again beyond Pac-Man. Whatever tile that extended line ends up in is Pac-Man's target tile. This results in Pac-Man making turns that keep him as far away from Pinky as possible more often than not.\r\n \r\nThe second mode of behavior does just the opposite and we'll call it \"Get Pinky\" mode. This mode is much simpler and uses Pinky's current tile as Pac-Man's target.\r\n \r\nWhich mode of targeting Pac-Man uses is based on the state of one ghost in particular. Oddly enough, the ghost state evaluated by the code is NOT Pinky but Blinky (red)! Anytime Blinky is not dead (i.e., eyes going back home) or frightened, Pac-Man uses the \"Run Away From Pinky\" mode for targeting. Whenever Blinky is either frightened or dead, however, Pac-Man switches to \"Get Pinky\" mode until Blinky returns to normal. Watch the attract/demo mode a few times with these two modes of behavior in mind and you'll see it working just as described. It's a very simple scheme but effective.\"", 4 | "user": { 5 | "login": "shaunew", 6 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "id": 116838, 9 | "url": "https://api.github.com/users/shaunew" 10 | }, 11 | "closed_at": "2012-02-09T09:28:22Z", 12 | "created_at": "2012-01-30T10:34:19Z", 13 | "comments": 0, 14 | "assignee": null, 15 | "closed_by": { 16 | "login": "shaunew", 17 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 18 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 19 | "id": 116838, 20 | "url": "https://api.github.com/users/shaunew" 21 | }, 22 | "title": "add attract mode - pacman's AI", 23 | "number": 14, 24 | "state": "closed", 25 | "pull_request": { 26 | "patch_url": null, 27 | "diff_url": null, 28 | "html_url": null 29 | }, 30 | "html_url": "https://github.com/shaunew/Pac-Man/issues/14", 31 | "updated_at": "2012-02-09T09:28:22Z", 32 | "id": 3018646, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/14" 37 | } 38 | [ 39 | 40 | ] 41 | -------------------------------------------------------------------------------- /pacman/issues/15: -------------------------------------------------------------------------------- 1 | { 2 | "pull_request": { 3 | "html_url": null, 4 | "patch_url": null, 5 | "diff_url": null 6 | }, 7 | "closed_at": "2012-01-30T15:18:50Z", 8 | "milestone": null, 9 | "body": "from the Pac-Man Dossier:\r\n\r\n\"Determining when Blinky turns into Elroy can become more complicated if Pac-Man is killed. The ghosts and Pac-Man are reset to their starting positions whenever a life is lost and, when play continues, Blinky's “Cruise Elroy” abilities are temporarily suspended until the orange ghost (Clyde) stops bouncing up and down inside the ghost house and moves toward the door to exit. Until this happens, Blinky's speed and scatter behavior will remain normal regardless of the number of dots remaining in the maze. Once this temporary restriction is lifted, however, Blinky will resume changing his behavior based on the dot count.\"", 10 | "user": { 11 | "login": "shaunew", 12 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 13 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 14 | "id": 116838, 15 | "url": "https://api.github.com/users/shaunew" 16 | }, 17 | "closed_by": { 18 | "login": "shaunew", 19 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 20 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 21 | "id": 116838, 22 | "url": "https://api.github.com/users/shaunew" 23 | }, 24 | "created_at": "2012-01-30T10:46:35Z", 25 | "comments": 0, 26 | "assignee": null, 27 | "title": "add extra elroy condition", 28 | "html_url": "https://github.com/shaunew/Pac-Man/issues/15", 29 | "number": 15, 30 | "state": "closed", 31 | "updated_at": "2012-01-30T15:18:50Z", 32 | "id": 3018771, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/15" 37 | } 38 | [ 39 | 40 | ] 41 | -------------------------------------------------------------------------------- /pacman/issues/16: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": "2012-07-16T17:17:29Z", 3 | "milestone": null, 4 | "body": "", 5 | "user": { 6 | "login": "shaunew", 7 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 8 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": { 13 | "login": "shaunew", 14 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 15 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 16 | "id": 116838, 17 | "url": "https://api.github.com/users/shaunew" 18 | }, 19 | "created_at": "2012-02-04T03:27:54Z", 20 | "comments": 1, 21 | "assignee": null, 22 | "pull_request": { 23 | "html_url": null, 24 | "patch_url": null, 25 | "diff_url": null 26 | }, 27 | "title": "Turn level indicator into tally", 28 | "html_url": "https://github.com/shaunew/Pac-Man/issues/16", 29 | "number": 16, 30 | "state": "closed", 31 | "updated_at": "2012-07-16T17:17:29Z", 32 | "id": 3091790, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/16" 37 | } 38 | [ 39 | { 40 | "created_at": "2012-07-16T17:17:29Z", 41 | "updated_at": "2012-07-16T17:17:29Z", 42 | "body": "I removed the level indicator with the original fruit design. I'm currently only displaying the last 6 fruit.\n\nHave to decide where to include the level number if anywhere (not included in original arcade).", 43 | "user": { 44 | "login": "shaunew", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew", 47 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 48 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png" 49 | }, 50 | "id": 7012498, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/7012498" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /pacman/issues/17: -------------------------------------------------------------------------------- 1 | { 2 | "pull_request": { 3 | "html_url": null, 4 | "patch_url": null, 5 | "diff_url": null 6 | }, 7 | "closed_at": "2012-02-09T09:28:08Z", 8 | "milestone": null, 9 | "body": "", 10 | "user": { 11 | "login": "shaunew", 12 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 13 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 14 | "id": 116838, 15 | "url": "https://api.github.com/users/shaunew" 16 | }, 17 | "closed_by": { 18 | "login": "shaunew", 19 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 20 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 21 | "id": 116838, 22 | "url": "https://api.github.com/users/shaunew" 23 | }, 24 | "created_at": "2012-02-04T03:28:57Z", 25 | "comments": 0, 26 | "assignee": null, 27 | "title": "Add target visualization for ghosts", 28 | "html_url": "https://github.com/shaunew/Pac-Man/issues/17", 29 | "number": 17, 30 | "state": "closed", 31 | "updated_at": "2012-02-09T09:28:08Z", 32 | "id": 3091792, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/17" 37 | } 38 | [ 39 | 40 | ] 41 | -------------------------------------------------------------------------------- /pacman/issues/18: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": "2012-02-06T07:19:56Z", 3 | "milestone": null, 4 | "body": "", 5 | "user": { 6 | "login": "shaunew", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": { 13 | "login": "shaunew", 14 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 15 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 16 | "id": 116838, 17 | "url": "https://api.github.com/users/shaunew" 18 | }, 19 | "created_at": "2012-02-04T03:46:54Z", 20 | "comments": 0, 21 | "assignee": null, 22 | "pull_request": { 23 | "diff_url": null, 24 | "patch_url": null, 25 | "html_url": null 26 | }, 27 | "title": "create simple title screen", 28 | "html_url": "https://github.com/shaunew/Pac-Man/issues/18", 29 | "number": 18, 30 | "state": "closed", 31 | "updated_at": "2012-02-06T07:19:56Z", 32 | "id": 3091836, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/18" 37 | } 38 | [ 39 | 40 | ] 41 | -------------------------------------------------------------------------------- /pacman/issues/19: -------------------------------------------------------------------------------- 1 | { 2 | "pull_request": { 3 | "html_url": null, 4 | "patch_url": null, 5 | "diff_url": null 6 | }, 7 | "closed_at": "2012-08-15T19:20:35Z", 8 | "milestone": null, 9 | "body": "The original Pac-Man was deterministic in that it reset the pseudo random number generator seed at the start of every level.", 10 | "user": { 11 | "login": "shaunew", 12 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 13 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 14 | "id": 116838, 15 | "url": "https://api.github.com/users/shaunew" 16 | }, 17 | "closed_by": { 18 | "login": "shaunew", 19 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 20 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 21 | "id": 116838, 22 | "url": "https://api.github.com/users/shaunew" 23 | }, 24 | "created_at": "2012-02-06T19:47:03Z", 25 | "comments": 3, 26 | "assignee": null, 27 | "title": "Add a seeded random generator", 28 | "html_url": "https://github.com/shaunew/Pac-Man/issues/19", 29 | "number": 19, 30 | "state": "closed", 31 | "updated_at": "2012-08-15T19:20:35Z", 32 | "id": 3113332, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/19" 37 | } 38 | [ 39 | { 40 | "body": "This could be useful for game replays.", 41 | "user": { 42 | "login": "shaunew", 43 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 44 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-02-09T09:28:59Z", 49 | "updated_at": "2012-02-09T09:28:59Z", 50 | "id": 3884474, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/3884474" 52 | }, 53 | { 54 | "body": "Make deterministic ghost behavior an option for allowing patterns.", 55 | "user": { 56 | "login": "shaunew", 57 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 58 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 59 | "id": 116838, 60 | "url": "https://api.github.com/users/shaunew" 61 | }, 62 | "created_at": "2012-02-27T04:15:55Z", 63 | "updated_at": "2012-02-27T04:15:55Z", 64 | "id": 4187777, 65 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/4187777" 66 | }, 67 | { 68 | "body": "This post has some useful resources on PRNGs in javascript: http://stackoverflow.com/questions/424292/how-to-create-my-own-javascript-random-number-generator-that-i-can-also-set-the", 69 | "user": { 70 | "login": "shaunew", 71 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 72 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 73 | "id": 116838, 74 | "url": "https://api.github.com/users/shaunew" 75 | }, 76 | "created_at": "2012-07-16T17:19:20Z", 77 | "updated_at": "2012-07-16T17:19:20Z", 78 | "id": 7012542, 79 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/7012542" 80 | } 81 | ] 82 | -------------------------------------------------------------------------------- /pacman/issues/20: -------------------------------------------------------------------------------- 1 | { 2 | "milestone": null, 3 | "body": "Some thoughts:\r\n\r\n1. the map is wrapped around a cylinder, explaining the tunnel portals.\r\n2. 1D projection of pacman's panoramic perspective\r\n3. fixed camera that rotates with pacman\r\n4. loose rotating camera", 4 | "user": { 5 | "login": "shaunew", 6 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "id": 116838, 9 | "url": "https://api.github.com/users/shaunew" 10 | }, 11 | "pull_request": { 12 | "diff_url": null, 13 | "html_url": null, 14 | "patch_url": null 15 | }, 16 | "closed_at": "2012-08-15T19:17:23Z", 17 | "created_at": "2012-02-13T07:14:25Z", 18 | "comments": 0, 19 | "assignee": null, 20 | "closed_by": { 21 | "login": "shaunew", 22 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 23 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 24 | "id": 116838, 25 | "url": "https://api.github.com/users/shaunew" 26 | }, 27 | "title": "Add experimental 3D renderers", 28 | "number": 20, 29 | "state": "closed", 30 | "html_url": "https://github.com/shaunew/Pac-Man/issues/20", 31 | "updated_at": "2012-08-15T19:17:23Z", 32 | "id": 3196649, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/20" 37 | } 38 | [ 39 | 40 | ] 41 | -------------------------------------------------------------------------------- /pacman/issues/21: -------------------------------------------------------------------------------- 1 | { 2 | "milestone": null, 3 | "body": "Looking for an attractive pixel glow to add to the minimal renderer. Possibly some scanline filter as well.", 4 | "user": { 5 | "login": "shaunew", 6 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "id": 116838, 9 | "url": "https://api.github.com/users/shaunew" 10 | }, 11 | "closed_at": "2012-08-15T19:20:00Z", 12 | "created_at": "2012-02-13T07:16:51Z", 13 | "comments": 1, 14 | "assignee": null, 15 | "closed_by": { 16 | "login": "shaunew", 17 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 18 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 19 | "id": 116838, 20 | "url": "https://api.github.com/users/shaunew" 21 | }, 22 | "title": "Add pixel bloom to minimal renderer", 23 | "number": 21, 24 | "state": "closed", 25 | "pull_request": { 26 | "patch_url": null, 27 | "diff_url": null, 28 | "html_url": null 29 | }, 30 | "html_url": "https://github.com/shaunew/Pac-Man/issues/21", 31 | "updated_at": "2012-08-15T19:20:00Z", 32 | "id": 3196667, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/21" 37 | } 38 | [ 39 | { 40 | "body": "http://stackoverflow.com/a/4941300", 41 | "user": { 42 | "login": "shaunew", 43 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 44 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-02-13T07:58:11Z", 49 | "updated_at": "2012-02-13T07:58:11Z", 50 | "id": 3935742, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/3935742" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /pacman/issues/23: -------------------------------------------------------------------------------- 1 | { 2 | "created_at": "2012-02-13T19:11:43Z", 3 | "comments": 1, 4 | "html_url": "https://github.com/shaunew/Pac-Man/issues/23", 5 | "title": "Add alternate visual themes", 6 | "number": 23, 7 | "milestone": null, 8 | "state": "closed", 9 | "updated_at": "2012-08-15T19:20:12Z", 10 | "closed_at": "2012-08-15T19:20:12Z", 11 | "labels": [ 12 | 13 | ], 14 | "assignee": null, 15 | "closed_by": { 16 | "login": "shaunew", 17 | "id": 116838, 18 | "url": "https://api.github.com/users/shaunew", 19 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 20 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png" 21 | }, 22 | "body": "\nGhosts redone:\nhttp://www.reddit.com/r/PixelArt/comments/pnjc6/so_i_finished_the_pacman_ghosts_here_they_are/\n\nChomp from Super Mario World 2:\nhttp://www.spriters-resource.com/snes/yoshiisland/sheet/4810\n\nDifferent ghosts (one from mario might work well):\nhttp://www.flickr.com/photos/dashcoleman/5344061466/in/faves-infinitecontinues/\n\nCookie Monster as Pac-Man:\nhttp://www.threadless.com/product/2362/Cookies", 23 | "user": { 24 | "login": "shaunew", 25 | "id": 116838, 26 | "url": "https://api.github.com/users/shaunew", 27 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 28 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png" 29 | }, 30 | "pull_request": { 31 | "patch_url": null, 32 | "diff_url": null, 33 | "html_url": null 34 | }, 35 | "id": 3207319, 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/23" 37 | } 38 | [ 39 | { 40 | "body": "watercolor art:\nhttp://www.reddit.com/r/gaming/comments/x6nsv/pacman_pets_a_digital_painting_i_just_finished/", 41 | "user": { 42 | "login": "shaunew", 43 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 44 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-07-27T02:42:58Z", 49 | "updated_at": "2012-07-27T02:42:58Z", 50 | "id": 7296299, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/7296299" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /pacman/issues/24: -------------------------------------------------------------------------------- 1 | { 2 | "pull_request": { 3 | "html_url": null, 4 | "patch_url": null, 5 | "diff_url": null 6 | }, 7 | "closed_at": "2012-02-23T02:53:06Z", 8 | "milestone": null, 9 | "body": "", 10 | "user": { 11 | "login": "shaunew", 12 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 13 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 14 | "id": 116838, 15 | "url": "https://api.github.com/users/shaunew" 16 | }, 17 | "closed_by": { 18 | "login": "shaunew", 19 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 20 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 21 | "id": 116838, 22 | "url": "https://api.github.com/users/shaunew" 23 | }, 24 | "created_at": "2012-02-15T19:37:42Z", 25 | "comments": 2, 26 | "assignee": null, 27 | "title": "Convert to Coffeescript", 28 | "html_url": "https://github.com/shaunew/Pac-Man/issues/24", 29 | "number": 24, 30 | "state": "closed", 31 | "updated_at": "2012-02-23T02:53:06Z", 32 | "id": 3240495, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/24" 37 | } 38 | [ 39 | { 40 | "body": "http://pragprog.com/magazines/2011-05/a-coffeescript-intervention", 41 | "user": { 42 | "login": "shaunew", 43 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 44 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-02-15T19:42:03Z", 49 | "updated_at": "2012-02-15T19:42:03Z", 50 | "id": 3987389, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/3987389" 52 | }, 53 | { 54 | "body": "I ported most of it, but grew tired of debugging it. Also, as succinct as coffeescript is, I feel like I'm hiding what I'm doing with some implicit things that the language does. I feel like javascript is clearer and easier to debug. Coffeescript is great, but I don't want to use it for this project anymore.", 55 | "user": { 56 | "login": "shaunew", 57 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 58 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 59 | "id": 116838, 60 | "url": "https://api.github.com/users/shaunew" 61 | }, 62 | "created_at": "2012-02-23T02:53:06Z", 63 | "updated_at": "2012-02-23T02:53:06Z", 64 | "id": 4129814, 65 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/4129814" 66 | } 67 | ] 68 | -------------------------------------------------------------------------------- /pacman/issues/25: -------------------------------------------------------------------------------- 1 | { 2 | "milestone": null, 3 | "body": "sometimes when dying, one may wish to rewind after realizing they could have avoided death by predicting the ghosts behavior better. Implementing a rewind button will require better state management and understanding in the code, but will benefit as a useful learning tool.", 4 | "user": { 5 | "login": "shaunew", 6 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "id": 116838, 9 | "url": "https://api.github.com/users/shaunew" 10 | }, 11 | "closed_at": "2012-07-10T15:36:36Z", 12 | "created_at": "2012-02-22T18:33:08Z", 13 | "comments": 1, 14 | "assignee": null, 15 | "closed_by": { 16 | "login": "shaunew", 17 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 18 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 19 | "id": 116838, 20 | "url": "https://api.github.com/users/shaunew" 21 | }, 22 | "title": "implement rewind", 23 | "pull_request": { 24 | "patch_url": null, 25 | "html_url": null, 26 | "diff_url": null 27 | }, 28 | "number": 25, 29 | "state": "closed", 30 | "html_url": "https://github.com/shaunew/Pac-Man/issues/25", 31 | "updated_at": "2012-07-10T15:36:36Z", 32 | "id": 3339429, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/25" 37 | } 38 | [ 39 | { 40 | "body": "this is done via a braid control scheme. it only records 15 seconds because the state is recorded 60 times a second.", 41 | "user": { 42 | "login": "shaunew", 43 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 44 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-07-10T15:36:27Z", 49 | "updated_at": "2012-07-10T15:36:27Z", 50 | "id": 6879070, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/6879070" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /pacman/issues/26: -------------------------------------------------------------------------------- 1 | { 2 | "milestone": null, 3 | "body": "Could be useful for knowing when things are happening, for learning and debugging.", 4 | "user": { 5 | "login": "shaunew", 6 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "id": 116838, 9 | "url": "https://api.github.com/users/shaunew" 10 | }, 11 | "closed_at": "2012-08-15T19:18:55Z", 12 | "created_at": "2012-02-27T04:18:32Z", 13 | "comments": 0, 14 | "assignee": null, 15 | "closed_by": { 16 | "login": "shaunew", 17 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 18 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 19 | "id": 116838, 20 | "url": "https://api.github.com/users/shaunew" 21 | }, 22 | "title": "Add message log for tracking game events", 23 | "pull_request": { 24 | "patch_url": null, 25 | "html_url": null, 26 | "diff_url": null 27 | }, 28 | "number": 26, 29 | "state": "closed", 30 | "html_url": "https://github.com/shaunew/Pac-Man/issues/26", 31 | "updated_at": "2012-08-15T19:18:55Z", 32 | "id": 3395870, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/26" 37 | } 38 | [ 39 | 40 | ] 41 | -------------------------------------------------------------------------------- /pacman/issues/27: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": "2012-06-22T20:37:46Z", 3 | "milestone": null, 4 | "body": "Perhaps add a div element in the table to display a description for the currently selected option.", 5 | "user": { 6 | "login": "shaunew", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": { 13 | "login": "shaunew", 14 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 15 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 16 | "id": 116838, 17 | "url": "https://api.github.com/users/shaunew" 18 | }, 19 | "created_at": "2012-02-27T04:19:24Z", 20 | "comments": 1, 21 | "assignee": null, 22 | "title": "Display help message when hovering over options", 23 | "html_url": "https://github.com/shaunew/Pac-Man/issues/27", 24 | "number": 27, 25 | "state": "closed", 26 | "updated_at": "2012-06-22T20:37:46Z", 27 | "id": 3395875, 28 | "pull_request": { 29 | "html_url": null, 30 | "patch_url": null, 31 | "diff_url": null 32 | }, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/27" 37 | } 38 | [ 39 | { 40 | "body": "Option window has been hidden. Will be implementing an option overlay menu instead.", 41 | "user": { 42 | "login": "shaunew", 43 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 44 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-06-22T20:37:46Z", 49 | "updated_at": "2012-06-22T20:37:46Z", 50 | "id": 6517656, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/6517656" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /pacman/issues/28: -------------------------------------------------------------------------------- 1 | { 2 | "pull_request": { 3 | "html_url": null, 4 | "patch_url": null, 5 | "diff_url": null 6 | }, 7 | "closed_at": "2012-08-14T20:01:28Z", 8 | "milestone": null, 9 | "body": "Game mode:\r\n\r\n- scoring\r\n- no game speed manipulation\r\n- predefined progression of levels\r\n\r\nPractice mode:\r\n\r\n- no extra man display\r\n- no scoring (display \"practice\" where score would appear)\r\n- set the current level (actor speeds and timers)\r\n- jump to another map", 10 | "user": { 11 | "login": "shaunew", 12 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 13 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 14 | "id": 116838, 15 | "url": "https://api.github.com/users/shaunew" 16 | }, 17 | "closed_by": { 18 | "login": "shaunew", 19 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 20 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 21 | "id": 116838, 22 | "url": "https://api.github.com/users/shaunew" 23 | }, 24 | "created_at": "2012-02-27T06:59:33Z", 25 | "comments": 1, 26 | "assignee": null, 27 | "title": "Separate game mode from practice mode", 28 | "html_url": "https://github.com/shaunew/Pac-Man/issues/28", 29 | "number": 28, 30 | "state": "closed", 31 | "updated_at": "2012-08-14T20:01:28Z", 32 | "id": 3396811, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/28" 37 | } 38 | [ 39 | { 40 | "created_at": "2012-08-05T15:53:44Z", 41 | "updated_at": "2012-08-05T15:53:44Z", 42 | "body": "After implementing this, then we can trust the score of the player to be non-tool-assisted, and we can start commiting high scores via localStorage.", 43 | "user": { 44 | "login": "shaunew", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew", 47 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 48 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png" 49 | }, 50 | "id": 7510847, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/7510847" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /pacman/issues/30: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": "2012-08-15T19:19:05Z", 3 | "milestone": null, 4 | "body": "Draw future steps of an actor if its target remains stationary. We will stop drawing steps if we hit a cycle or reach a target.", 5 | "user": { 6 | "login": "shaunew", 7 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 8 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": { 13 | "login": "shaunew", 14 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 15 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 16 | "id": 116838, 17 | "url": "https://api.github.com/users/shaunew" 18 | }, 19 | "created_at": "2012-02-27T21:59:18Z", 20 | "comments": 1, 21 | "assignee": null, 22 | "pull_request": { 23 | "html_url": null, 24 | "patch_url": null, 25 | "diff_url": null 26 | }, 27 | "title": "Add draw future path option for each actor", 28 | "html_url": "https://github.com/shaunew/Pac-Man/issues/30", 29 | "number": 30, 30 | "state": "closed", 31 | "updated_at": "2012-08-15T19:19:05Z", 32 | "id": 3409249, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/30" 37 | } 38 | [ 39 | { 40 | "body": "Paths are little jumpy for inky and clyde. Inky's path predictor should actively update target depending on where blinky will be. Clyde's path should actively update target depending on pacman's current location.", 41 | "user": { 42 | "login": "shaunew", 43 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 44 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-02-28T10:43:08Z", 49 | "updated_at": "2012-02-28T10:43:08Z", 50 | "id": 4213332, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/4213332" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /pacman/issues/31: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": "2012-06-22T20:38:38Z", 3 | "milestone": null, 4 | "body": "maybe create an alternate interface to this website using this pacman version", 5 | "user": { 6 | "login": "shaunew", 7 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 8 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": { 13 | "login": "shaunew", 14 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 15 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 16 | "id": 116838, 17 | "url": "https://api.github.com/users/shaunew" 18 | }, 19 | "created_at": "2012-03-03T13:54:57Z", 20 | "comments": 0, 21 | "assignee": null, 22 | "pull_request": { 23 | "html_url": null, 24 | "patch_url": null, 25 | "diff_url": null 26 | }, 27 | "title": "scrape mazes from World's Biggest Pac-Man", 28 | "html_url": "https://github.com/shaunew/Pac-Man/issues/31", 29 | "number": 31, 30 | "state": "closed", 31 | "updated_at": "2012-06-22T20:38:38Z", 32 | "id": 3489637, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/31" 37 | } 38 | [ 39 | 40 | ] 41 | -------------------------------------------------------------------------------- /pacman/issues/32: -------------------------------------------------------------------------------- 1 | { 2 | "milestone": null, 3 | "body": "", 4 | "user": { 5 | "login": "shaunew", 6 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "id": 116838, 9 | "url": "https://api.github.com/users/shaunew" 10 | }, 11 | "pull_request": { 12 | "diff_url": null, 13 | "html_url": null, 14 | "patch_url": null 15 | }, 16 | "closed_at": "2012-07-25T16:23:44Z", 17 | "created_at": "2012-03-03T14:01:00Z", 18 | "comments": 1, 19 | "assignee": null, 20 | "closed_by": { 21 | "login": "shaunew", 22 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 23 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 24 | "id": 116838, 25 | "url": "https://api.github.com/users/shaunew" 26 | }, 27 | "title": "Make Resizable canvas", 28 | "number": 32, 29 | "state": "closed", 30 | "html_url": "https://github.com/shaunew/Pac-Man/issues/32", 31 | "updated_at": "2012-07-25T16:23:44Z", 32 | "id": 3489676, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/32" 37 | } 38 | [ 39 | { 40 | "body": "Canvas fits to the size of the window.", 41 | "user": { 42 | "login": "shaunew", 43 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 44 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-07-25T16:23:44Z", 49 | "updated_at": "2012-07-25T16:23:44Z", 50 | "id": 7253808, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/7253808" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /pacman/issues/34: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": "2012-08-15T19:19:29Z", 3 | "milestone": null, 4 | "body": "Great work!\r\nBut under which license do you publish it?\r\nI would like to use your work, but I am not sure whether I am allowed or not.\r\nYours\r\nHauke", 5 | "user": { 6 | "login": "DerWaldschrat", 7 | "avatar_url": "https://secure.gravatar.com/avatar/9451206beaf5f7be65c162225403b8b5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 8 | "gravatar_id": "9451206beaf5f7be65c162225403b8b5", 9 | "id": 1253980, 10 | "url": "https://api.github.com/users/DerWaldschrat" 11 | }, 12 | "closed_by": { 13 | "login": "shaunew", 14 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 15 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 16 | "id": 116838, 17 | "url": "https://api.github.com/users/shaunew" 18 | }, 19 | "created_at": "2012-04-09T17:23:52Z", 20 | "comments": 1, 21 | "assignee": null, 22 | "pull_request": { 23 | "html_url": null, 24 | "patch_url": null, 25 | "diff_url": null 26 | }, 27 | "title": "License?", 28 | "html_url": "https://github.com/shaunew/Pac-Man/issues/34", 29 | "number": 34, 30 | "state": "closed", 31 | "updated_at": "2012-08-15T19:19:29Z", 32 | "id": 4032168, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/34" 37 | } 38 | [ 39 | { 40 | "body": "Hi there, thanks for the compliment. Shoot me an email at shaunewilliams@gmail.com. I'm curious about how you're planning on using this :) I have plans of my own, so we should at least start a conversation.\r\n\r\nAs far as the software license, I'm not sure what rights I'm granted or entitled to give over a work that is almost a 1-to-1 recreation of an original work owned by Namco. If it's within my right, it's my intention to use a kind of BSD license. I'll have to read more or talk with someone more knowledgeable about this before deciding for sure.", 41 | "user": { 42 | "login": "shaunew", 43 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 44 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-04-10T21:13:06Z", 49 | "updated_at": "2012-04-10T21:13:06Z", 50 | "id": 5056400, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/5056400" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /pacman/issues/35: -------------------------------------------------------------------------------- 1 | { 2 | "pull_request": { 3 | "html_url": null, 4 | "patch_url": null, 5 | "diff_url": null 6 | }, 7 | "closed_at": "2012-07-17T16:39:53Z", 8 | "milestone": null, 9 | "body": "The aesthetics of the generated maps can be ruined by bad coloring. We need to come up with a good algorithm for choosing two colors for coloring a random map. (fill and stroke)\n\nInitially, HSV color space with V=1 seems okay. Perhaps find out statistically which hue differences look good at each hue. We can probably press by choosing a wide sampling of fill/stroke color pairs that look decent, and trying to relate them.", 10 | "user": { 11 | "login": "shaunew", 12 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 13 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 14 | "id": 116838, 15 | "url": "https://api.github.com/users/shaunew" 16 | }, 17 | "closed_by": { 18 | "login": "shaunew", 19 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 20 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 21 | "id": 116838, 22 | "url": "https://api.github.com/users/shaunew" 23 | }, 24 | "created_at": "2012-06-23T16:12:28Z", 25 | "comments": 1, 26 | "assignee": null, 27 | "title": "Smart random color selector for mapgen", 28 | "html_url": "https://github.com/shaunew/Pac-Man/issues/35", 29 | "number": 35, 30 | "state": "closed", 31 | "updated_at": "2012-07-17T16:40:06Z", 32 | "id": 5230340, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/35" 37 | } 38 | [ 39 | { 40 | "body": "I decided to create a more consistent experience in Cookie-Man by having the colors coincide with the level number. An algorithm for a random color scheme offers an [interesting problem in color theory](http://www.logarithmic.net/pfh/blog/01200382757), but I believe it's less chaotic for the user to just experience the randomness of the maps through its structure and not its color.\n\nI should also note that I was unable to come up with a random color scheme generator that was consistently pleasant.", 41 | "user": { 42 | "login": "shaunew", 43 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 44 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-07-17T16:39:52Z", 49 | "updated_at": "2012-07-17T16:40:06Z", 50 | "id": 7041055, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/7041055" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /pacman/issues/36: -------------------------------------------------------------------------------- 1 | { 2 | "milestone": null, 3 | "body": "\n\nsource: http://dsl.richmond.edu/minis/pacman/pac-essay.html\n\nImplement a warp pixel function that maps to a warped coordinate. The points on the map wall paths will have to be bezier splines to look smooth. Just add a control point at each anchor to direct the spline to the next warped position.\n\nThe CRT glow will probably have to be done in WebGL when this project is rewritten for it.\n\nanother source: http://www.mikesarcade.com/arcade/pacfix.html", 4 | "user": { 5 | "login": "shaunew", 6 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "id": 116838, 9 | "url": "https://api.github.com/users/shaunew" 10 | }, 11 | "closed_at": "2012-08-15T19:19:45Z", 12 | "created_at": "2012-07-14T12:46:07Z", 13 | "comments": 0, 14 | "assignee": null, 15 | "closed_by": { 16 | "login": "shaunew", 17 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 18 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 19 | "id": 116838, 20 | "url": "https://api.github.com/users/shaunew" 21 | }, 22 | "title": "CRT warp and glow", 23 | "pull_request": { 24 | "patch_url": null, 25 | "html_url": null, 26 | "diff_url": null 27 | }, 28 | "number": 36, 29 | "state": "closed", 30 | "html_url": "https://github.com/shaunew/Pac-Man/issues/36", 31 | "updated_at": "2012-08-15T19:19:45Z", 32 | "id": 5620099, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/36" 37 | } 38 | [ 39 | 40 | ] 41 | -------------------------------------------------------------------------------- /pacman/issues/37: -------------------------------------------------------------------------------- 1 | { 2 | "pull_request": { 3 | "html_url": null, 4 | "patch_url": null, 5 | "diff_url": null 6 | }, 7 | "closed_at": "2012-07-25T16:23:21Z", 8 | "milestone": null, 9 | "body": "The game NEEDS to run at 60fps to feel as smooth as the original. \n\nA texture atlas needs to be created to improve the performance of the game. Drawing all the sprites with bezier curves and other canvas paths is probably the culprit of the lag on my machine. The game hangs for short spurts at times, so that may be another issue.", 10 | "user": { 11 | "login": "shaunew", 12 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 13 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 14 | "id": 116838, 15 | "url": "https://api.github.com/users/shaunew" 16 | }, 17 | "closed_by": { 18 | "login": "shaunew", 19 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 20 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 21 | "id": 116838, 22 | "url": "https://api.github.com/users/shaunew" 23 | }, 24 | "created_at": "2012-07-18T23:49:00Z", 25 | "comments": 2, 26 | "assignee": null, 27 | "title": "Address performance issues", 28 | "html_url": "https://github.com/shaunew/Pac-Man/issues/37", 29 | "number": 37, 30 | "state": "closed", 31 | "updated_at": "2012-07-25T16:23:21Z", 32 | "id": 5702580, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/37" 37 | } 38 | [ 39 | { 40 | "body": "The texture atlas did not improve the performance of the game enough. It still chokes at certain seemingly random moments in the game. It runs perfectly on a new MacBook Pro, so I'm guessing processor speed is a factor.\n\nI will try to run it on cocoonjs to determine if more work will be needed to improve the performance of the game for mobile.", 41 | "user": { 42 | "login": "shaunew", 43 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 44 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-07-23T02:03:59Z", 49 | "updated_at": "2012-07-23T02:03:59Z", 50 | "id": 7167660, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/7167660" 52 | }, 53 | { 54 | "body": "Performance is, of course, directly correlated to the amount of pixels drawn. After getting rid of an extra screen clear command, the game jumped 20 frames per second.\n\nOn my linux machine, it performs at ~60 fps fullscreen (1280x1024) in firefox, and ~30fps in chrome. On windows xp, it performs at ~20 fps on both browsers. On a new macbook pro, it runs at a consistent 62.5 fps.", 55 | "user": { 56 | "login": "shaunew", 57 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 58 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 59 | "id": 116838, 60 | "url": "https://api.github.com/users/shaunew" 61 | }, 62 | "created_at": "2012-07-25T16:23:21Z", 63 | "updated_at": "2012-07-25T16:23:21Z", 64 | "id": 7253797, 65 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/7253797" 66 | } 67 | ] 68 | -------------------------------------------------------------------------------- /pacman/issues/38: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": "2012-08-15T19:20:54Z", 3 | "milestone": null, 4 | "body": "The first parts will be tutorial-oriented to teach the player about ghost behaviors, but will progress to more difficult puzzles that require intimate knowledge of the game's dynamics such as pellet lag, corner-drifting, fruit paths, ghost reversal times.\n\nOne particular situation is the act of being chased by blinky into a collision course with pinky. One may be able to escape this fate by moving pacman back toward blinky at a particular moment to narrowly draw pinky away from blocking your path.\n\nLevels can progress to a puzzle aspect by combining elements from previous levels in quick succession, and introducing more complex dynamics. I imagine it will take a lot of time creating challenging puzzles, but I think that is the natural progression that this project has lead to that needs to be done.", 5 | "user": { 6 | "login": "shaunew", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": { 13 | "login": "shaunew", 14 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 15 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 16 | "id": 116838, 17 | "url": "https://api.github.com/users/shaunew" 18 | }, 19 | "created_at": "2012-07-18T23:50:57Z", 20 | "comments": 0, 21 | "assignee": null, 22 | "pull_request": { 23 | "diff_url": null, 24 | "patch_url": null, 25 | "html_url": null 26 | }, 27 | "title": "Challenge Mode", 28 | "html_url": "https://github.com/shaunew/Pac-Man/issues/38", 29 | "number": 38, 30 | "state": "closed", 31 | "updated_at": "2012-08-15T19:20:54Z", 32 | "id": 5702615, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/38" 37 | } 38 | [ 39 | 40 | ] 41 | -------------------------------------------------------------------------------- /pacman/issues/39: -------------------------------------------------------------------------------- 1 | { 2 | "milestone": null, 3 | "body": "In two player mode, there are two games being played, but not at the same time. The first player starts their game and it continues as it would in single player mode, but when they die, the game switches to a new game for the second player. The games continue to alternate to the other player after each death. Each player has their own score and number of lives remaining.\n\nThe top of the screen is occupied by the following:\n\n 1UP HIGH SCORE 2UP\n XXXX XXXX XXXX\n\nDuring the first player's turn, \"1UP\" is blinking, meaning \"Player 1 is Up\". Similarly, during the second player's turn, \"2UP\" is blinking, meaning \"Player 2 is Up\". Each player's score is below their respective blinking indicator.\n\nIn the cocktail table version, the image is rotated 180 degrees when second player is up.", 4 | "user": { 5 | "login": "shaunew", 6 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "id": 116838, 9 | "url": "https://api.github.com/users/shaunew" 10 | }, 11 | "pull_request": { 12 | "diff_url": null, 13 | "html_url": null, 14 | "patch_url": null 15 | }, 16 | "closed_at": null, 17 | "created_at": "2012-07-30T04:27:19Z", 18 | "comments": 0, 19 | "assignee": null, 20 | "closed_by": null, 21 | "title": "2 player mode", 22 | "number": 39, 23 | "state": "open", 24 | "html_url": "https://github.com/shaunew/Pac-Man/issues/39", 25 | "updated_at": "2012-07-31T23:15:05Z", 26 | "id": 5910558, 27 | "labels": [ 28 | 29 | ], 30 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/39" 31 | } 32 | [ 33 | 34 | ] 35 | -------------------------------------------------------------------------------- /pacman/issues/41: -------------------------------------------------------------------------------- 1 | { 2 | "milestone": null, 3 | "body": "Ghosts face the direction of their next turn upon or right before entering an intersection tile. In this remake, they're incorrectly making their decision at the center of the tile, then turning.\n\nCorrection:\n\n1. When entering a new tile, if intersection tile, compute next direction and save it as faceDirEnum. \n2. Make sprite frame use faceDirEnum instead of dirEnum.\n3. At midTile, set dirEnum to faceDirEnum.", 4 | "user": { 5 | "login": "shaunew", 6 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "id": 116838, 9 | "url": "https://api.github.com/users/shaunew" 10 | }, 11 | "closed_at": "2012-08-01T05:09:52Z", 12 | "created_at": "2012-07-31T16:04:48Z", 13 | "comments": 0, 14 | "assignee": null, 15 | "closed_by": { 16 | "login": "shaunew", 17 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 18 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 19 | "id": 116838, 20 | "url": "https://api.github.com/users/shaunew" 21 | }, 22 | "title": "Correct ghost turns", 23 | "number": 41, 24 | "state": "closed", 25 | "pull_request": { 26 | "patch_url": null, 27 | "diff_url": null, 28 | "html_url": null 29 | }, 30 | "html_url": "https://github.com/shaunew/Pac-Man/issues/41", 31 | "updated_at": "2012-08-01T05:09:52Z", 32 | "id": 5946951, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/41" 37 | } 38 | [ 39 | 40 | ] 41 | -------------------------------------------------------------------------------- /pacman/issues/42: -------------------------------------------------------------------------------- 1 | { 2 | "pull_request": { 3 | "html_url": null, 4 | "patch_url": null, 5 | "diff_url": null 6 | }, 7 | "closed_at": "2012-08-03T06:17:50Z", 8 | "milestone": null, 9 | "body": "I'm currently in violation of the legal usage of this font: http://9031.com/fonts/#arcade", 10 | "user": { 11 | "login": "shaunew", 12 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 13 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 14 | "id": 116838, 15 | "url": "https://api.github.com/users/shaunew" 16 | }, 17 | "closed_by": { 18 | "login": "shaunew", 19 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 20 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 21 | "id": 116838, 22 | "url": "https://api.github.com/users/shaunew" 23 | }, 24 | "created_at": "2012-08-02T17:35:25Z", 25 | "comments": 1, 26 | "assignee": null, 27 | "title": "use web font legally", 28 | "html_url": "https://github.com/shaunew/Pac-Man/issues/42", 29 | "number": 42, 30 | "state": "closed", 31 | "updated_at": "2012-08-03T06:17:50Z", 32 | "id": 5997625, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/42" 37 | } 38 | [ 39 | { 40 | "body": "I removed the OTF font which was attached to a license that prohibited distribution of the file. The TTF file can be found in many places without a license. The author does not host the TTF file anywhere on his website either. I've e-mailed him about the matter, and waiting for a response.", 41 | "user": { 42 | "login": "shaunew", 43 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 44 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-08-03T06:17:50Z", 49 | "updated_at": "2012-08-03T06:17:50Z", 50 | "id": 7476577, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/7476577" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /pacman/issues/43: -------------------------------------------------------------------------------- 1 | { 2 | "milestone": null, 3 | "body": "pc\n\n* html5 gamepad api\n\nmobile\n\n* icade input keys\n* icontrolpad input keys", 4 | "user": { 5 | "login": "shaunew", 6 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "id": 116838, 9 | "url": "https://api.github.com/users/shaunew" 10 | }, 11 | "closed_at": null, 12 | "created_at": "2012-08-14T07:02:33Z", 13 | "comments": 0, 14 | "assignee": null, 15 | "closed_by": null, 16 | "title": "different controller support", 17 | "pull_request": { 18 | "patch_url": null, 19 | "html_url": null, 20 | "diff_url": null 21 | }, 22 | "number": 43, 23 | "state": "open", 24 | "html_url": "https://github.com/shaunew/Pac-Man/issues/43", 25 | "updated_at": "2012-08-14T07:02:33Z", 26 | "id": 6209618, 27 | "labels": [ 28 | 29 | ], 30 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/43" 31 | } 32 | [ 33 | 34 | ] 35 | -------------------------------------------------------------------------------- /pacman/issues/44: -------------------------------------------------------------------------------- 1 | { 2 | "pull_request": { 3 | "html_url": null, 4 | "patch_url": null, 5 | "diff_url": null 6 | }, 7 | "closed_at": "2012-08-14T09:32:18Z", 8 | "milestone": null, 9 | "body": "Default high score to 10000. And save high scores with `localStorage`", 10 | "user": { 11 | "login": "shaunew", 12 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 13 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 14 | "id": 116838, 15 | "url": "https://api.github.com/users/shaunew" 16 | }, 17 | "closed_by": { 18 | "login": "shaunew", 19 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 20 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 21 | "id": 116838, 22 | "url": "https://api.github.com/users/shaunew" 23 | }, 24 | "created_at": "2012-08-14T07:27:06Z", 25 | "comments": 0, 26 | "assignee": null, 27 | "title": "high scores", 28 | "html_url": "https://github.com/shaunew/Pac-Man/issues/44", 29 | "number": 44, 30 | "state": "closed", 31 | "updated_at": "2012-08-14T09:32:18Z", 32 | "id": 6209897, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/44" 37 | } 38 | [ 39 | 40 | ] 41 | -------------------------------------------------------------------------------- /pacman/issues/45: -------------------------------------------------------------------------------- 1 | { 2 | "milestone": null, 3 | "body": "", 4 | "user": { 5 | "login": "shaunew", 6 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "id": 116838, 9 | "url": "https://api.github.com/users/shaunew" 10 | }, 11 | "closed_at": null, 12 | "created_at": "2012-08-14T07:30:13Z", 13 | "comments": 0, 14 | "assignee": null, 15 | "closed_by": null, 16 | "title": "use sessionstorage to recover from accidental refresh", 17 | "pull_request": { 18 | "patch_url": null, 19 | "html_url": null, 20 | "diff_url": null 21 | }, 22 | "number": 45, 23 | "state": "open", 24 | "html_url": "https://github.com/shaunew/Pac-Man/issues/45", 25 | "updated_at": "2012-08-14T07:30:13Z", 26 | "id": 6209924, 27 | "labels": [ 28 | 29 | ], 30 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/45" 31 | } 32 | [ 33 | 34 | ] 35 | -------------------------------------------------------------------------------- /pacman/issues/47: -------------------------------------------------------------------------------- 1 | { 2 | "milestone": null, 3 | "body": "", 4 | "user": { 5 | "login": "shaunew", 6 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "id": 116838, 9 | "url": "https://api.github.com/users/shaunew" 10 | }, 11 | "closed_at": "2012-08-23T06:36:36Z", 12 | "created_at": "2012-08-15T17:03:49Z", 13 | "comments": 1, 14 | "assignee": null, 15 | "closed_by": { 16 | "login": "shaunew", 17 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 18 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 19 | "id": 116838, 20 | "url": "https://api.github.com/users/shaunew" 21 | }, 22 | "title": "add animated favicon and window title", 23 | "pull_request": { 24 | "patch_url": null, 25 | "html_url": null, 26 | "diff_url": null 27 | }, 28 | "number": 47, 29 | "state": "closed", 30 | "html_url": "https://github.com/shaunew/Pac-Man/issues/47", 31 | "updated_at": "2012-08-23T06:36:36Z", 32 | "id": 6245144, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/47" 37 | } 38 | [ 39 | { 40 | "created_at": "2012-08-23T06:36:36Z", 41 | "updated_at": "2012-08-23T06:36:36Z", 42 | "body": "not animated", 43 | "user": { 44 | "login": "shaunew", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew", 47 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 48 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png" 49 | }, 50 | "id": 7961252, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/7961252" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /pacman/issues/48: -------------------------------------------------------------------------------- 1 | { 2 | "milestone": null, 3 | "body": "http://www.vecoven.com/elec/pacman/pacman.html", 4 | "user": { 5 | "login": "shaunew", 6 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "id": 116838, 9 | "url": "https://api.github.com/users/shaunew" 10 | }, 11 | "closed_at": "2012-08-19T17:07:38Z", 12 | "created_at": "2012-08-19T17:07:35Z", 13 | "comments": 0, 14 | "assignee": null, 15 | "closed_by": { 16 | "login": "shaunew", 17 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 18 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 19 | "id": 116838, 20 | "url": "https://api.github.com/users/shaunew" 21 | }, 22 | "title": "link: a description of the sound hardware", 23 | "pull_request": { 24 | "patch_url": null, 25 | "html_url": null, 26 | "diff_url": null 27 | }, 28 | "number": 48, 29 | "state": "closed", 30 | "html_url": "https://github.com/shaunew/Pac-Man/issues/48", 31 | "updated_at": "2012-08-19T17:07:38Z", 32 | "id": 6313541, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/48" 37 | } 38 | [ 39 | 40 | ] 41 | -------------------------------------------------------------------------------- /pacman/issues/49: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": "2012-08-22T19:18:16Z", 3 | "milestone": null, 4 | "body": "Some differences from Ms. Pac-Man:\n\n* Different sprites: http://i.imgur.com/z5TO7.jpg\n* Blue and Orange ghosts also randomize at first 7 seconds.\n* Ghosts are invisible when they are returning home.", 5 | "user": { 6 | "login": "shaunew", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": { 13 | "login": "shaunew", 14 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 15 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 16 | "id": 116838, 17 | "url": "https://api.github.com/users/shaunew" 18 | }, 19 | "created_at": "2012-08-20T13:33:28Z", 20 | "comments": 1, 21 | "assignee": null, 22 | "pull_request": { 23 | "diff_url": null, 24 | "patch_url": null, 25 | "html_url": null 26 | }, 27 | "title": "Add Crazy Otto game mode", 28 | "html_url": "https://github.com/shaunew/Pac-Man/issues/49", 29 | "number": 49, 30 | "state": "closed", 31 | "updated_at": "2012-08-22T19:18:16Z", 32 | "id": 6325341, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/49" 37 | } 38 | [ 39 | { 40 | "body": "This nice gameplay video of an authentic Crazy Otto machine at CAX 2012 confirms the ghost behavior, death animation, sprite colors, etc.:http://www.youtube.com/watch?v=CEKAqWk-Tp4", 41 | "user": { 42 | "login": "shaunew", 43 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 44 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-08-22T19:18:16Z", 49 | "updated_at": "2012-08-22T19:18:16Z", 50 | "id": 7945806, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/7945806" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /pacman/issues/50: -------------------------------------------------------------------------------- 1 | { 2 | "milestone": null, 3 | "body": "Use:\n\n \n\nhttp://stackoverflow.com/questions/5016513/ie9-support-for-html5-canvas-tag", 4 | "user": { 5 | "login": "shaunew", 6 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "id": 116838, 9 | "url": "https://api.github.com/users/shaunew" 10 | }, 11 | "closed_at": "2012-08-22T19:20:48Z", 12 | "created_at": "2012-08-21T15:01:51Z", 13 | "comments": 0, 14 | "assignee": null, 15 | "closed_by": { 16 | "login": "shaunew", 17 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 18 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 19 | "id": 116838, 20 | "url": "https://api.github.com/users/shaunew" 21 | }, 22 | "title": "Fix for IE9", 23 | "number": 50, 24 | "state": "closed", 25 | "pull_request": { 26 | "patch_url": null, 27 | "diff_url": null, 28 | "html_url": null 29 | }, 30 | "html_url": "https://github.com/shaunew/Pac-Man/issues/50", 31 | "updated_at": "2012-08-22T19:20:48Z", 32 | "id": 6352677, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/50" 37 | } 38 | [ 39 | 40 | ] 41 | -------------------------------------------------------------------------------- /pacman/issues/51: -------------------------------------------------------------------------------- 1 | { 2 | "milestone": null, 3 | "body": "sound disassembled by Frederic Vecoven!\nhttp://www.vecoven.com/elec/pacman/pacman.html\n\nMight be able to play with Web Audio API:\nhttps://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html", 4 | "user": { 5 | "login": "shaunew", 6 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "id": 116838, 9 | "url": "https://api.github.com/users/shaunew" 10 | }, 11 | "pull_request": { 12 | "diff_url": null, 13 | "html_url": null, 14 | "patch_url": null 15 | }, 16 | "closed_at": null, 17 | "created_at": "2012-08-29T23:36:55Z", 18 | "comments": 0, 19 | "assignee": null, 20 | "closed_by": null, 21 | "title": "sound", 22 | "number": 51, 23 | "state": "open", 24 | "html_url": "https://github.com/shaunew/Pac-Man/issues/51", 25 | "updated_at": "2012-08-29T23:36:55Z", 26 | "id": 6541623, 27 | "labels": [ 28 | 29 | ], 30 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/51" 31 | } 32 | [ 33 | 34 | ] 35 | -------------------------------------------------------------------------------- /pacman/issues/52: -------------------------------------------------------------------------------- 1 | { 2 | "pull_request": { 3 | "html_url": null, 4 | "patch_url": null, 5 | "diff_url": null 6 | }, 7 | "closed_at": "2012-09-03T19:11:26Z", 8 | "milestone": null, 9 | "body": "After studying Braid's time foot prints...\n\nWhen fast -forwarding or rewinding, time foot prints of each actor should be drawn to indicate your current velocity through time, meaning the direction and speed at which you are traveling through time.\n\nDiminishing foot prints should be drawn away from the current direction of time, with just a few diminishing shadows drawn toward the direction of time.\n\nNOTE: The time foot prints are stretched to the limits when the character has died and is accelerating to the bottom of the screen. Once dead, you can try seeking forward to view the how algorithm is choosing the previous frames to more easily observe the changes between seek speeds.\n\nThe **length** of the window covered by the foot prints seems to grow as the velocity increases. The length\n\nThe **number and distribution of foot prints** shown in this window seems to depend on more than one factor. At times it appears that the foot prints are simply stretched to meet the new window size, like an accordion. Other times some foot prints seem to be remove abruptly. There at least seems to be a minimum time difference between two adjacent foot prints.", 10 | "user": { 11 | "login": "shaunew", 12 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 13 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 14 | "id": 116838, 15 | "url": "https://api.github.com/users/shaunew" 16 | }, 17 | "closed_by": { 18 | "login": "shaunew", 19 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 20 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 21 | "id": 116838, 22 | "url": "https://api.github.com/users/shaunew" 23 | }, 24 | "created_at": "2012-08-30T06:47:49Z", 25 | "comments": 1, 26 | "assignee": null, 27 | "title": "Correct time foot prints", 28 | "html_url": "https://github.com/shaunew/Pac-Man/issues/52", 29 | "number": 52, 30 | "state": "closed", 31 | "updated_at": "2012-09-03T19:11:26Z", 32 | "id": 6546407, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/52" 37 | } 38 | [ 39 | { 40 | "body": "implemented this with hard variables for footstep distribution for each seek speed. may use easing in the future to smooth transition between step distribution when changing seek speed", 41 | "user": { 42 | "login": "shaunew", 43 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 44 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-09-03T19:11:26Z", 49 | "updated_at": "2012-09-03T19:11:26Z", 50 | "id": 8245192, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/8245192" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /pacman/issues/53: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": "2012-09-03T16:50:16Z", 3 | "milestone": null, 4 | "body": "From Evbn on [hacker news](http://news.ycombinator.com/item?id=4466218)\n> Menus broken on galaxy nexus of touch Browser. When I tap on a menu item, the tap registers twice, including whatever occupies the same position on the next menu. Example: Quit - No, which loops back to the game. Also, Credits.\n\nIt's common for games to pause before registering a click event. This might be why.", 5 | "user": { 6 | "login": "shaunew", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": { 13 | "login": "shaunew", 14 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 15 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 16 | "id": 116838, 17 | "url": "https://api.github.com/users/shaunew" 18 | }, 19 | "created_at": "2012-09-03T15:59:20Z", 20 | "comments": 1, 21 | "assignee": null, 22 | "title": "Menu", 23 | "html_url": "https://github.com/shaunew/Pac-Man/issues/53", 24 | "number": 53, 25 | "state": "closed", 26 | "updated_at": "2012-09-03T16:50:16Z", 27 | "id": 6618792, 28 | "pull_request": { 29 | "html_url": null, 30 | "patch_url": null, 31 | "diff_url": null 32 | }, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/53" 37 | } 38 | [ 39 | { 40 | "body": "Added a 200ms delay after button press. And prevented a double click from registering it twice by using clearTimeout.", 41 | "user": { 42 | "login": "shaunew", 43 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 44 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 45 | "id": 116838, 46 | "url": "https://api.github.com/users/shaunew" 47 | }, 48 | "created_at": "2012-09-03T16:50:16Z", 49 | "updated_at": "2012-09-03T16:50:16Z", 50 | "id": 8242906, 51 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/8242906" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /pacman/issues/55: -------------------------------------------------------------------------------- 1 | { 2 | "milestone": null, 3 | "body": "- http://www.reddit.com/r/programming/comments/z0tuv/historical_tribute_and_accurate_remake_of_the/\n- http://www.reddit.com/r/javascript/comments/z7bc0/very_polished_javascript_remake_of_pac_man/\n- http://www.reddit.com/r/webdev/comments/z85lj/quite_accurate_remake_of_pacman_in_js/\n- http://news.ycombinator.com/item?id=4448539\n- http://news.ycombinator.com/item?id=4464006\n- http://www.lockergnome.com/news/2012/09/02/play-pac-man-online-for-free-no-download/\n- http://www.atariage.com/forums/topic/202594-html5-pac-man/\n- http://boards.straightdope.com/sdmb/showthread.php?t=664081\n- http://www.classicarcadegaming.com/forums/index.php?topic=4563.0\n- http://news.dice.com/2012/09/04/pac-man-online-open-source/", 4 | "user": { 5 | "login": "shaunew", 6 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "id": 116838, 9 | "url": "https://api.github.com/users/shaunew" 10 | }, 11 | "closed_at": null, 12 | "created_at": "2012-09-05T17:58:53Z", 13 | "comments": 0, 14 | "assignee": null, 15 | "closed_by": null, 16 | "title": "Consolidate links to public feedback", 17 | "number": 55, 18 | "state": "open", 19 | "pull_request": { 20 | "patch_url": null, 21 | "diff_url": null, 22 | "html_url": null 23 | }, 24 | "html_url": "https://github.com/shaunew/Pac-Man/issues/55", 25 | "updated_at": "2012-09-10T20:03:58Z", 26 | "id": 6668352, 27 | "labels": [ 28 | 29 | ], 30 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/55" 31 | } 32 | [ 33 | 34 | ] 35 | -------------------------------------------------------------------------------- /pacman/issues/56: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": null, 3 | "milestone": null, 4 | "body": "When ghosts are really close to each other and are traveling up or down in line, you can see differences in their X position, even though they are on the same track. I disregarded this as a bug, but maybe it is intended to prevent visual ghost cramming?", 5 | "user": { 6 | "login": "shaunew", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": null, 13 | "created_at": "2012-09-11T14:39:48Z", 14 | "comments": 0, 15 | "assignee": null, 16 | "pull_request": { 17 | "diff_url": null, 18 | "patch_url": null, 19 | "html_url": null 20 | }, 21 | "title": "Ghost x-offset", 22 | "html_url": "https://github.com/shaunew/Pac-Man/issues/56", 23 | "number": 56, 24 | "state": "open", 25 | "updated_at": "2012-09-11T14:39:48Z", 26 | "id": 6792586, 27 | "labels": [ 28 | 29 | ], 30 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/56" 31 | } 32 | [ 33 | 34 | ] 35 | -------------------------------------------------------------------------------- /pacman/issues/57: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": null, 3 | "milestone": null, 4 | "body": "The ghost door is not visible in Pac-Man when the map is blinking. But in Ms. Pac-Man it is visible when the map is not black and white.", 5 | "user": { 6 | "login": "shaunew", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": null, 13 | "created_at": "2012-09-11T14:41:13Z", 14 | "comments": 0, 15 | "assignee": null, 16 | "title": "Ghost door visibility on map-blinking", 17 | "html_url": "https://github.com/shaunew/Pac-Man/issues/57", 18 | "number": 57, 19 | "state": "open", 20 | "updated_at": "2012-09-11T14:41:13Z", 21 | "id": 6792678, 22 | "pull_request": { 23 | "html_url": null, 24 | "patch_url": null, 25 | "diff_url": null 26 | }, 27 | "labels": [ 28 | 29 | ], 30 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/57" 31 | } 32 | [ 33 | 34 | ] 35 | -------------------------------------------------------------------------------- /pacman/issues/58: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": null, 3 | "milestone": null, 4 | "body": "When the disembodied eyes make it back to the ghost pen, they stay disembodied until the next frame.", 5 | "user": { 6 | "login": "shaunew", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": null, 13 | "created_at": "2012-09-11T14:42:02Z", 14 | "comments": 0, 15 | "assignee": null, 16 | "pull_request": { 17 | "diff_url": null, 18 | "patch_url": null, 19 | "html_url": null 20 | }, 21 | "title": "Disembodied eyes in ghost pen", 22 | "html_url": "https://github.com/shaunew/Pac-Man/issues/58", 23 | "number": 58, 24 | "state": "open", 25 | "updated_at": "2012-09-11T14:42:02Z", 26 | "id": 6792720, 27 | "labels": [ 28 | 29 | ], 30 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/58" 31 | } 32 | [ 33 | 34 | ] 35 | -------------------------------------------------------------------------------- /pacman/issues/59: -------------------------------------------------------------------------------- 1 | { 2 | "milestone": null, 3 | "body": "In the original arcade control scheme, if you press a direction that Pac-Man cannot complete, then Pac-Man will face that direction (without moving in that direction) when he hits a wall. This can be useful for easier manipulating of Pinky at cramped corners, so I will implement it in keyboard schemes, but not with touch swipes.", 4 | "user": { 5 | "login": "shaunew", 6 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "id": 116838, 9 | "url": "https://api.github.com/users/shaunew" 10 | }, 11 | "pull_request": { 12 | "diff_url": null, 13 | "html_url": null, 14 | "patch_url": null 15 | }, 16 | "closed_at": null, 17 | "created_at": "2012-09-11T14:47:12Z", 18 | "comments": 1, 19 | "assignee": null, 20 | "closed_by": null, 21 | "title": "Dead-end pivots", 22 | "number": 59, 23 | "state": "open", 24 | "html_url": "https://github.com/shaunew/Pac-Man/issues/59", 25 | "updated_at": "2012-09-25T12:27:24Z", 26 | "id": 6793024, 27 | "labels": [ 28 | 29 | ], 30 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/59" 31 | } 32 | [ 33 | { 34 | "body": "PacWhiz:\n\n> 2. Controls are slightly incorrect, it's been made like SuperPac where you can press a direction to turn, then let go of the key and you will still turn; but on Pac and MsPac that shouldn't happen.", 35 | "user": { 36 | "login": "shaunew", 37 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 38 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 39 | "id": 116838, 40 | "url": "https://api.github.com/users/shaunew" 41 | }, 42 | "created_at": "2012-09-25T12:27:24Z", 43 | "updated_at": "2012-09-25T12:27:24Z", 44 | "id": 8852251, 45 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/comments/8852251" 46 | } 47 | ] 48 | -------------------------------------------------------------------------------- /pacman/issues/60: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": null, 3 | "milestone": null, 4 | "body": "I tried to \"improve\" the death animations by adding more effects and frames, but I regret that now. I'd like to just keep to the original.", 5 | "user": { 6 | "login": "shaunew", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": null, 13 | "created_at": "2012-09-19T03:45:54Z", 14 | "comments": 0, 15 | "assignee": null, 16 | "pull_request": { 17 | "diff_url": null, 18 | "patch_url": null, 19 | "html_url": null 20 | }, 21 | "title": "Death animations", 22 | "html_url": "https://github.com/shaunew/Pac-Man/issues/60", 23 | "number": 60, 24 | "state": "open", 25 | "updated_at": "2012-09-19T03:45:54Z", 26 | "id": 6971296, 27 | "labels": [ 28 | 29 | ], 30 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/60" 31 | } 32 | [ 33 | 34 | ] 35 | -------------------------------------------------------------------------------- /pacman/issues/61: -------------------------------------------------------------------------------- 1 | { 2 | "created_at": "2012-09-25T12:28:35Z", 3 | "comments": 0, 4 | "html_url": "https://github.com/shaunew/Pac-Man/issues/61", 5 | "title": "Fix revearsals in Ms. Pac-Man", 6 | "number": 61, 7 | "milestone": null, 8 | "state": "closed", 9 | "updated_at": "2012-09-25T13:01:15Z", 10 | "closed_at": "2012-09-25T13:01:15Z", 11 | "labels": [ 12 | 13 | ], 14 | "assignee": null, 15 | "closed_by": { 16 | "login": "shaunew", 17 | "id": 116838, 18 | "url": "https://api.github.com/users/shaunew", 19 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 20 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png" 21 | }, 22 | "body": "PacWhiz says:\n\n> 3. Another thing i'm not too fond of (and one of the reasons i always liked Pac & PacPlus less) is the too many reverses in MsPac (and Cookie Man). Can't complain about Cookie coz it's new 8), but MsPac... can't let that slide ;) One at ~7s, one at ~25s, that should be it.\n\nanningmay says:\n\n> Anyhow, the reversals drove me crazy, like Aart. This is one of the problems I have with the iphone version of MsPac as well; two reversals in the first 30 seconds or so is all we need, thank you very much. :)", 23 | "user": { 24 | "login": "shaunew", 25 | "id": 116838, 26 | "url": "https://api.github.com/users/shaunew", 27 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 28 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png" 29 | }, 30 | "pull_request": { 31 | "patch_url": null, 32 | "diff_url": null, 33 | "html_url": null 34 | }, 35 | "id": 7120059, 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/61" 37 | } 38 | [ 39 | 40 | ] 41 | -------------------------------------------------------------------------------- /pacman/issues/62: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": null, 3 | "milestone": null, 4 | "body": "PacWhiz says:\n\n> 4. Even though you said you \"chose to leave out the overflow bug which shifts a ghost target when Pac-Man is facing up\", and acknowledge it as an inaccuracy, i think this accidental (and most likely unforseen) bug from the original is an integral part of what makes Pac-Man Pac-Man!\n\nThis will involve updating the target visualizations as well.", 5 | "user": { 6 | "login": "shaunew", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": null, 13 | "created_at": "2012-09-25T12:30:47Z", 14 | "comments": 0, 15 | "assignee": null, 16 | "pull_request": { 17 | "diff_url": null, 18 | "patch_url": null, 19 | "html_url": null 20 | }, 21 | "title": "Implement overflow bug in targetting", 22 | "html_url": "https://github.com/shaunew/Pac-Man/issues/62", 23 | "number": 62, 24 | "state": "open", 25 | "updated_at": "2012-09-25T12:30:47Z", 26 | "id": 7120109, 27 | "labels": [ 28 | 29 | ], 30 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/62" 31 | } 32 | [ 33 | 34 | ] 35 | -------------------------------------------------------------------------------- /pacman/issues/63: -------------------------------------------------------------------------------- 1 | { 2 | "pull_request": { 3 | "html_url": null, 4 | "patch_url": null, 5 | "diff_url": null 6 | }, 7 | "closed_at": null, 8 | "milestone": null, 9 | "body": "I did kludge the collision detection to prevent pass-throughs, which did seem to occur more than the original in my first implementation.\n\nNeed to figure out correct order to detect collision.", 10 | "user": { 11 | "login": "shaunew", 12 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 13 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 14 | "id": 116838, 15 | "url": "https://api.github.com/users/shaunew" 16 | }, 17 | "closed_by": null, 18 | "created_at": "2012-09-25T12:34:01Z", 19 | "comments": 0, 20 | "assignee": null, 21 | "title": "Collision Detection", 22 | "html_url": "https://github.com/shaunew/Pac-Man/issues/63", 23 | "number": 63, 24 | "state": "open", 25 | "updated_at": "2012-09-25T12:34:01Z", 26 | "id": 7120174, 27 | "labels": [ 28 | 29 | ], 30 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/63" 31 | } 32 | [ 33 | 34 | ] 35 | -------------------------------------------------------------------------------- /pacman/issues/64: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": null, 3 | "milestone": null, 4 | "body": "PacWhiz:\n\n> 6. After coming out of the tunnel/exit, the monsters aren't supposed to be able to pursue you when you turn down - it's the only \"PacMan-like\" monster blockade in MsPac. Sure makes it more challenging on the slow boards, as i just found out!", 5 | "user": { 6 | "login": "shaunew", 7 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 8 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": null, 13 | "created_at": "2012-09-25T12:35:36Z", 14 | "comments": 0, 15 | "assignee": null, 16 | "pull_request": { 17 | "html_url": null, 18 | "patch_url": null, 19 | "diff_url": null 20 | }, 21 | "title": "Ghost can't turn down after exiting tunnel", 22 | "html_url": "https://github.com/shaunew/Pac-Man/issues/64", 23 | "number": 64, 24 | "state": "open", 25 | "updated_at": "2012-09-25T12:35:36Z", 26 | "id": 7120211, 27 | "labels": [ 28 | 29 | ], 30 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/64" 31 | } 32 | [ 33 | 34 | ] 35 | -------------------------------------------------------------------------------- /pacman/issues/65: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": null, 3 | "milestone": null, 4 | "body": "PacWhiz says:\n\n> 7. No changing Color Scheme starting at board 14?? Maze should be 'pink' (and starting at board 18 the maze should be 'brown'), and then at 21 red again as on boards 6-9. That's what always helped me keep track of what board i was on, after board 21 i would count 4 repeating sets of 4 red/blue/pink/brown boards. Of course, with the board counter at the bottom right (which is awesome!), this is kinda moot, but still... :)", 5 | "user": { 6 | "login": "shaunew", 7 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 8 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": null, 13 | "created_at": "2012-09-25T12:37:08Z", 14 | "comments": 0, 15 | "assignee": null, 16 | "pull_request": { 17 | "html_url": null, 18 | "patch_url": null, 19 | "diff_url": null 20 | }, 21 | "title": "changing Ms. Pac-Man color scheme after board 14", 22 | "html_url": "https://github.com/shaunew/Pac-Man/issues/65", 23 | "number": 65, 24 | "state": "open", 25 | "updated_at": "2012-09-25T12:37:08Z", 26 | "id": 7120246, 27 | "labels": [ 28 | 29 | ], 30 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/65" 31 | } 32 | [ 33 | 34 | ] 35 | -------------------------------------------------------------------------------- /pacman/issues/66: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": "2012-09-25T13:13:55Z", 3 | "milestone": null, 4 | "body": "PacWhiz says:\n\n> 8. Speaking of the board counter, its 3rd digit is mostly off-screen when you get to board 100 lol :P", 5 | "user": { 6 | "login": "shaunew", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": { 13 | "login": "shaunew", 14 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 15 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 16 | "id": 116838, 17 | "url": "https://api.github.com/users/shaunew" 18 | }, 19 | "created_at": "2012-09-25T12:39:02Z", 20 | "comments": 0, 21 | "assignee": null, 22 | "pull_request": { 23 | "diff_url": null, 24 | "patch_url": null, 25 | "html_url": null 26 | }, 27 | "title": "Board counter is off-screen at 100", 28 | "html_url": "https://github.com/shaunew/Pac-Man/issues/66", 29 | "number": 66, 30 | "state": "closed", 31 | "updated_at": "2012-09-25T13:13:55Z", 32 | "id": 7120280, 33 | "labels": [ 34 | 35 | ], 36 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/66" 37 | } 38 | [ 39 | 40 | ] 41 | -------------------------------------------------------------------------------- /pacman/issues/67: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": null, 3 | "milestone": null, 4 | "body": "", 5 | "user": { 6 | "login": "shaunew", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": null, 13 | "created_at": "2012-09-25T12:43:07Z", 14 | "comments": 0, 15 | "assignee": null, 16 | "pull_request": { 17 | "diff_url": null, 18 | "patch_url": null, 19 | "html_url": null 20 | }, 21 | "title": "Extra Lives (3 or 5?)", 22 | "html_url": "https://github.com/shaunew/Pac-Man/issues/67", 23 | "number": 67, 24 | "state": "open", 25 | "updated_at": "2012-09-25T12:43:07Z", 26 | "id": 7120359, 27 | "labels": [ 28 | 29 | ], 30 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/67" 31 | } 32 | [ 33 | 34 | ] 35 | -------------------------------------------------------------------------------- /pacman/issues/68: -------------------------------------------------------------------------------- 1 | { 2 | "closed_at": null, 3 | "milestone": null, 4 | "body": "Neg1 suggested I also create Jr. Pac-Man. Mazes can be found here: http://strategywiki.org/wiki/Jr._Pac-Man/Walkthrough\n\nanningmay says:\n\n> However, in order to manage it, he'd have to 1) adjust the AI for the Orange ghost (which is slightly different in Jr); and 2) figure out how to incorporate the scrolling screen, which plays a HUGE role in JrPac gameplay. Unless, of course, he had in mind a project like another one you once suggested: playing JrPac with the entire maze visible at once!", 5 | "user": { 6 | "login": "shaunew", 7 | "gravatar_id": "0bdd2d6d5051b610660baf5c22016639", 8 | "avatar_url": "https://secure.gravatar.com/avatar/0bdd2d6d5051b610660baf5c22016639?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 9 | "id": 116838, 10 | "url": "https://api.github.com/users/shaunew" 11 | }, 12 | "closed_by": null, 13 | "created_at": "2012-09-25T13:18:44Z", 14 | "comments": 0, 15 | "assignee": null, 16 | "pull_request": { 17 | "diff_url": null, 18 | "patch_url": null, 19 | "html_url": null 20 | }, 21 | "title": "Jr. Pac-Man", 22 | "html_url": "https://github.com/shaunew/Pac-Man/issues/68", 23 | "number": 68, 24 | "state": "open", 25 | "updated_at": "2012-09-25T13:18:44Z", 26 | "id": 7121144, 27 | "labels": [ 28 | 29 | ], 30 | "url": "https://api.github.com/repos/shaunew/Pac-Man/issues/68" 31 | } 32 | [ 33 | 34 | ] 35 | -------------------------------------------------------------------------------- /pacman/issues/README: -------------------------------------------------------------------------------- 1 | 2 | This project was tracked on GitHub from Jan 2012 to Sep 2012 before it was shut down via a DMCA takedown request from Namco. 3 | 4 | In this directory is a recovered issue list from the github project site that I had accumulated over the life of the project. THey contain idea backlogs and progress notes on a bunch of features and bugs. 5 | -------------------------------------------------------------------------------- /pacman/mapgen/README.md: -------------------------------------------------------------------------------- 1 | 2 | Pac-Man Map Generator 3 | ===================== 4 | 5 | Objective 6 | --------- 7 | 8 | The objective of this experiment is to create a method for generating random 9 | maps (mazes) that seem aesthetically and functionally similar to the original 10 | maps found in Pac-Man and Ms. Pac-Man. When completed, this algorithm will be 11 | added to the accurate Pac-Man project to increase the playability of the arcade 12 | classic. 13 | 14 | Status 15 | ------ 16 | 17 | Click here to read the article explaining the current solution 18 | 19 | History 20 | ------- 21 | 22 | - The 'randomfill' folder contains a Python solution that uses a special 23 | heuristic for progressively placing random valid walls. 24 | - The 'answerset' folder contains a 25 | [Clingo](http://potassco.sourceforge.net/#clingo) solution that specifies 26 | declarative constraints. This [blog post](http://eis-blog.ucsc.edu/2011/10/map-generation-speedrun/) 27 | is a good introduction to map generation using Clingo. 28 | - The 'spanningtree' folder is a lead to apply a modified version of conventional maze generation algorithms. 29 | - The 'tetris' folder contains a solution for stacking pieces in a tetris like manner. 30 | -------------------------------------------------------------------------------- /pacman/mapgen/answerset/draw.py: -------------------------------------------------------------------------------- 1 | import sys,re 2 | 3 | def print_map(line): 4 | walls = {} 5 | blank = {} 6 | xdim = {} 7 | ydim = {} 8 | for m in re.finditer('wall\((\d+),(\d+)\)', line): 9 | walls[(int(m.group(1)),int(m.group(2)))] = True 10 | for m in re.finditer('blank\((\d+),(\d+)\)', line): 11 | blank[(int(m.group(1)),int(m.group(2)))] = True 12 | for m in re.finditer('xdim\((\d+)\)', line): 13 | xdim[int(m.group(1))] = True 14 | for m in re.finditer('ydim\((\d+)\)', line): 15 | ydim[int(m.group(1))] = True 16 | for y in range(max(ydim.keys())): 17 | for x in range(max(xdim.keys())): 18 | if (x+1,y+1) in walls: 19 | sys.stdout.write('|') 20 | elif (x+1,y+1) in blank: 21 | sys.stdout.write('_') 22 | else: 23 | sys.stdout.write('.') 24 | print '' 25 | 26 | if __name__ == "__main__": 27 | lines = sys.stdin.readlines() 28 | for i,line in enumerate(lines): 29 | if line.startswith("Answer:"): 30 | print_map(lines[i+1]) 31 | print "" 32 | -------------------------------------------------------------------------------- /pacman/mapgen/answerset/gen.sh: -------------------------------------------------------------------------------- 1 | #/bin/bash 2 | 3 | clingo --rand-prob --seed=$RANDOM rules.lp | python draw.py 4 | -------------------------------------------------------------------------------- /pacman/mapgen/img/conv_maze.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 106 | 107 | 108 | -------------------------------------------------------------------------------- /pacman/mapgen/img/origmaps_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/mapgen/img/origmaps_2x.png -------------------------------------------------------------------------------- /pacman/mapgen/img/origmaps_2x_print.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/mapgen/img/origmaps_2x_print.png -------------------------------------------------------------------------------- /pacman/mapgen/img/origmaps_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/mapgen/img/origmaps_3x.png -------------------------------------------------------------------------------- /pacman/mapgen/img/origmaps_3x_print.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/mapgen/img/origmaps_3x_print.png -------------------------------------------------------------------------------- /pacman/mapgen/img/origmaps_path.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/mapgen/img/origmaps_path.png -------------------------------------------------------------------------------- /pacman/mapgen/img/spanning1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/mapgen/img/spanning1.png -------------------------------------------------------------------------------- /pacman/mapgen/randomfill/test.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | import unittest 3 | from walls import * 4 | 5 | class MapTest(unittest.TestCase): 6 | 7 | def assertMap(self,expected): 8 | actual = str(self.tileMap).splitlines() 9 | expected = format_map_str(expected,"\n").splitlines() 10 | self.assertEqual(actual,expected, "\n".join(repr(a)+' '+repr(b) for a,b in zip(actual,expected))) 11 | 12 | def test1(self): 13 | self.tileMap = Map(9,9,""" 14 | ......... 15 | ..||..... 16 | ..||..... 17 | ......... 18 | ......... 19 | ......... 20 | ......... 21 | ......... 22 | ......... 23 | """) 24 | self.tileMap.add_wall_obstacle(1,4) 25 | self.assertMap(""" 26 | ......... 27 | ..||..... 28 | ..||..... 29 | ......... 30 | ..||..... 31 | ..||..... 32 | ..||..... 33 | ......... 34 | ......... 35 | """) 36 | 37 | def test2(self): 38 | self.tileMap = Map(9,9,""" 39 | ......... 40 | ..||..... 41 | ..||..... 42 | ......... 43 | ......... 44 | ......... 45 | ......... 46 | ......... 47 | ......... 48 | """) 49 | self.tileMap.add_wall_obstacle(5,1) 50 | self.assertMap(""" 51 | ......... 52 | ..||..... 53 | ..||.|||. 54 | .....|||. 55 | ......... 56 | ......... 57 | ......... 58 | ......... 59 | ......... 60 | """) 61 | 62 | def test3(self): 63 | self.tileMap = Map(11,7,""" 64 | ........... 65 | ...||...... 66 | ...||...... 67 | ........... 68 | ..||....... 69 | ..||....... 70 | ........... 71 | """) 72 | self.tileMap.add_wall_obstacle(7,2) 73 | self.assertMap(""" 74 | ........... 75 | ...||...... 76 | ...||...... 77 | ......||||. 78 | ..||.|||||. 79 | ..||.||.... 80 | ........... 81 | """) 82 | 83 | def test4(self): 84 | self.tileMap = Map(15,8,""" 85 | ............... 86 | .....||.||..... 87 | .....||.||..... 88 | .....||....|||. 89 | ...........|||. 90 | .||........|||. 91 | .||............ 92 | .........||.||. 93 | """) 94 | self.tileMap.add_wall_obstacle(3,4) 95 | self.assertMap(""" 96 | ............... 97 | .....||.||..... 98 | .....||.||..... 99 | .....||....|||. 100 | ........||.|||. 101 | .||.||||||.|||. 102 | .||.||||....... 103 | .........||.||. 104 | """) 105 | 106 | if __name__ == "__main__": 107 | unittest.main() 108 | -------------------------------------------------------------------------------- /pacman/mapgen/simple/README: -------------------------------------------------------------------------------- 1 | The goal here is to explore a simple algorithm that can be implemented more easily in z80 2 | -------------------------------------------------------------------------------- /pacman/mapgen/spanningtree/README.md: -------------------------------------------------------------------------------- 1 | 2 | Spanning Tree Method 3 | -------------------- 4 | 5 | Conventional mazes can be created by generating a spanning tree of a 6 | rectangular grid of nodes. [Check out this great presentation by Jamis Buck to 7 | learn about conventional maze generators](http://www.jamisbuck.org/presentations/rubyconf2011/index.html). 8 | 9 | We can translate such spanning trees to be used in a Pac-Man tilemap by placing each node in the center of a 3x3 tile cell: 10 | 11 | 12 | -------------------------------------------------------------------------------- /pacman/mapgen/tetris/README.md: -------------------------------------------------------------------------------- 1 | # Generate Pac-Man Mazes using Tetris-stacking 2 | 3 | ## Progress 4 | 5 | This is a sample of the current generating model: 6 | 7 | 8 | 9 | [Click here to view the actual demo.](http://shaunew.github.com/Pac-Man/mapgen/tetris) 10 | 11 | ## Summary 12 | 13 | In the pursuit of a simple maze generator for Pac-Man, we first visualize the 14 | structure of the original Pac-Man maps as a tiling of blocks. Then, we attempt 15 | to simplify this structure by lowering its resolution while still maintaining features. 16 | (The maps are symmetric, so only the middle to the right half are shown.) 17 | 18 | The first row shows the simplified representations. The second row shows the 19 | edits to each cell that must be performed after upscaling by a factor of 3. 20 | A blue down arrow means the cell's height must be increased by 1. A red left 21 | arrow means the cell's width must be decreased by 1. 22 | 23 | 24 | 25 | We propose that one may generate a random simplified map (phase 1), then transform 26 | it to a correctly sized map by upscaling and applying some clever 27 | shifting/resizing of a few key wall segments (phase 2). 28 | 29 | ## Contents 30 | 31 | * index.htm currently displays a demo of random simple maps using mapgen.js. 32 | * drawpresets.htm draws the simplified versions of the original maps. 33 | -------------------------------------------------------------------------------- /pacman/mapgen/tetris/many.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

10 | 11 |

12 | 13 | 14 | 15 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /pacman/mapgen/tetris/presets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/mapgen/tetris/presets.png -------------------------------------------------------------------------------- /pacman/mapgen/tetris/simplify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/mapgen/tetris/simplify.png -------------------------------------------------------------------------------- /pacman/mapgen/tetris/working.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/mapgen/tetris/working.png -------------------------------------------------------------------------------- /pacman/mission: -------------------------------------------------------------------------------- 1 | 2 | There is a lot of beauty buried within this cultural icon, away from view. Let us uncover and preserve what is unseen, and to enrich a subject that is already present in the minds of billions. 3 | 4 | After 30 years of copyright protection, let the world have this resource so that history will know intimately the game that birthed the most interactive and enriching medium for human art the world has ever seen. 5 | 6 | Don't let laws fade the secret beauty of this game into obscurity forever. Preserve Pac-Man. 7 | -------------------------------------------------------------------------------- /pacman/promo/index.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /pacman/promo/philipp.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/promo/philipp.ogg -------------------------------------------------------------------------------- /pacman/promo/render.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /pacman/promo/server.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var fs = require('fs'); 3 | 4 | var app = express(); 5 | 6 | app.post('/frames/:name', function(req,res) { 7 | var filename = 'frames/'+req.params.name; 8 | 9 | var dataURI = ""; 10 | 11 | req.on('data', function(data) { 12 | dataURI += data; 13 | }); 14 | 15 | req.on('end', function() { 16 | var regex = /^data:.+\/(.+);base64,(.*)$/; 17 | var matches = dataURI.match(regex); 18 | var data = matches[2]; 19 | var buffer = new Buffer(data, 'base64'); 20 | fs.writeFile(filename, buffer, function(err) { 21 | if (err) { 22 | res.status(400).send('failed'); 23 | console.log("FAILED "+filename); 24 | } 25 | else { 26 | res.status(201).send('success'); 27 | console.log("saved "+filename); 28 | } 29 | }); 30 | }); 31 | 32 | }); 33 | 34 | app.listen(3000); 35 | -------------------------------------------------------------------------------- /pacman/randturn/.gitignore: -------------------------------------------------------------------------------- 1 | pacman.6e 2 | pacman.6f 3 | 4 | -------------------------------------------------------------------------------- /pacman/randturn/index.htm: -------------------------------------------------------------------------------- 1 | 2 |

3 | Generated by make_turn_stats.py. 4 |

5 | 6 |
  7 | Stats on Frightened Ghost Turns
  8 | (based on Midway Pac-Man ROM)
  9 | 
 10 | Probability that ghost will TRY a direction:
 11 | 
 12 | 
 13 |        16%
 14 |         ^
 15 |         |
 16 | 30% <--   --> 25%
 17 |         |
 18 |         v
 19 |        29%
 20 | 
 21 | 
 22 | Actual probability when some turns are constrained:
 23 | 
 24 | 
 25 |        16%
 26 |         ^
 27 |         |
 28 | 84% <--   --X    
 29 |         |
 30 |         X
 31 |           
 32 | 
 33 | 
 34 |        46%
 35 |         ^
 36 |         |
 37 |     X--   --X    
 38 |         |
 39 |         v
 40 |        54%
 41 | 
 42 | 
 43 |        75%
 44 |         ^
 45 |         |
 46 |     X--   --> 25%
 47 |         |
 48 |         X
 49 |           
 50 | 
 51 | 
 52 |           
 53 |         X
 54 |         |
 55 | 30% <--   --X    
 56 |         |
 57 |         v
 58 |        70%
 59 | 
 60 | 
 61 |           
 62 |         X
 63 |         |
 64 | 58% <--   --> 42%
 65 |         |
 66 |         X
 67 |           
 68 | 
 69 | 
 70 |           
 71 |         X
 72 |         |
 73 |     X--   --> 71%
 74 |         |
 75 |         v
 76 |        29%
 77 | 
 78 | 
 79 |        16%
 80 |         ^
 81 |         |
 82 | 30% <--   --X    
 83 |         |
 84 |         v
 85 |        54%
 86 | 
 87 | 
 88 |        16%
 89 |         ^
 90 |         |
 91 | 58% <--   --> 25%
 92 |         |
 93 |         X
 94 |           
 95 | 
 96 | 
 97 |        46%
 98 |         ^
 99 |         |
100 |     X--   --> 25%
101 |         |
102 |         v
103 |        29%
104 | 
105 | 
106 |           
107 |         X
108 |         |
109 | 30% <--   --> 42%
110 |         |
111 |         v
112 |        29%
113 | 
114 | 
115 | -------------------------------------------------------------------------------- /pacman/randturn/lcg_period_test.py: -------------------------------------------------------------------------------- 1 | 2 | class LCG: 3 | def __init__(self, a,c,m, seed=0): 4 | self.a = a 5 | self.c = c 6 | self.m = m 7 | self.x = seed 8 | 9 | def next(self): 10 | self.x = (self.a * self.x + self.c) % self.m 11 | return self.x 12 | 13 | if __name__ == "__main__": 14 | 15 | m = 0x2000 16 | lcg = LCG(5,1,m) 17 | results = [lcg.next() for i in xrange(m)] 18 | 19 | numUnique = len(set(results)) 20 | if numUnique == m: 21 | print "full cycling period" 22 | else: 23 | print "not a full period", numUnique 24 | 25 | print "%-4s %-4s" % ('step', 'value') 26 | print "-"*10 27 | for i,x in enumerate(results): 28 | print "%-4X %04X" % (i, x) 29 | -------------------------------------------------------------------------------- /pacman/randturn/make_turn_stats.py: -------------------------------------------------------------------------------- 1 | """ 2 | This script builds a statistical model of the frightened ghost turns in Pac-Man. 3 | 4 | It depends on two files in the current directory: 5 | - pacman.6e 6 | - pacman.6f 7 | 8 | Those two files constitute to the first 8K of the Pac-Man ROM, and it is used 9 | as the random turn table. 10 | """ 11 | 12 | 13 | template = """ 14 | DDD 15 | ^ 16 | | 17 | CCC <-- --> AAA 18 | | 19 | v 20 | BBB 21 | """ 22 | 23 | def printTurnProb(turnProb): 24 | 25 | blank = " "*3 26 | def getPercentStr(val): 27 | if val == 0: 28 | return " "*3 29 | else: 30 | return ("%02d" % int(val*100+0.5)) + "%" 31 | 32 | def insertPercentIntoStr(tempStr, i, val): 33 | s = getPercentStr(val) 34 | keys = ('A','B','C','D') 35 | for char in s: 36 | tempStr = tempStr.replace(keys[i], char, 1) 37 | keys = ('>','v','<','^') 38 | if s == blank: 39 | tempStr = tempStr.replace(keys[i], 'X') 40 | return tempStr 41 | 42 | result = template 43 | for i,val in enumerate(turnProb): 44 | result = insertPercentIntoStr(result, i, val) 45 | 46 | print result 47 | 48 | if __name__ == "__main__": 49 | 50 | turnNames = ['right','down','left','up'] 51 | 52 | def getTryTurnProb(bytes_8k): 53 | freq = [0,0,0,0] 54 | for b in bytes_8k: 55 | b = ord(b) & 3 56 | freq[b] += 1 57 | total = sum(freq) 58 | return [float(i)/total for i in freq] 59 | 60 | pacman_6e = open('pacman.6e', 'rb').read() 61 | pacman_6f = open('pacman.6f', 'rb').read() 62 | 63 | # The probability that ghost will try a direction. 64 | turnTryProb = getTryTurnProb(pacman_6e + pacman_6f) 65 | 66 | # This is a list of possible openings. We are only interested in 2 and 3 openings. 67 | cases = [ 68 | # 2 openings (4 choose 2 = 6 cases) 69 | [0,0,1,1], 70 | [0,1,0,1], 71 | [1,0,0,1], 72 | [0,1,1,0], 73 | [1,0,1,0], 74 | [1,1,0,0], 75 | 76 | # 3 openings (4 choose 3 = 4 cases) 77 | [0,1,1,1], 78 | [1,0,1,1], 79 | [1,1,0,1], 80 | [1,1,1,0], 81 | ] 82 | 83 | def getTurnProbFromOpenings(openings): 84 | def getNextOpening(i): 85 | while not openings[i]: 86 | i = (i+1)%4; 87 | return i 88 | 89 | turnProb = [0,0,0,0] 90 | for i in range(4): 91 | turnProb[getNextOpening(i)] += turnTryProb[i] 92 | 93 | return turnProb 94 | 95 | def printTurnProbFromOpenings(openings): 96 | turnProb = getTurnProbFromOpenings(openings) 97 | printTurnProb(turnProb) 98 | 99 | 100 | print "Stats on Frightened Ghost Turns" 101 | print "(based on Midway Pac-Man ROM)" 102 | print 103 | print "Probability that ghost will TRY a direction:" 104 | print 105 | 106 | printTurnProb(turnTryProb) 107 | 108 | print 109 | print "Actual probability when some turns are constrained:" 110 | print 111 | 112 | for case in cases: 113 | printTurnProbFromOpenings(case) 114 | -------------------------------------------------------------------------------- /pacman/randturn/turn_stats: -------------------------------------------------------------------------------- 1 | Stats on Frightened Ghost Turns 2 | (based on Midway Pac-Man ROM) 3 | 4 | Probability that ghost will TRY a direction: 5 | 6 | 7 | 16% 8 | ^ 9 | | 10 | 30% <-- --> 25% 11 | | 12 | v 13 | 29% 14 | 15 | 16 | Actual probability when some turns are constrained: 17 | 18 | 19 | 16% 20 | ^ 21 | | 22 | 84% <-- --X 23 | | 24 | X 25 | 26 | 27 | 28 | 46% 29 | ^ 30 | | 31 | X-- --X 32 | | 33 | v 34 | 54% 35 | 36 | 37 | 75% 38 | ^ 39 | | 40 | X-- --> 25% 41 | | 42 | X 43 | 44 | 45 | 46 | 47 | X 48 | | 49 | 30% <-- --X 50 | | 51 | v 52 | 70% 53 | 54 | 55 | 56 | X 57 | | 58 | 58% <-- --> 42% 59 | | 60 | X 61 | 62 | 63 | 64 | 65 | X 66 | | 67 | X-- --> 71% 68 | | 69 | v 70 | 29% 71 | 72 | 73 | 16% 74 | ^ 75 | | 76 | 30% <-- --X 77 | | 78 | v 79 | 54% 80 | 81 | 82 | 16% 83 | ^ 84 | | 85 | 58% <-- --> 25% 86 | | 87 | X 88 | 89 | 90 | 91 | 46% 92 | ^ 93 | | 94 | X-- --> 25% 95 | | 96 | v 97 | 29% 98 | 99 | 100 | 101 | X 102 | | 103 | 30% <-- --> 42% 104 | | 105 | v 106 | 29% 107 | 108 | -------------------------------------------------------------------------------- /pacman/shots/color01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/color01.png -------------------------------------------------------------------------------- /pacman/shots/color02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/color02.png -------------------------------------------------------------------------------- /pacman/shots/color03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/color03.png -------------------------------------------------------------------------------- /pacman/shots/color04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/color04.png -------------------------------------------------------------------------------- /pacman/shots/color05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/color05.png -------------------------------------------------------------------------------- /pacman/shots/color06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/color06.png -------------------------------------------------------------------------------- /pacman/shots/color07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/color07.png -------------------------------------------------------------------------------- /pacman/shots/color08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/color08.png -------------------------------------------------------------------------------- /pacman/shots/color09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/color09.png -------------------------------------------------------------------------------- /pacman/shots/cookie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/cookie.png -------------------------------------------------------------------------------- /pacman/shots/cyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/cyan.png -------------------------------------------------------------------------------- /pacman/shots/learn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/learn.png -------------------------------------------------------------------------------- /pacman/shots/montage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/montage.png -------------------------------------------------------------------------------- /pacman/shots/montage2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/montage2.png -------------------------------------------------------------------------------- /pacman/shots/mspac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/mspac.png -------------------------------------------------------------------------------- /pacman/shots/orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/orange.png -------------------------------------------------------------------------------- /pacman/shots/otto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/otto.png -------------------------------------------------------------------------------- /pacman/shots/pac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/pac.png -------------------------------------------------------------------------------- /pacman/shots/paths.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/paths.png -------------------------------------------------------------------------------- /pacman/shots/pink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/pink.png -------------------------------------------------------------------------------- /pacman/shots/practice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/practice.png -------------------------------------------------------------------------------- /pacman/shots/procedural.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/procedural.png -------------------------------------------------------------------------------- /pacman/shots/red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/red.png -------------------------------------------------------------------------------- /pacman/shots/rewind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/rewind.png -------------------------------------------------------------------------------- /pacman/shots/targets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/shots/targets.png -------------------------------------------------------------------------------- /pacman/sounds/coffee-break-music.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/sounds/coffee-break-music.mp3 -------------------------------------------------------------------------------- /pacman/sounds/credit.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/sounds/credit.mp3 -------------------------------------------------------------------------------- /pacman/sounds/eating-fruit.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/sounds/eating-fruit.mp3 -------------------------------------------------------------------------------- /pacman/sounds/eating-ghost.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/sounds/eating-ghost.mp3 -------------------------------------------------------------------------------- /pacman/sounds/eating.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/sounds/eating.mp3 -------------------------------------------------------------------------------- /pacman/sounds/extend.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/sounds/extend.mp3 -------------------------------------------------------------------------------- /pacman/sounds/ghost-normal-move.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/sounds/ghost-normal-move.mp3 -------------------------------------------------------------------------------- /pacman/sounds/ghost-return-to-home.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/sounds/ghost-return-to-home.mp3 -------------------------------------------------------------------------------- /pacman/sounds/ghost-spurt-move-1.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/sounds/ghost-spurt-move-1.mp3 -------------------------------------------------------------------------------- /pacman/sounds/ghost-spurt-move-2.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/sounds/ghost-spurt-move-2.mp3 -------------------------------------------------------------------------------- /pacman/sounds/ghost-spurt-move-3.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/sounds/ghost-spurt-move-3.mp3 -------------------------------------------------------------------------------- /pacman/sounds/ghost-spurt-move-4.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/sounds/ghost-spurt-move-4.mp3 -------------------------------------------------------------------------------- /pacman/sounds/ghost-turn-to-blue.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/sounds/ghost-turn-to-blue.mp3 -------------------------------------------------------------------------------- /pacman/sounds/miss.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/sounds/miss.mp3 -------------------------------------------------------------------------------- /pacman/sounds/original/pacman-sounds.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/sounds/original/pacman-sounds.m4a -------------------------------------------------------------------------------- /pacman/sounds/original/pacman-sounds.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/sounds/original/pacman-sounds.mp3 -------------------------------------------------------------------------------- /pacman/sounds/start-music.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/sounds/start-music.mp3 -------------------------------------------------------------------------------- /pacman/sprites/Cookie-Monster-Pac-Man-Tee.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/sprites/Cookie-Monster-Pac-Man-Tee.gif -------------------------------------------------------------------------------- /pacman/sprites/index.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 15 | 16 | 17 |
18 | Scale: 19 |
20 | 21 | 22 | 23 | 26 | 27 | 28 | 29 | 30 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /pacman/sprites/otto.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/sprites/otto.jpg -------------------------------------------------------------------------------- /pacman/sprites/spritecloseup.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/sprites/spritecloseup.gif -------------------------------------------------------------------------------- /pacman/sprites/spritesheet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softdev050/RemotePacMan/cc6decf261957f60a12bc78bd2b93496f2d2c912/pacman/sprites/spritesheet.png -------------------------------------------------------------------------------- /pacman/src/.htaccess: -------------------------------------------------------------------------------- 1 | Options +Indexes 2 | 3 | -------------------------------------------------------------------------------- /pacman/src/actors.js: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////////////// 2 | // create all the actors 3 | 4 | var blinky = new Ghost(); 5 | blinky.name = "blinky"; 6 | blinky.color = "#FF0000"; 7 | blinky.pathColor = "rgba(255,0,0,0.8)"; 8 | blinky.isVisible = true; 9 | 10 | var pinky = new Ghost(); 11 | pinky.name = "pinky"; 12 | pinky.color = "#FFB8FF"; 13 | pinky.pathColor = "rgba(255,184,255,0.8)"; 14 | pinky.isVisible = true; 15 | 16 | var inky = new Ghost(); 17 | inky.name = "inky"; 18 | inky.color = "#00FFFF"; 19 | inky.pathColor = "rgba(0,255,255,0.8)"; 20 | inky.isVisible = true; 21 | 22 | var clyde = new Ghost(); 23 | clyde.name = "clyde"; 24 | clyde.color = "#FFB851"; 25 | clyde.pathColor = "rgba(255,184,81,0.8)"; 26 | clyde.isVisible = true; 27 | 28 | var pacman = new Player(); 29 | pacman.name = "pacman"; 30 | pacman.color = "#FFFF00"; 31 | pacman.pathColor = "rgba(255,255,0,0.8)"; 32 | 33 | // order at which they appear in original arcade memory 34 | // (suggests drawing/update order) 35 | var actors = [blinky, pinky, inky, clyde, pacman]; 36 | var ghosts = [blinky, pinky, inky, clyde]; 37 | -------------------------------------------------------------------------------- /pacman/src/elroyTimer.js: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////////////// 2 | // Elroy Timer 3 | 4 | // Determines when to put blinky into faster elroy modes 5 | 6 | var elroyTimer = (function(){ 7 | 8 | // get the number of dots left that should trigger elroy stage #1 or #2 9 | var getDotsEatenLimit = (function(){ 10 | var dotsLeft = [ 11 | [20,30,40,40,40,50,50,50,60,60,60,70,70,70,100,100,100,100,120,120,120], // elroy1 12 | [10,15,20,20,20,25,25,25,30,30,30,40,40,40, 50, 50, 50, 50, 60, 60, 60]]; // elroy2 13 | return function(stage) { 14 | var i = level; 15 | if (i>21) i = 21; 16 | var pacman_max_pellets = 244; 17 | return pacman_max_pellets - dotsLeft[stage-1][i-1]; 18 | }; 19 | })(); 20 | 21 | // when level restarts, blinky must wait for clyde to leave home before resuming elroy mode 22 | var waitForClyde; 23 | 24 | var savedWaitForClyde = {}; 25 | 26 | // save state at time t 27 | var save = function(t) { 28 | savedWaitForClyde[t] = waitForClyde; 29 | }; 30 | 31 | // load state at time t 32 | var load = function(t) { 33 | waitForClyde = savedWaitForClyde[t]; 34 | }; 35 | 36 | return { 37 | onNewLevel: function() { 38 | waitForClyde = false; 39 | }, 40 | onRestartLevel: function() { 41 | waitForClyde = true; 42 | }, 43 | update: function() { 44 | 45 | // stop waiting for clyde when clyde leaves home 46 | if (waitForClyde && clyde.mode != GHOST_PACING_HOME) 47 | waitForClyde = false; 48 | 49 | if (waitForClyde) { 50 | blinky.elroy = 0; 51 | } 52 | else { 53 | if (map.dotsEaten >= getDotsEatenLimit(2)) { 54 | blinky.elroy = 2; 55 | } 56 | else if (map.dotsEaten >= getDotsEatenLimit(1)) { 57 | blinky.elroy = 1; 58 | } 59 | else { 60 | blinky.elroy = 0; 61 | } 62 | } 63 | }, 64 | save: save, 65 | load: load, 66 | }; 67 | })(); 68 | -------------------------------------------------------------------------------- /pacman/src/galagaStars.js: -------------------------------------------------------------------------------- 1 | 2 | var galagaStars = (function() { 3 | 4 | var stars = {}; 5 | var numStars = 200; 6 | 7 | var width = mapWidth; 8 | var height = Math.floor(mapHeight*1.5); 9 | 10 | var ypos; 11 | var yspeed=-0.5; 12 | 13 | var t; 14 | var flickerPeriod = 120; 15 | var flickerSteps = 4; 16 | var flickerGap = flickerPeriod / flickerSteps; 17 | 18 | var init = function() { 19 | t = 0; 20 | ypos = 0; 21 | var i; 22 | for (i=0; i= flickerGap) { 53 | y = star.y - ypos; 54 | if (y < 0) { 55 | y += height; 56 | } 57 | ctx.fillStyle = star.color; 58 | ctx.fillRect(star.x, y, 1,1); 59 | } 60 | } 61 | }; 62 | 63 | return { 64 | init: init, 65 | draw: draw, 66 | update: update, 67 | }; 68 | 69 | })(); 70 | -------------------------------------------------------------------------------- /pacman/src/hud.js: -------------------------------------------------------------------------------- 1 | 2 | var hud = (function(){ 3 | 4 | var on = false; 5 | 6 | return { 7 | 8 | update: function() { 9 | var valid = this.isValidState(); 10 | if (valid != on) { 11 | on = valid; 12 | if (on) { 13 | inGameMenu.onHudEnable(); 14 | vcr.onHudEnable(); 15 | } 16 | else { 17 | inGameMenu.onHudDisable(); 18 | vcr.onHudDisable(); 19 | } 20 | } 21 | }, 22 | draw: function(ctx) { 23 | inGameMenu.draw(ctx); 24 | vcr.draw(ctx); 25 | }, 26 | isValidState: function() { 27 | return ( 28 | state == playState || 29 | state == newGameState || 30 | state == readyNewState || 31 | state == readyRestartState || 32 | state == finishState || 33 | state == deadState || 34 | state == overState); 35 | }, 36 | }; 37 | 38 | })(); 39 | -------------------------------------------------------------------------------- /pacman/src/inherit.js: -------------------------------------------------------------------------------- 1 | // Apparently, the mutable, non-standard __proto__ property creates a lot of complexity for JS optimizers, 2 | // so it may be phased out in future JS versions. It's not even supported in Internet Explorer. 3 | // 4 | // Object.create does everything that I would use a mutable __proto__ for, but this isn't implemented everywhere yet. 5 | // 6 | // So instead of the following: 7 | // 8 | // var obj = { 9 | // __proto__: parentObj, 10 | // hello: function() { return "world"; }, 11 | // }; 12 | // 13 | // You can use this: 14 | // 15 | // var obj = newChildObject(parentObj, { 16 | // hello: function() { return "world"; }, 17 | // }; 18 | 19 | var newChildObject = function(parentObj, newObj) { 20 | 21 | // equivalent to: var resultObj = { __proto__: parentObj }; 22 | var x = function(){}; 23 | x.prototype = parentObj; 24 | var resultObj = new x(); 25 | 26 | // store new members in resultObj 27 | if (newObj) { 28 | var hasProp = {}.hasOwnProperty; 29 | for (var name in newObj) { 30 | if (hasProp.call(newObj, name)) { 31 | resultObj[name] = newObj[name]; 32 | } 33 | } 34 | } 35 | 36 | return resultObj; 37 | }; 38 | 39 | var DEBUG = false; 40 | -------------------------------------------------------------------------------- /pacman/src/main.js: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////////////// 2 | // Entry Point 3 | 4 | window.addEventListener("load", function() { 5 | loadHighScores(); 6 | initRenderer(); 7 | atlas.create(); 8 | initSwipe(); 9 | var anchor = window.location.hash.substring(1); 10 | if (anchor == "learn") { 11 | switchState(learnState); 12 | } 13 | else if (anchor == "cheat_pac" || anchor == "cheat_mspac") { 14 | gameMode = (anchor == "cheat_pac") ? GAME_PACMAN : GAME_MSPACMAN; 15 | practiceMode = true; 16 | switchState(newGameState); 17 | for (var i=0; i<4; i++) { 18 | ghosts[i].isDrawTarget = true; 19 | ghosts[i].isDrawPath = true; 20 | } 21 | } 22 | else { 23 | switchState(homeState); 24 | } 25 | executive.init(); 26 | }); 27 | -------------------------------------------------------------------------------- /pacman/src/random.js: -------------------------------------------------------------------------------- 1 | 2 | var getRandomColor = function() { 3 | return '#'+('00000'+(Math.random()*(1<<24)|0).toString(16)).slice(-6); 4 | }; 5 | 6 | var getRandomInt = function(min,max) { 7 | return Math.floor(Math.random() * (max-min+1)) + min; 8 | }; 9 | 10 | -------------------------------------------------------------------------------- /pacman/src/sound.js: -------------------------------------------------------------------------------- 1 | /* Sound handlers added by Dr James Freeman who was sad such a great reverse was a silent movie */ 2 | 3 | var audio = new preloadAudio(); 4 | 5 | function audioTrack(url, volume) { 6 | var audio = new Audio(url); 7 | if (volume) audio.volume = volume; 8 | audio.load(); 9 | var looping = false; 10 | this.play = function(noResetTime) { 11 | playSound(noResetTime); 12 | }; 13 | this.startLoop = function(noResetTime) { 14 | if (looping) return; 15 | audio.addEventListener('ended', audioLoop); 16 | audioLoop(noResetTime); 17 | looping = true; 18 | }; 19 | this.stopLoop = function(noResetTime) { 20 | try{ audio.removeEventListener('ended', audioLoop) } catch (e) {}; 21 | audio.pause(); 22 | if (!noResetTime) audio.currentTime = 0; 23 | looping = false; 24 | }; 25 | this.isPlaying = function() { 26 | return !audio.paused; 27 | }; 28 | this.isPaused = function() { 29 | return audio.paused; 30 | }; 31 | this.stop = this.stopLoop; 32 | 33 | function audioLoop(noResetTime) { 34 | playSound(noResetTime); 35 | } 36 | function playSound(noResetTime) { 37 | // for really rapid sound repeat set noResetTime 38 | if(!audio.paused) { 39 | audio.pause(); 40 | if (!noResetTime ) audio.currentTime = 0; 41 | } 42 | try{ 43 | var playPromise = audio.play(); 44 | if(playPromise) { 45 | playPromise.then(function(){}).catch(function(err){}); 46 | } 47 | } 48 | catch(err){ console.error(err) } 49 | } 50 | } 51 | 52 | 53 | function preloadAudio() { 54 | 55 | this.credit = new audioTrack('sounds/credit.mp3'); 56 | this.coffeeBreakMusic = new audioTrack('sounds/coffee-break-music.mp3'); 57 | this.die = new audioTrack('sounds/miss.mp3'); 58 | this.ghostReturnToHome = new audioTrack('sounds/ghost-return-to-home.mp3'); 59 | this.eatingGhost = new audioTrack('sounds/eating-ghost.mp3'); 60 | this.ghostTurnToBlue = new audioTrack('sounds/ghost-turn-to-blue.mp3', 0.5); 61 | this.eatingFruit = new audioTrack('sounds/eating-fruit.mp3'); 62 | this.ghostSpurtMove1 = new audioTrack('sounds/ghost-spurt-move-1.mp3'); 63 | this.ghostSpurtMove2 = new audioTrack('sounds/ghost-spurt-move-2.mp3'); 64 | this.ghostSpurtMove3 = new audioTrack('sounds/ghost-spurt-move-3.mp3'); 65 | this.ghostSpurtMove4 = new audioTrack('sounds/ghost-spurt-move-4.mp3'); 66 | this.ghostNormalMove = new audioTrack('sounds/ghost-normal-move.mp3'); 67 | this.extend = new audioTrack('sounds/extend.mp3'); 68 | this.eating = new audioTrack('sounds/eating.mp3', 0.5); 69 | this.startMusic = new audioTrack('sounds/start-music.mp3'); 70 | 71 | this.ghostReset = function(noResetTime) { 72 | for (var s in this) { 73 | if (s == 'silence' || s == 'ghostReset' ) return; 74 | if (s.match(/^ghost/)) this[s].stopLoop(noResetTime); 75 | } 76 | }; 77 | 78 | this.silence = function(noResetTime) { 79 | for (var s in this) { 80 | if (s == 'silence' || s == 'ghostReset' ) return; 81 | this[s].stopLoop(noResetTime); 82 | } 83 | } 84 | } 85 | --------------------------------------------------------------------------------