-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Game Engine] Graphic Engine COMPLETE #109
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- hice que incluya tambien los archivos que estan en subcarpetas anidadas de game_engine
- tiene un cursor publico que es un punto sdl - una funcion update, que toma un evento sdl - usa un broadcast de signals on click TODO: - controlador abstracto, para mouse y teclado - clase de signals
- los canvas object tendran un metodo draw que toma renderer de sdl - el button es uno generico que tiene metodo adicional update ya que tiene logica que depende de ser hovereado por el mouse TODO: - Agregar texto para button - metodo virtual de on_click_handler a ser connectado con la signal del mouse
- cambio linea de apt install para los requisitos
- agrego pre-commit como requisito para devs TODO: - agregar el resto a medida que se vayan utilizando
- Controller ahora tiene un default destructor - Mouse ahora tiene una lista de CanvasObjects donde cuando clickea llama a on_click
- on_click metodo - is_intersecting con un punto o rect de sdl
- implemento sus metodos por ser canvas - los botones saben cuando son apretados y pueden hacer lo que se quiera TODO: mas virtualizacion para hacer cosas utililes con onclick
[Game engine] [Feature] CanvasObject, Buttons, Labels y Mouse controller
- saco algo de physics que tenia y no compilaba, esto va a probocar conflictos pero bueno - este es el primer commit post problema de eliminacion de codigo de labels y controllers
- una es la seleccionada por el equipo - otra es una random para probar
- vuelvo a rehacer parte del mouse controller que se borro - mouse llama on_click y is_hovered de CanvasObject
- agrego metodos virtuales on_click, is_hovered, on_key_down
- revivo los cambios perdidos por el merge de mierduki - tiene label como componente y llama a sus metodos on_click y is_hovered
- para agregar texto a la pantalla - recupero de la borrada masiva fea - necesita un rectangulo para posicionarse y color y font
- recupero lo borrado - prueba para ver como funciona
- format - un cppcheck -> no estaba inicializando un member en la list
Restore de cambios perdidos - labels, button, mouse
- incluto nueva prueba de keyboard controller
- SDL_KeyCode -> SDL_Keycode
- abstrae el manejo de SDL events - llama al on_key_down method de la clase CanvasObject -> aplica polimorfismo
- esto es para tener en cuenta casos especiales como cuando se deja de apretar shift
- ahora cuando es una tecla especial no solo avisa al objeto que fue presionada sino tambien cuando es soltada - esto sirve para una mecanica de sprint por ejemplo donde mantenes shift mientras te moves y depuse soltas
- modifico build.sh para copiar /assets a la bin folder
- este maneja los assets para poder contruir los paths a partir del working dir
- las fonts estaban en la game engine lo cual esta mal - ahora estan en `assets/fonts/`
- Ahora usan la clase RAII window - para los assets usan AssetManager que tambien es RAII
- arreglo lo que piden los errores de pre-commit - como estoy en otra compu no me di cuenta y no lo tenia instalado
[Game engine] [Refactor] SDL wrappers
- comparticion del mismo recurso en 2 sprites diferentes. - tambien rename color_rect_test
- clase para hacer pre-load de los recursos - para usarlos compartidos entre widgets
[Game Engine] [Feature] Resource pool
- toda la graphics engine ahora esta bajo ese namespace - engine::Texture, engine::Sprite, etc
- Resolviendo conficts
- en tests-events.yaml
- Cambio -DEVENT por -DTESTS
- agrego -y en apt install
- le pongo tests_bin/ en vez de build/
- event tests no necesitan de GAME ENGINE asi q no la incluyo
agustinbarbalase
approved these changes
Jun 3, 2024
nrsanchezfiuba
approved these changes
Jun 3, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
aprobado por chayanne
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary of changes
Graphics engine para graficar cosas en el juego que se quiera crear utilizando esta libreria, esto incluye:
Basic
game_engine/gui/basic/
:Widgets
game_engine/gui/widgets/
:Controllers
game_engine/controllers/
:Exeptions
game_engine/errors.h
:Todo bajo el namespace
engine
, asi que se debe usar por ejemploengine::Texture
.Test additions / changes
tests/graphics/
.tests/graphics/valgrind_false_positives/
.Checklist