PDA

View Full Version : Menu, MenuLoop, MenuItem


thebol
26-02-2008, 11:18
dopo aver testato la abstractLoop, sono passato al testing di menuLoop.

Ho notato però una cosa.
MenuLoop sarebbe una specie di classe per gestire un menu
MainMenu, è un oggetto che implementerebbe la logica in questo caso del menu principale
MenuItem rappresenta un elemento generico sul menu


Ora questa divisione non è propiamente definita.

MenuLoop decide di utilizzare MainMenu, quali sono le texture da caricare, qual'è il background, qual'è la voce di menu selzionata di default.

MainMenu decide anche lei che voce di menu è selezionata(questa cosa viene persa dalla successiva modifica di MenuLoop), lo sprite della voce selezionata, e come si muove lo sprite.

MenuItem descrive i vari MenuItem come variabili statiche.

Secondo me la divisione dovrebbe essere questa.

MenuLoop è un loop che gestisce un generico menu, i tasti per selezionare le voci, e la loro attivazione.

MainMenu gestisce le texture del mainMenu, le voci che contiene(che implementeranno MenuItem), lo sprite delle voci.

MenuItem invece gestisce genericamente un item.

Per cui MenuLoop può essere inizializzata con un Menu(nuova classe).
Utilizzera questa classe per sapere cosa deve disegnare.

MainMenu implementa la classe Menu, e decide come appare il menu principali, quali voci(MenuItem), cosa fanno, etc.

Le varie voci implementeranno menuItem.

In questa manierà MenuLoop ha conoscenza di un oggetto Menu(che non instanzia, ma riceve nel costruttore), e lo comanda a seconda dell'input utente. Menu, ha conoscenza dei MenuItem e li disegna a seconda dei comandi che riceve da MenuLoop, e si occupa di disegnare il background.


Parto o YANGI :D ?

fek
26-02-2008, 13:27
http://images.cafepress.com/product/27149509v6_240x240_Front_Color-White.jpg

thebol
26-02-2008, 14:59
http://images.cafepress.com/product/27149509v6_240x240_Front_Color-White.jpg

immaginavo

mi avrebbe semplificato un po il testing..

fek
26-02-2008, 15:02
immaginavo

mi avrebbe semplificato un po il testing..

http://i27.tinypic.com/2rffvhv.gif

Bonfo
26-02-2008, 19:09
Poi mi dovete spiegare perche' le magliettine nerd sono sempre da donna :D :D

In ogni caso prima o poi, se mai capitera' di avere altri menu oltre al main, dovremmo rimetterci le mani... ma ci penseremo quando capitera' ;)

jappilas
26-02-2008, 20:16
ci sarebbe anche un altro aspetto da considerare
MenuLoop attualmente implementa Listener e gestisce direttamente i "key events" in input, imho questo sarebbe meglio implementato con un controller esterno contenente degli Event Handler, analogamente a quanto già fatto con il controllo del gioco

peraltro la stessa struttura del sistema di Input attuale mi sembra un po' troppo complessa, e avevo una mezza idea di proporne uno streamlining... :stordita:

fek
26-02-2008, 21:23
ci sarebbe anche un altro aspetto da considerare
MenuLoop attualmente implementa Listener e gestisce direttamente i "key events" in input, imho questo sarebbe meglio implementato con un controller esterno contenente degli Event Handler, analogamente a quanto già fatto con il controllo del gioco

peraltro la stessa struttura del sistema di Input attuale mi sembra un po' troppo complessa, e avevo una mezza idea di proporne uno streamlining... :stordita:


http://i27.tinypic.com/2rffvhv.gif

Bonfo
27-02-2008, 01:31
http://i27.tinypic.com/2rffvhv.gif
Questa mi piacemolto di piu' della maglietta (anche perche' e' presonalizzata :asd: )... pero' e' unpelo troppo grande :rolleyes:

fek
27-02-2008, 09:47
Questa mi piacemolto di piu' della maglietta (anche perche' e' presonalizzata :asd: )... pero' e' unpelo troppo grande :rolleyes:

A questa dimensione rende bene l'idea :asd:

Ufo13
27-02-2008, 13:55
Pensavo di riscrivere il rendering delle gemme per implementare diverse fonti di luce con caustiche e ombre. Ovviamente TDD.

Dite che e` YAGNI?

fek
27-02-2008, 14:50
Pensavo di riscrivere il rendering delle gemme per implementare diverse fonti di luce con caustiche e ombre. Ovviamente TDD.

Dite che e` YAGNI?

http://i27.tinypic.com/2rffvhv.gif

Ufo13
27-02-2008, 14:59
Allora senza ombre dai...

Jocchan
28-02-2008, 12:36
Noto che Fek ci ha preso gusto con la gif YAGNI :Prrr:

jappilas
28-02-2008, 12:38
Noto che Fek ci ha preso gusto con la gif YAGNI :Prrr:c'è da dire che a volte un buon yagni di prima mattina può aiutare ad affrontare i refactor this con più energia per il resto della giornata ... :p

Jocchan
28-02-2008, 12:51
Direi che abbiamo un nuovo nome in codice per la prossima release:

http://i26.tinypic.com/2uyq51v.jpg

:D


YAGNI = Yet Another Game Network-(In)capable

Jocchan
29-02-2008, 18:53
Problemi con l'hosting. Ri-hostato il logo ;)

thebol
01-03-2008, 11:04
ci sarebbe anche un altro aspetto da considerare
MenuLoop attualmente implementa Listener e gestisce direttamente i "key events" in input, imho questo sarebbe meglio implementato con un controller esterno contenente degli Event Handler, analogamente a quanto già fatto con il controllo del gioco

peraltro la stessa struttura del sistema di Input attuale mi sembra un po' troppo complessa, e avevo una mezza idea di proporne uno streamlining... :stordita:

ho fatto implmentare l'interfaccia listener direttamente a MenuLoop invece che ad abstractLoop. In questa maniera si elimina il metodo notify(Event) da GameLoop che non faceva nulla(e il suo coverage arriva a 100%)