Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto è il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore più ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte più ampia, Dynamic Island più piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
A Londra, per il trentennale dei Toughbook, Panasonic ha presentato il tablet G3 e il 2-in-1 34. Con Jon Tucker, a capo dell'ingegneria europea, abbiamo parlato di ciò che non si vede: batterie, antenne, porte seriali e accorgimenti nati sul campo
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


Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
Uno sviluppatore ha usato iPhone come se...
L'AI di OpenAI scoperta a barare: GPT-6 ...
Gli utenti di ChatGPT potranno provare v...
Scende a 692€ Samsung Galaxy S26 256GB i...
Instagram ha lanciato un assistente IA p...
Samsung Galaxy S26 Ultra scontato di 500...
Samsung prepara il lancio di un nuovo Go...
Apple: John Ternus assume il controllo d...
PS5 Slim cambia ancora: Sony introduce u...
Cultura 'rotta' e sicurezza sotto accusa...
Android Auto, il nuovo lettore porta in ...
I nuovi MacBook con display OLED potrebb...
Windows 11: l'aggiornamento KB5124010 fa...
iPhone Duo, la pellicola protettiva del ...
Memorie più costose, NVIDIA aumen...
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: 07:40.


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