forked from stefanwille/pacman-react
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Tasks.txt
135 lines (126 loc) · 6.59 KB
/
Tasks.txt
1
2
3
4
5
6
7
8
9
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
- 😘Extract makeGhosts
- 😘Try to remove GameInterface
- 😘Refactor store so that it doesnt get in the way
- 😘Make scatter mode work
- 😘Warum geht der Ghost nicht von 1/7 nach 1/8?
- 😘Warum geht der Ghost nach -1/28 statt bei 1/1 stehen zu bleiben?
- 😘Warum geht die Anzeige kaputt?
- Have different scatter goals per ghost
- 😘Prevent ghost from going backwards, buy excluding the back direction in the wayfinding frontier
- 😘Break up the CSS into many files
- 😘Add tailwind to remove hacks
- 😘useLocaleStore instead of useMemo
- 😘Make the game display cleanly on a MacBook
- 😘Have a backref from PacMan to Game to access timestamp
- 😘Extract Game.pills into Maze store
- 😘Fix the missing ways at 7/14 and 8/14
- 😘Turn AnimationTestPage into a GamePage that plays the game
- 😘Let the ghosts start in scatter mode
- 😘Implement individual ghosts behaviours in scatter mode
- 😘Ghosts general behaviour:
- 😘At each tile they choose a new target tile to go toward.
- 😘Then they inspect all neighbour tiles
- 😘A tile that is in opposite direction is removed.
- 😘Tiles in a wall are removed.
- 😘From the remaining moves, the distance to the target is calculated. The closest one is chosen as the next tile.
- 😘If there are multiple tiles with the same distance, the tiles are prioritized. Up is highest.
- 😘Then the new direction is chosen towards the new tile
- 😘When the ghost reaches a position that would make it stand still, choose the first free direction that is not backward instead.
- 😘Make ghost#wayPoints a @computed value - dependent on tileCoordinates and targetTile
- 😘Fix chooseNextTile() / Found no candidate
- 😘Support tunnel
- 😘SShow ghost targets
- 😘Implement individual ghosts behaviours in hunt mode:
- 😘Blinky: PacMan
- 😘Pinky: The tile 4 tiles in front of pacman. Only if pacman is facing up, pinkys target is 4 tiles up and 4 tiles to the left.
- 😘Inky:
o 😘An intermediate tile is chosen. It is 2 tiles in front of pacman. Only if pacman is facing up, pinkys target is 2 tiles up and 2 tiles to the left.
o 😘Then the vector from the intermediate tile to Blinky is rotated 180 degrees. This is inkys target tile.
- 😘Clyde:
o 😘When >= 8 tiles away from pacMan: Target is PacMan.
o 😘When < 8 tiles away: Same tile as in scatter mode.
- 😘After 7 seconds, go to hunt mode. After another 20 seconds, go to back to scatter mode
- 😘Enable ghosts to through the tunnel
- 😘findNextTile: Always use waypoints[1] as the next tile instead of searching through waypoints
- 😘Let ghosts move slower in tunnel
- 😘Remove ghost.timestamp
- 😘When entering chase mode, ghosts turn direction 180 degrees
- 😘When entering scatter mode, ghosts turn direction 180 degrees
- When pac man dies
- 😘let all ghosts pause
- 😘wait 5 seconds
- When pac man has some live left
- 😘revive pac man
- 😘reset the ghosts
- 😘 When pac man lost all lives
- 😘Hide the ghosts and pac man and show "Game Over"
- 😘 Separate SCREEN_TILE_SIZE and SPRITE_TILE_SIZE.
- 😘 When I go to the bottom directly after start, the maze moves around on the screen. Probably because of the target sprite outside the maze.
- 😘 Debug approach:
- 😘 in Game constructor, place pac man and ghosts at the bottom
- 😘 Add a pause key
- 😘 Idea to fix:
- 😘 Have a container for all sprites (= Board)
- 😘 Set it to overflow: none
- 😘 Switch Ant to v4
- 😘 Have ghost state view
- 😘Ghosts that kills pac man enters scatter mode many times, over and over This is most visible in game over, when this happens forever.
- Frightened Mode:
- 😘 Detect collions with energizers
- 😘 Increase score
- 😘 Remove energizer
- When Pac man eats an energizer
- 😘 Ghosts enter frightened state
- 😘 Pac Man enters chasing state
- 😘 the Frightened timer gets reset to 0
- 😘 game.killed ghost counter get reset to 0
- on collision a ghost dies
- 😘 its state becomes "dead"
- 😘 dead ghost counter increments
- 😘 score increases 100, 200, 400, 800
- 😘 The ghost shows the "eyes" sprite
- 😘 No collision detection with a dead ghost
- 😘 Can I use a broken number as target for the ghost? To guide it back to the house? And out of the house? It would be 13.5/11
😘 Bug: After a ghost died, it ignores walls and just always moves in the same direction.
- 😘 The problem seems to be that the ghost never meets a tile center. This is problem a consequence of the frightened ghost moving at half speed.... A solution would be change speed only at a tile center.
😘 Bug: After a ghost died, the energizer timer gets reset to 0. That's not supposed to happen.
- Dead ghosts:
- 😘 Go to the box
- 😘 Why can't they pass into the box anymore?
- 😘 Write a test
- 😘 Write timer: TimeoutTimer
- 😘 Move Score to the top
- 😘 Change extra live direction
- 😘 Add GameDebugView with Restart Game
- 😘 Move Revive PacMan to PacManDebugView
- 😘 in Pacmans chasing state
- when the energizer timer exceeds the chasing time,
- 😘 Pac man goes back to eating mode
- 😘 Alive Ghosts go to scatter state
- in frightened state Ghosts
- 😘 They show a frightened sprite
- 😘 They move slowly
- 😘 In each tile they choose a random direction that is not backward and not into a wall
- 😘 When late in the frightened phase, they show the "late frightened" sprite
- 😘 During the last 2 seconds of being frightened they show a white and blue blinking sprite
- 😘 Fix bug where ghost in tunnel doesnt follow its target tile. Seems to happen also when pacman hits one of the ghosts. With all ghosts.
- 😘 Support notebook screen - make debug view smaller
- 😘 Don't pause ghosts on pac mans death
- 😘 Run Tests on git push
- 😘 Margin on the Game Page
- 😘 Score for killing ghosts
- 😘 Add margin for app
- 😘 Extract model directory
- 😘 Move Page specific components to page directory
- 😘 Bug: Switching between pages multiplies game speed
- 😘 Clean up onTimeElapsed
- 😘 Extract PacMan.moveBy
- 😘 Remove setter actions from Store
- 😘 Bug: Switching between pages doesn't reset the game
- 😘 Hide debug panel if screen is not wide enough, because the game doesn't really work with the panel
below the maze.
- 😘 UI based tests
- Remove XState
- Viewport for mobile.
Alternative: Always render at factor 1 and then apply a transform, based on current viewport width
- Touch based game play for mobile