← Tutti i video

Sviluppo di GUI dinamica in C++ (SFML && ImGui)

Guarda su YouTube → 1:41:10 18 maggio 2024

Descrizione

Salve, e benvenuti in questo nuovo video. L'obiettivo di questo video è mostrare come poter sviluppare una semplice interfaccia dinamica per testare delle visualizzazioni in C++. Il progetto è stato ripreso dal corso "COMP4300 Game Programming", ed in particolare rappresenta il primo assignment del corso. L'assignment consisteva nello scrivere un programma in C++ che legge un file di configurazione e successivamente renderizza una serie di rettangoli e cerchi. Questa renderizzazione è poi controllabile tramite una interfaccia dinamica, che permette in real time di cambiare i parametri della renderizzazione. Questo approccio è utile ogni volta che vogliamo prototipare una particolare dinamica, e vogliamo vedere come la dinamica cambia al cambiare del valore di alcuni parametri. Per implementare il programma sono state utilizzate due librerie principali. La libreria SFML si occupa di gestire la grafica del gioco, e nello specifico di gestire la finestra, il font, i cerchi e i rettangolo. La libreria ImGui invece è stata utilizzata per offrire all'utente la possibilità di modificare i parametri della simulazione in real time. Se siete interessanti di più a queste cose, consiglio di seguire il corso "COMP4300 Game Programming", le cui lezioni sono disponibili gratis qui su youtube, link a segire. Da notare inoltre che io di C++ ci capisco poco e niente, quindi se avete suggerimenti su come migliorare il codice scritto, fatemelo pure sapere! ------------------------- TIMESTAMP 00:00:00 Introduzione 00:07:30 Hello World in C+ 00:09:20 Integrazione con SFML 00:15:05 Strutture dati e Classi 00:24:52 Esempio: cerchio in SFML 00:27:40 Struttura del file di configurazione 00:29:45 Lettura del file di configurazione 00:51:35 Game Class 01:03:11 Overview generale 01:05:20 Implementazione drawShape() 01:08:35 Memory Leak (?) 01:09:35 Rendering e Update 01:19:05 Scrittura Makefile 01:26:00 Integrazione con ImGui 01:38:16 Conclusione ------------------------- RIFERIMENTI - Material: https://github.com/LeonardoE95/yt-it/tree/main/src/2024-05-18-programmazione-C++-imgui-example - COMP4300 Game Programming: https://www.mun.ca/computerscience/undergraduates/courses/comp-4300-introduction-to-game-programming/ - COMP4300 Game Programming Playlist: https://www.youtube.com/playlist?list=PL_xRyXins84_Jf-aCh7chj47HR4oZLPwK - SFML library: https://github.com/SFML/SFML - ImGui library: https://github.com/ocornut/imgui ------------------------- CONTATTI - Blog: https://blog.leonardotamiano.xyz/ - Github: https://github.com/LeonardoE95?tab=repositories - Support: https://www.paypal.com/donate/?hosted_button_id=T49GUPRXALYTQ

Commenti 7

I commenti vengono da YouTube e sono aggiornati periodicamente.

  1. @LaVolpeDellaRete 19 febbraio 2025
    Ciao, ho intrapreso il corso su glGame Programming a cui ti riferisci, volevo chiederti come hai fatto per lo scheletro di codice dell'assignment, dato che da quel che ho capito non vengono rilasciati pubblicamente, hai ricostruito tu il codice dai video e dalla specifica? Volevo anche approfittarne per farti i complimenti per il tuo lavoro, personalmente mi hai aperto un sacco di porte "mentali" e fatto interessare tantissimo a un sacco di argomenti, è bello che ci sia un canale come il tuo e il tuo lavoro è davvero prezioso.
    2 risposte
    1. @esadecimale Autore 19 febbraio 2025 1
      Si per il primo assignment ho fatto proprio cosi: me lo sono ricostruito, joina telegram e pingami quando hai tempo e se ti va, ti condivido il zip dello scheletro
    2. @esadecimale Autore 19 febbraio 2025
      Btw, link al telegram https://t.me/+cdbmjgB3nCEyMzA0 se preferisci non joinare scrivi pure per email, e leo95.yt [at] gmail.com
  2. @AndroidDjRealEDM 19 maggio 2024 1
    Perchè non usare Raylib per il rendering?
    1 risposta
    1. @esadecimale Autore 19 maggio 2024
      Il corso utilizzava SFML, quindi mi sono basato su quello, per il resto era la prima molta che usavo SFML (in passato mi è capitato di usare sia SDL che Raylib)
  3. @patrickpapa8513 20 maggio 2024 1
    Ma qual è il vantaggio nell'usare $@ nella regola dell'output al posto di $(OUTPUT)?
    1 risposta
    1. @esadecimale Autore 20 maggio 2024
      onestamente non penso ci siano vantaggi. Io ho preso spunto dal corso messo nei riferimenti. Lui scriveva cosi. Diciamo che mettendo $@ se poi cambi nome del target non devi ricambiarlo nella regola, ma comunque sono differenze talmente tanto minimale che non cambiano niente