Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità
ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità
NUC 15 Pro e NUC 15 Pro+ sono i due nuovi mini-PC di casa ASUS pensati per uffici e piccole medie imprese. Compatti, potenti e pieni di porte per la massima flessibilità, le due proposte rispondono in pieno alle esigenze attuali e future grazie a una CPU con grafica integrata, accompagnata da una NPU per la gestione di alcuni compiti AI in locale.
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint
Dal palco di Proofpoint Protect 2025 emerge la strategia per estendere la protezione dagli utenti agli agenti IA con il lancio di Satori Agents, nuove soluzioni di governance dei dati e partnership rafforzate che ridisegnano il panorama della cybersecurity
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Dopo alcuni anni di assenza dai cataloghi dei suoi televisori, Hisense riporta sul mercato una proposta OLED che punta tutto sul rapporto qualità prezzo. Hisense 55A85N è un televisore completo e versatile che riesce a convincere anche senza raggiungere le vette di televisori di altra fascia (e altro prezzo)
Tutti gli articoli Tutte le news

Vai al Forum
Discussione Chiusa
 
Strumenti
Old 04-12-2005, 20:40   #1
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
[CICLO 6] Storia 2

Storia 2: Ogni gemma creata dovrà avere un’animazione a ciclo continuo che simuli un riflesso, e che si ripeta ogni 3.5 secondi, valore comunque modificabile in GameConfig. Le animazioni di tutte le gemme su schermo dovranno essere sincronizzate tra loro, ossia iniziare tutte nello stesso momento.
Nella finestra "next" verrà visualizzata una coppia di gemme dei due colori immediatamente successivi nella coda a quella attualmente in caduta. Di queste due gemme, quella in basso sarà la prossima a cadere, e la coppia verrà aggiornata ogni volta che una nuova gemma viene creata.


Punti cardine da tenere a mente durante i lavori:
  • Mai fare a gara a chi finisce il task per primo, meglio procedere con calma, altrimenti perderemo molto più tempo in seguito
  • Evitiamo di complicarci la vita, esiste di certo una soluzione più semplice di quella che abbiamo pensato di implementare
  • MAI aggiungere elementi non richiesti esplicitamente dai task: se mai serviranno, se ne parlerà nelle prossime storie
  • Comunichiamo il più possibile, se qualcosa non è chiaro discutiamone tutti i dettagli fino ad eliminare ogni dubbio, anche il più insignificante
  • Postare sempre la test list PRIMA di mettere mano al codice
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.

Ultima modifica di Jocchan : 09-12-2005 alle 09:10.
Jocchan è offline  
Old 07-12-2005, 15:34   #2
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Ecco i task per questa storia.

Task:
6.2.1: 71104: 2 giorni
Mostrare nel riquadro "next" dell'area di gioco le prossime due gemme che saranno rilasciate. La prima gemma ad essere rilasciata dovra essere quella piu in basso.

6.2.2: thebol: completato
Aggiungere a sprite la capacita di caricare Texture che contengono i vari frame delle animazioni.

6.2.3: cdimauro: 2 giorni
Implementare le animazioni in sprite cambiando frame ogni decimo di secondo. Al termine del'animazione si deve mostrare il frame di base per 3500 millisecondi prima di ripartire.

6.2.4: Ufo13: 2 giorni
Sincronizzare le animazioni delle gemme all'interno della griglia tra di loro. Se una gemma viene creata quando le altre sono a meta animazione deve quindi mostrarsi anche lei a meta animazione.

ciao

Ultima modifica di VICIUS : 08-12-2005 alle 23:47.
VICIUS è offline  
Old 07-12-2005, 15:34   #3
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
Approfitto dello spazio sotto i task per un piccolo chiarimento sulle animazioni.
Le texture che useremo avranno questo formato:



Le due "colonne" contengono rispettivamente la gemma normale e quella illuminata. Il frame più in alto è quello di base, e dovrà rimanere fisso per 3.5 secondi (variabili da GameConfig). Scaduto questo tempo, dovranno essere visualizzati, ognuno per 0.1 secondi, gli altri cinque frame nella colonna, dall'alto in basso. Al termine di questo ciclo di animazione, si dovrà tornare al fotogramma fisso.

Per qualsiasi dubbio, chiedete pure
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.
Jocchan è offline  
Old 07-12-2005, 15:39   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da VICIUS
6.2.4:
Sincronizzare le animazioni delle gemme all'interno della griglia tra di loro. Se una gemma viene creata quando le altre sono a meta animazione deve quindi mostrarsi anche lei a meta animazione.
Ma in questo modo le gemme non brillano tutte insieme ?
cionci è offline  
Old 07-12-2005, 15:43   #5
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
Quote:
Originariamente inviato da cionci
Ma in questo modo le gemme non brillano tutte insieme ?
Esatto
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.
Jocchan è offline  
Old 07-12-2005, 15:45   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Altra cosa...mi sa che va aggiunto un task di questo tipo:

aggiungere a Config la psosibilità di leggere/gestire valori floating point...
cionci è offline  
Old 07-12-2005, 15:46   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Jocchan
Esatto
Sinceramente a me piacerebbe che brillassero ad intervalli non regolari ed abbastanza diversi l'una dall'altra... Che so 3 secondi + rand(300)/100...
cionci è offline  
Old 07-12-2005, 16:03   #8
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
Quote:
Originariamente inviato da cionci
Sinceramente a me piacerebbe che brillassero ad intervalli non regolari ed abbastanza diversi l'una dall'altra... Che so 3 secondi + rand(300)/100...
Brillando in maniera differente potrebbero essere un elemento di distrazione. Essendo la cosa uniforme, invece, dovremmo poter limitare questo svantaggio.
Per questo stesso motivo abbiamo anche scelto un timeout fisso, e non variabile.
In ogni caso, dato che per sincronizzare l'animazione bisogna prima implementarla, potremo vedere anche l'effetto di più animazioni fuori sincrono e, in caso, anche cambiare idea
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.
Jocchan è offline  
Old 07-12-2005, 17:05   #9
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Vorrei prenotarmi per il task 6.2.3. Prevedo di impiegarci 2 giorni dalla fine del task 6.2.2.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline  
Old 07-12-2005, 17:25   #10
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da cionci
Altra cosa...mi sa che va aggiunto un task di questo tipo:

aggiungere a Config la psosibilità di leggere/gestire valori floating point...
Parlando con Jocchan abbiamo deciso che non serve. Almeno per ora. Ho cambiato quel "3,5 secondi" in 3500 milisecondi in modo da poter usare un intero e renderlo consistente all'unita di misura che gia usiamo.

ciao
VICIUS è offline  
Old 07-12-2005, 17:26   #11
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da cdimauro
Vorrei prenotarmi per il task 6.2.3. Prevedo di impiegarci 2 giorni dalla fine del task 6.2.2.
Assegnato.

ciao
VICIUS è offline  
Old 07-12-2005, 18:25   #12
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da cionci
Sinceramente a me piacerebbe che brillassero ad intervalli non regolari ed abbastanza diversi l'una dall'altra... Che so 3 secondi + rand(300)/100...
non sono d'accordo
secondo me se il riflesso appare a tutte nello stesso momento è molto più bello (nonché più realistico )

allora, premesso che io e daniele ci scusiamo per il ritardo del nostro task causato dall'incompatibilità di orari, mi vorrei prenotare (^^') per il 6.2.1, 2 giorni per sicurezza.
71104 è offline  
Old 07-12-2005, 18:54   #13
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da 71104
non sono d'accordo
secondo me se il riflesso appare a tutte nello stesso momento è molto più bello (nonché più realistico )

allora, premesso che io e daniele ci scusiamo per il ritardo del nostro task causato dall'incompatibilità di orari, mi vorrei prenotare (^^') per il 6.2.1, 2 giorni per sicurezza.
Assegnato.

Per quanto riguarda il task della storia precedente non ti preoccupare. Sapevo che sarebbe andata a finire cosi visti gli orari di Daniele ma vi ho abbinati lo stesso.

ciao
VICIUS è offline  
Old 07-12-2005, 19:34   #14
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
non capisco le richeste per il il 6.2.2.

A usare la png postata su sto thread come esempio, i test vengono superati, pero se la si prova a usare non viene visualizzata per bene.

E questo che è da implementare?




Altra cosa che ho notato, e che i nomi delle gemme sono usati in piu punti di codice, e se si vuole cambiarne uno bisogna modificarlo in piu parti di codice.
Non sarebbe meglio esternalizzare in una classe statica o sistema simile?
thebol è offline  
Old 07-12-2005, 20:12   #15
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Quote:
Originariamente inviato da thebol
non capisco le richeste per il il 6.2.2.

A usare la png postata su sto thread come esempio, i test vengono superati, pero se la si prova a usare non viene visualizzata per bene.

E questo che è da implementare?
ci ho pensato un po e immagino sia proprio questo da fare...

cmq mi ci prenoterei io per questo task.
Tempo stimato 1 giorno.
thebol è offline  
Old 07-12-2005, 20:18   #16
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
Ho committato le gemme con i frame.
Thebol, bisogna appunto consentire al codice di gestire texture in questo formato

P.S.: i nomi delle gemme sono costanti che non cambieremo, ma effettivamente resta sbagliato avere questi valori troppo diffusi all'interno del codice.
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.
Jocchan è offline  
Old 07-12-2005, 21:54   #17
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Quote:
Originariamente inviato da Jocchan
Ho committato le gemme con i frame.
Thebol, bisogna appunto consentire al codice di gestire texture in questo formato

P.S.: i nomi delle gemme sono costanti che non cambieremo, ma effettivamente resta sbagliato avere questi valori troppo diffusi all'interno del codice.
fatto

Il problema e quando settavi la brightnes(sia a true che false) si usavano come valori solo quelli della texture senza tenere conto del size dello sprite.

Per cui ho tolto i test
Codice:
        gemTextureRect = new Rectangle(0, 0, gem.getTexture().getWidth() / 2 - 1,
            gem.getTexture().getHeight() - 1);

        gem.draw(engine);

        assertTrue("gem must be drawn with unbrightened texture", engine
            .getTextureRect().equals(gemTextureRect));

        gem.setBrightenedStatus(true);

        gemTextureRect = new Rectangle(gem.getTexture().getWidth() / 2, 0, gem
            .getTexture().getWidth() - 1, gem.getTexture().getHeight() - 1);

        gem.draw(engine);

        assertTrue("gem must be drawn with brightened texture", engine
            .getTextureRect().equals(gemTextureRect));
e gli ho sostituiti con
Codice:
       gem.setBrightenedStatus(false);

        gem.draw(engine);

        assertEquals("gem must be drawn with unbrightened texture(bad left)", engine
            .getTextureRect().left(), 0);
        
        assertEquals("gem must be drawn with unbrightened texture(bad right)", engine
            .getTextureRect().right(), 31);
        
        

        gem.setBrightenedStatus(true);

        gem.draw(engine);

        assertEquals("gem must be drawn with brightened texture(bad left)", engine
            .getTextureRect().left(), 32);
        
        assertEquals("gem must be drawn with brightened texture(bad right)", engine
            .getTextureRect().right(), 63);
che misura se si sta disegnano un frame della prima colonna o della seconda


poi ho inserito un test sulla dimensione della texture area disegnata, in modo che sia uguale a quella di sprite

Codice:
    public void testGemViewSize()
    {
        MockEngine engine = new MockEngine();

        Gem gem = Gem.createForTesting();
        gem.draw(engine);
        assertEquals("Height of the texture engine differente of height of gem(init)",engine.getTextureRect().getHeight(), (int)gem.getHeight());
        assertEquals("Width of the texture engine differente of width of gem(init)",engine.getTextureRect().getWidth(), (int)gem.getWidth());

        gem.setBrightenedStatus(false);
        gem.draw(engine);
        assertEquals("Height of the texture engine differente of height of gem(bright false)",engine.getTextureRect().getHeight(), (int)gem.getHeight());
        assertEquals("Width of the texture engine differente of width of gem(bright false)",engine.getTextureRect().getWidth(), (int)gem.getWidth());

        gem.setBrightenedStatus(true);
        gem.draw(engine);
        assertEquals("Height of the texture engine differente of height of gem(bright true)",engine.getTextureRect().getHeight(), (int)gem.getHeight());
        assertEquals("Width of the texture engine differente of width of gem(bright true)",engine.getTextureRect().getWidth(), (int)gem.getWidth());
        
    }
poi ho modificato il codice di setBrightenedStatus in

Codice:
   {
        if(!brightened)
        {
            setViewArea(
                new Rectangle(
                    0, 
                    0, 
                    ((int) getWidth()) -1,
                    ((int) getHeight()) -1 
                    )
            );
        }
        else
        {
            setViewArea(
                new Rectangle(
                    getTexture().getWidth() / 2, 
                    0, 
                    ((int) getWidth()) -1 + (getTexture().getWidth() / 2),
                    ((int) getHeight()) -1
                    )
                );
        }
        
        this.brightened = brightened;
    }
che soddisfa i test di build
Ho provato anche a farlo girare e ora si vede bene.

Un appunto sui colori dei diamanti:
il diamante(normale) è molto simile all sapphire illuminato(una volta sovrapensiero mi sono proprio sbagliato), forse si potrebbero differenziare un po di piu.

Se il tutto va bene, fatemi sapere come fare il commit
thebol è offline  
Old 07-12-2005, 22:02   #18
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
Quote:
Originariamente inviato da thebol
Un appunto sui colori dei diamanti:
il diamante(normale) è molto simile all sapphire illuminato(una volta sovrapensiero mi sono proprio sbagliato), forse si potrebbero differenziare un po di piu.
Grazie per la segnalazione, appena mi libero un pò provvederemo


Quote:
Originariamente inviato da thebol
Se il tutto va bene, fatemi sapere come fare il commit
Non hai accesso al repository su Subversion? Ti consiglio di dare una sbirciata qui: http://www.hwupgrade.it/forum/showthread.php?t=1016614
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.
Jocchan è offline  
Old 07-12-2005, 22:12   #19
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
mi manca il login e pwd
thebol è offline  
Old 07-12-2005, 22:15   #20
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da thebol
ci ho pensato un po e immagino sia proprio questo da fare...

cmq mi ci prenoterei io per questo task.
Tempo stimato 1 giorno.
Assegnato.

ciao
VICIUS è offline  
 Discussione Chiusa


ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondo...
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint Cybersecurity: email, utenti e agenti IA, la nuo...
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti Hisense A85N: il ritorno all’OLED è convi...
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento Acer TravelMate P6 14 AI: il Copilot+ PC sotto i...
Recensione Borderlands 4, tra divertimento e problemi tecnici Recensione Borderlands 4, tra divertimento e pro...
Ecco il nuovo Amazon Luna: videogiochi p...
ISRO: prosegue lo sviluppo della navicel...
CoD Black Ops 7 offrirà la beta p...
Il telescopio spaziale James Webb sta ai...
Crucial spinge sui moduli LPCAMM2: fino ...
Imgur blocca gli utenti del Regno Unito:...
ROG Xbox Ally già in consegna: qu...
Ubisoft annuncia Vantage Studios: Assass...
Il solare diventa la prima fonte di elet...
Google Home si rinnova completamente: ar...
Dense Geometry Format (DGF): novit&agrav...
Gemini for Home arriva a ottobre sui dis...
Amazon Smart Air Quality Monitor: a soli...
Mazzata Raspberry Pi, i prezzi aumentano...
Amazon Seconda Mano - Warehouse: extra s...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 19:36.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v