Ólafur Waage
2f62f7ae1d
Reverting pellet C++20 changes since we don't target 20 fully.
2021-09-09 10:59:59 +02:00
Ólafur Waage
613831f1c0
Fixes for ghost movement where they would occationally exit the stage when cornered. Closes #25
2021-09-09 10:56:29 +02:00
Ólafur Waage
60b3cdeb40
Formatting and const fixes. Also check for extra canGo calls.
2021-09-08 14:49:43 +02:00
Ólafur Waage
b79b2a29e8
Using std::erase for pellets possible in C++20
2021-09-08 10:21:37 +02:00
Ólafur Waage
55fbb53591
Refactoring Game and GameState. Moving game state update logic into that class. Game is now only event loop.
2021-09-07 16:00:19 +02:00
Ólafur Waage
aa45121bec
Minor formatting and warning fixes.
2021-09-06 16:40:42 +02:00
Ólafur Waage
d0bd69aee1
Removing unnecessary forward decl.
2021-09-06 16:27:29 +02:00
Ólafur Waage
00bfd15074
Adding epsilon test for Position. Also adding tests for GridPosition and Position.
2021-09-06 16:24:30 +02:00
Ólafur Waage
fe32b18d0c
Isolating SFML to the Canvas class.
2021-09-06 15:38:40 +02:00
Ólafur Waage
aa22b91e8b
Adding header files to their own folder in the project.
2021-09-06 14:51:01 +02:00
Patricia Aas
d196491ea4
Rename variable and remove unneeded curlies
2021-08-25 11:26:13 +02:00
Patricia Aas
4b7015b96b
Remove unneeded init
2021-08-25 11:23:54 +02:00
Corentin Jabot
af1c650727
Be more explicit about captures
2021-08-12 10:19:54 +02:00
Corentin Jabot
b3798ef2df
Remove a nodiscard
2021-08-12 10:18:51 +02:00
Patricia Aas
eaf61585ea
Fix Clang-Tidy warnings
2021-08-02 16:43:18 +02:00
Corentin Jabot
76c931656f
Remove nodiscard
2021-08-02 15:31:32 +02:00
Patricia Aas
d3cc1d90c7
Fix warnings
2021-08-02 15:28:07 +02:00
Corentin Jabot
2cc15c6dcb
add toolchain file
2021-08-02 14:46:26 +02:00
Patricia Aas
c10eb99336
Early return in Clyde
2021-08-02 14:24:11 +02:00
Patricia Aas
ab9664d07f
Name changes and typos
2021-08-02 14:09:03 +02:00
Corentin Jabot
17ac48f713
Implement ghost movements
2021-07-29 11:16:08 +02:00
Patricia Aas
43ccaae3ef
Rename variable
2021-07-28 19:06:35 +02:00
Patricia Aas
99cf57956c
Init pos
2021-07-28 17:01:22 +02:00
Patricia Aas
4d53ccce18
Introduce scatterTarget function and inline things that should be in the ghost
2021-07-28 16:39:27 +02:00
Corentin Jabot
f31d238bd4
Rename speedy, remove starting position
2021-07-28 16:20:19 +02:00
Patricia Aas
79b78f7dc0
Remove pacman::
2021-07-28 15:41:32 +02:00
Patricia Aas
71cb40ad18
Remove unused parameter
2021-07-28 15:30:53 +02:00
Patricia Aas
5b2b0d8e73
Make files for ghosts
2021-07-28 15:28:36 +02:00
Corentin Jabot
fe04e7d03a
Cleanup PacManAnimation a bit
2021-07-19 12:06:27 +02:00
Corentin Jabot
d6a046ff47
Use the correct ghost names
2021-07-16 09:35:32 +02:00
Corentin Jabot
0428366e86
Call reserve and add uncommited code
2021-07-16 09:19:10 +02:00
Corentin Jabot
691aac978e
Get rid of tuple
2021-07-15 09:14:25 +02:00
Patricia Aas
522362152d
Refactor
2021-07-13 14:26:57 +02:00
Corentin Jabot
43cfecc077
Get rid of unused comparison operator
2021-07-09 10:24:24 +02:00
Patricia Aas
ee3c7c61db
Simplify
2021-07-08 18:12:03 +02:00
Patricia Aas
890d061a92
Move teleport to Board
2021-07-08 18:00:39 +02:00
Corentin Jabot
370a57f454
Get rid of board class
2021-07-08 17:42:24 +02:00
Patricia Aas
e5e46a0e65
Create GameState
2021-07-08 16:57:18 +02:00
Corentin Jabot
3966987e2a
Put the scaling function in a lib
2021-07-08 10:18:36 +02:00
Corentin Jabot
cbd19df739
Implement scaling.
...
We render pack man at twice the size that we want on screen,
which is the native resolution of the asset file.
The maze is upscaled.
We then project everything onto a view which is applies
the scale factor.
This patches also dectect the appropriate scale on OSX.
This required a bit of objective C (scaling.mm),
but students should not look at this file and there
is a comment in that direction.
Scalling.cpp provides the default implementation
for other platforms.
2021-07-07 21:32:22 +02:00
Patricia Aas
3c638c057e
No need to pass Board around
2021-07-07 11:39:09 +02:00
Patricia Aas
705ea717e1
Introduce a scale function and clean up
2021-07-07 11:25:13 +02:00
Patricia Aas
ce7dd70332
Very rough stab at scaling
2021-07-07 11:25:13 +02:00
Patricia Aas
e9fb5dac77
Fix some warnings and clang tidy
2021-07-07 11:24:12 +02:00
Corentin Jabot
dac3b12dc4
Explain how the ghosts move
2021-07-07 10:38:52 +02:00
Patricia Aas
5c982228c8
More font name fixes
2021-07-06 20:48:29 +02:00
Patricia Aas
742f4ce56a
Round doesn't make sense
2021-07-06 17:11:49 +02:00
Patricia Aas
9bea9fdad9
Add back comment
2021-07-06 17:11:18 +02:00
Patricia Aas
138f2df152
PacMan size is an integer
2021-07-06 17:10:17 +02:00
Patricia Aas
f7b53d9fca
Don't use ->
2021-07-06 17:09:42 +02:00
Patricia Aas
a7a1565c99
Prettify
2021-07-06 16:33:33 +02:00
Patricia Aas
ab1e68a266
Add missing include
2021-07-06 12:55:58 +02:00
Patricia Aas
eb36d24b31
Make it possible use GridPosition with emplace_back
2021-07-06 12:41:50 +02:00
Patricia Aas
30f69464dd
Move over to size_t
2021-07-06 12:35:23 +02:00
Corentin Jabot
510e12a921
replace push_back with emplace_back
2021-07-06 10:07:35 +02:00
Corentin Jabot
3197f334d1
Fix linux build
2021-07-05 17:19:35 +02:00
Corentin Jabot
60095363f4
Put the code in a namespace
2021-07-05 14:10:01 +02:00
Corentin Jabot
d166f552f4
Simplify board code
2021-07-05 13:54:54 +02:00
Patricia Aas
7faadda5c0
Remove unused function
2021-07-05 12:18:08 +02:00
Corentin Jabot
727a2c5e76
Create an include
2021-07-05 12:02:36 +02:00
Corentin Jabot
e4991ab1dd
Rename PositionInt
2021-07-05 11:47:03 +02:00
Corentin Jabot
ba515eaca5
Replace floats by doubles
2021-07-05 11:40:10 +02:00
Corentin Jabot
b5b9d9c168
Rename ghosts
2021-07-05 11:33:02 +02:00
Patricia Aas
7081a33e35
Remove unused includes and reformat
2021-07-02 14:47:33 +02:00
Patricia Aas
a62d668ead
Simplify Ghost::currentSprite
2021-07-01 14:53:52 +02:00
Patricia Aas
0e72ff8be5
Make board a static double std::array
2021-07-01 14:33:59 +02:00
Patricia Aas
fc31086ab9
Initialize timeSinceDeath
2021-07-01 10:19:46 +02:00
Corentin Jabot
b6d0bad21c
Fix mac build (again)
2021-07-01 10:19:46 +02:00
Corentin Jabot
a01f93cc90
Fix mac build
2021-07-01 10:19:46 +02:00
Corentin Jabot
5b0e561afc
Pacman and ghosts can eat each others
2021-07-01 10:19:46 +02:00
Corentin Jabot
ced6cd829c
Put the ghosts in a tuple to reduce duplication
2021-07-01 10:19:46 +02:00
Corentin Jabot
3e84746cee
Simplify ghost movement code
2021-07-01 10:19:46 +02:00
Corentin Jabot
c2cfb8c734
Implement ghost movement and scatter behavior
...
Each ghost is trying to reach a point beyond the
corner of the board, which make them run in circle
2021-07-01 10:19:46 +02:00
Corentin Jabot
93186dc8b9
Add ghosts
...
No movement for now!
2021-06-24 18:33:08 +02:00
Corentin Jabot
79506d218e
Make a ghost pen
2021-06-24 18:33:08 +02:00
Corentin Jabot
a0780c7a8c
Display the number of remaining lives
2021-06-24 18:33:08 +02:00
Corentin Jabot
fedbc153ae
Implement score
2021-06-24 18:33:08 +02:00
Corentin Jabot
42ee04203f
Make pacman mouth wide open while he doesn't move
2021-06-24 18:33:08 +02:00
Corentin Jabot
ecf2ab8b6c
Try to make animation less dependant on framerate
2021-06-24 18:33:08 +02:00
Corentin Jabot
a69e66d114
Pacman should not be animated when hitting a wall
2021-06-24 18:33:08 +02:00
Patricia Aas
f51b7d65e0
Reformat and add a gitignore
2021-06-22 13:17:12 +02:00
Patricia Aas
5f0c03c1fa
Clang Tidy fixes
2021-06-22 13:17:12 +02:00
Patricia Aas
d4d2e2d00d
Fix animation
2021-06-22 13:17:12 +02:00
Patricia Aas
9ca1f6f12d
Initialize Event object
2021-06-22 13:17:12 +02:00
Patricia Aas
1fb5f23885
Check optional before it's used
2021-06-22 13:17:12 +02:00
Patricia Aas
4e753a6024
Remove declarations of functions that no longer exist
2021-06-22 13:17:12 +02:00
Patricia Aas
493923036a
Make it work on Linux again
2021-06-22 13:17:12 +02:00
Patricia Aas
32886717de
Make it work on windows
2021-06-22 13:17:12 +02:00
Patricia Aas
c6191b1f5d
Reformat CMakeLists.txt
2021-06-22 13:17:12 +02:00
Corentin Jabot
c7ef086d3d
Migrate from SDL to SFML
...
This simplifies the rendering code and remove all(!) pointers.
There is a number of unresolved issues
* Windows build ?
* position delta computation: migrating to SFML seems to have modified
the frame rate.
2021-06-22 13:17:12 +02:00
Corentin Jabot
f83bf46171
Fix Debug build on ubuntu
2021-06-16 15:59:52 +02:00
Corentin Jabot
98d728fb52
Fix missing header
2021-06-16 15:31:42 +02:00
Corentin Jabot
75fd208299
Basic Text rendering
...
Using SDL2_ttf and fmt
2021-06-16 15:18:47 +02:00
Corentin Jabot
f911f6e2a8
Eat pellets
2021-06-16 13:59:16 +02:00
Corentin Jabot
2398bf9c36
Fix animation
2021-06-16 13:18:05 +02:00
Corentin Jabot
e16d44cd23
Run clang format
2021-06-16 13:14:47 +02:00
Patricia Aas
68f63f3f66
Canvas rewrite ( #6 )
...
* Beginning rewrite
* Move all constants to canvas, wire sprite handling code
* Make Sprite a struct and reformat
* Fix warning
Co-authored-by: Corentin Jabot <corentinjabot@gmail.com>
2021-06-16 12:52:04 +02:00
Corentin Jabot
dad36d7362
Remove comments and unused headers
2021-06-16 09:58:19 +02:00
Corentin Jabot
f6efcbbf79
Support teleporting at the edges of the map
2021-06-16 01:39:37 +02:00
Corentin Jabot
bbf3731cf4
Change window geometry for scoring.
...
* Add margins all around the board for better aestetics.
* Add room for scoring
* Because the texture atlas is a 32x32 grid, we can manipulate
textures as positions on that grid and only create a rectangle
for that texture in the rendering code.
* Avoid hardcoded values in the rendering code.
2021-06-15 23:55:55 +02:00