------------------------------------- CORRECT EXAMPLE Initialization once, update over time INIZIA x = 0 CICLO CONTINUO aumenta x di 1 se x > 100 { x = 0 } disegna testo --> (TESTO: "") (X: 200) (Y: 200) ------------------------------------- WRONG EXAMPLE (CONCEPTUAL) x is reset every cycle INIZIA x = 0 aumenta x di 1 disegna testo --> (TESTO: "") (X: 200) (Y: 200) ------------------------------------- CORRECT EXAMPLE Simple drawing without events disegna cerchio --> (X: 300) (Y: 300) (RAGGIO: 50) (COLORE: rosso) ------------------------------------- WRONG EXAMPLE (CONCEPTUAL) Drawing executed only once INIZIA disegna cerchio --> (X: 300) (Y: 300) (RAGGIO: 50) (COLORE: rosso) ------------------------------------- CORRECT EXAMPLE Automatic movement using VELOCITA INIZIA palla = ottieni immagine --> (NOME: "Immagini/palla") crea un esemplare --> (NOME: pallina) (IMMAGINE: palla) (X: 100) (Y: 200) (VELOCITA: 5) CICLO CONTINUO // X and Y are updated automatically ------------------------------------- WRONG EXAMPLE (CONCEPTUAL) Manual movement with VELOCITA (redundant) INIZIA palla = ottieni immagine --> (NOME: "Immagini/palla") crea un esemplare --> (NOME: pallina) (IMMAGINE: palla) (X: 100) (Y: 200) (VELOCITA: 5) CICLO CONTINUO aumenta X della pallina di VELOCITA ------------------------------------- CORRECT EXAMPLE Controlled instance creation via input INIZIA palla = ottieni immagine --> (NOME: "Immagini/palla") CICLO CONTINUO se tasto sinistro del mouse è stato premuto { crea un esemplare --> (NOME: pallina) (IMMAGINE: palla) (X: x del mouse) (Y: y del mouse) (VELOCITA: 4) (DIREZIONE: angolo casuale) } ------------------------------------- WRONG EXAMPLE (CONCEPTUAL) Uncontrolled instance creation INIZIA palla = ottieni immagine --> (NOME: "Immagini/palla") CICLO CONTINUO crea un esemplare --> (NOME: pallina) (IMMAGINE: palla) (X: 100) (Y: 200) ------------------------------------- CORRECT EXAMPLE Persistent state requires INIZIA INIZIA contatore = 0 CICLO CONTINUO aumenta contatore di 1 disegna testo --> (TESTO: "") (X: 100) (Y: 100) ------------------------------------- WRONG EXAMPLE (CONCEPTUAL) State resets every frame contatore = 0 aumenta contatore di 1 disegna testo --> (TESTO: "") (X: 100) (Y: 100) -------------------------------------