Commit Graph

117 Commits

Author SHA1 Message Date
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
Patricia Aas 27b8d47dec Move to pragma once 2021-06-10 14:42:51 +02:00
Patricia Aas 9644229061 Give function a shorter name to fit on a slide :) 2021-06-10 14:26:03 +02:00
Corentin Jabot 335a698226 Replace float_t by float 2021-05-10 15:14:38 +02:00
Corentin Jabot 164db664ef Use VCPKG and reorganization
* Remove non-pacman exercises.
* Use vcpkg instead of conan ( make vcpkg a submodule)
* Merge the readmem these will need to be improve later
2021-05-10 14:58:00 +02:00