|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
[CICLO 1] Storia 2: Divisione in Task
Ecco la nuova storiella e i task da implementare.
Storia: Una volta aperta la finestra del gioco deve essere possibile spostare il diamante al suo interno usando le frecce direzionali della tastiera. Durante gli spostamenti il diamante deve "pulsare" cioè ingrandirsi e rimpicciolirsi di qualche millimetro. Quando il diamante tocca un bordo il movimento deve fermarsi e il gioco riprodurre un suono. Task: 2.1 Permettere al diamante di essere posizionato in un punto qualsiasi dello schermo. (Vifani: completato) 2.2 Spostare il diamante nelle quattro direzioni di X pixel. (Vifani: completato) 2.3 Intercettare la pressione delle frecce direzionali e spostare il diamante. (cdimauro: 2 giorni) 2.4 Rilevare la "collisione" con i bordi dello finestra e impedire lo spostamento. (DanieleC88: 2 giorni) 2.5 Riprodurre il suono quando il diamante collide con un bordo. (BlueDragon: da definire) 2.6 Permettere al diamante di pulsare durante lo spostamento. (VICIUS: 2 giorni) Il ciclo comincia lunedi mattina alle 8. Siate puntuali e ricordatevi di timbrare il cartellino ![]() ciao ![]() Ultima modifica di VICIUS : 27-09-2005 alle 11:23. |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2001
Città: Bari
Messaggi: 2776
|
Task 2.1 e 2.2 prenotati. Prevedo un paio di giorni per tutti e due
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Vi ricordo che questi sono i test "obbligatori" per concludere il task, ma siete caldamente invitati ad aggiungere tutti i test necessari.
Come sempre trovate i test in it.diamonds.tests.ignore e dovete spostarli in it.diamonds.tests. 2.1 Permettere al diamante di essere posizionato in un punto qualsiasi dello schermo. (Vifani: 2 giorni) 2.2 Spostare il diamante nelle quattro direzioni di X pixel. (Vifani: 2 giorni) Codice:
public class TestSprite extends TestCase { protected void setUp() throws Exception { super.setUp(); } protected void tearDown() throws Exception { super.tearDown(); } public void testGetTexture() { Texture texture = new Texture("diamond"); Sprite sprite = new Sprite(100, 200, texture); assertAreSame(texture, sprite.getTexture()); } public void testGetPosition() { Texture texture = new Texture("diamond"); Sprite sprite = new Sprite(100, 200, texture); assertAreEqual(100, sprite.getX()); assertAreEqual(200, sprite.getY()); } public void testMove() { Texture texture = new Texture("diamond"); Sprite sprite = new Sprite(100, 200, texture); sprite.Move(10, 20); assertAreEqual(110, sprite.getX()); assertAreEqual(220, sprite.getY()); sprite.Move(-10, -20); assertAreEqual(90, sprite.getX()); assertAreEqual(180, sprite.getY()); } } Input da tastiera. Va testato manualmente. 2.4 Rilevare la "collisione" con i bordi dello finestra e impedire lo spostamento. (DanieleC88: 2 giorni) Codice:
public class testSpriteCollision extends TestCase { protected void setUp() throws Exception { super.setUp(); } protected void tearDown() throws Exception { super.tearDown(); } public void testLeftCollision() { // no texture Sprite sprite = new Sprite(5, 0); sprite.Move(-10, 0); assertAreEqual(0, sprite.getX()); } public void testRightCollision() { int width = 800; Sprite sprite = new Sprite(width - 5, 0); sprite.Move(10, 0); assertAreEqual(width, sprite.getX()); } public void testTopCollision() { // no texture Sprite sprite = new Sprite(0, 5); sprite.Move(0, -10); assertAreEqual(0, sprite.getY()); } public void testBottomCollision() { int height = 600; Sprite sprite = new Sprite(height - 5, 0); sprite.Move(0, 10); assertAreEqual(height, sprite.getY()); } } 2.5 Riprodurre il suono quando il diamante collide con un bordo. Codice:
public class TestSpriteCollisionSound extends TestCase { protected void setUp() throws Exception { super.setUp(); } protected void tearDown() throws Exception { super.tearDown(); } public void testCollisionSound() { Sprite sprite = new Sprite(0, 0); Sound sound = new Sound("diamond"); // TODO: use a MockObject sound.setTesting(true); assertFalse("Sound must not be played before a collision", sound.wasPlayed()); sprite.setCollisionSound(sound); sprite.Move(-10, 0); assertFalse("Sound must be played after a collision", sound.wasPlayed()); } } Vicius?
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA Ultima modifica di fek : 25-09-2005 alle 18:38. |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Task 2.3 pronotato. Prevedo due giorni per realizzarlo.
__________________
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 |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Vorrei che i restanti task fossero prenotati da qualcuno che non ha partecipato alla Storia precedente.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Quote:
![]() ciao ![]() |
|
![]() |
![]() |
#7 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
pazientate altri 3 giorni e ne avrete un altro ^^
comunque vorrei chiedere un chiarimento sul task 2.6: il diamante deve pulsare sempre o solo quando si muove? nel gioco finale il diamante una volta che è arrivato a terra (o sopra un altro diamante sottostante) deve smettere di pulsare? |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Quote:
![]() ciao ![]() |
|
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Quote:
ciao ![]() |
|
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
![]()
__________________
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 |
|
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
![]() I test li scrivi comunque...
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Oppure scelgo io il volontario e facciamo il task assieme in TDD in diretta in un topic ![]()
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
![]() |
![]() |
#14 | |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
![]() Mi vengono in mente soltanto 4 test per controllare se lo spostamento del diamante (a seguito della pressione di una delle frecce) è avvenuto regolarmente.
__________________
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 |
|
![]() |
![]() |
#15 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
keyboard.notifyLeftArrow(); dall'altra parte keyboard.isLeftArrowPressed() tornera' 'true'. In questo modo possiamo scrivere dei test che controllano che il diamante si sia effettivamente spostato quando la tastiera notifica la pressione della freccia a sinistra. Il finale di tutto questo lavoro sono i cosiddetti "Customer Test", test scritti in un linguaggio ad alto livello che simulano il gioco vero e proprio. Ma non so se arriveremo mai a questo.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
![]() |
![]() |
#16 | |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Quote:
![]() ciao ![]() |
|
![]() |
![]() |
#17 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
![]() |
![]() |
#18 | |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
![]() Ma scherzo, hai ragione tu. Ci vorranno 5 minuti. (spero ![]()
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
![]() |
![]() |
#19 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Oltre tutto il test del suono dopo una collisione apre le porte ad un paio di interrogativi non banali (gestione degli eventi associati ad uno sprite?) e dev'essere affrontato con molta cura.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
![]() |
![]() |
#20 | |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
![]()
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:41.