|
|
|
![]() |
|
Strumenti |
![]() |
#21 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Inizio con QuickFix sul draw di GemGroup per far compilare il tutto...
Build rossa... NullPointerException... Implemento il draw ![]() Codice:
public void draw(PositionType position, EngineInterface engine) { Point origin = POSITIONTOPOINT.get(position); sprite.setOrigin((int)origin.getX(), (int)origin.getY()); sprite.draw(engine); } Build verde ![]() |
![]() |
![]() |
![]() |
#22 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Bene preparo il prossimo test
Codice:
public void testDrawInCorrectPositions() { MockEngine engine = MockEngine.createForTesting(800, 600); Gem gem9 = Gem.create(gem3.getType(), 3500); Gem gem10 = Gem.create(gem3.getType(), 3500); Gem gem11 = Gem.create(gem3.getType(), 3500); insertAndUpdate(gem3, 13, 1); insertAndUpdate(gem4, 13, 2); insertAndUpdate(gem5, 13, 3); insertAndUpdate(gem6, 12, 1); insertAndUpdate(gem7, 12, 2); insertAndUpdate(gem8, 12, 3); insertAndUpdate(gem9, 11, 1); insertAndUpdate(gem10, 11, 2); insertAndUpdate(gem11, 11, 3); grid.draw(engine); assertEquals("GemGroup wasn't drawn correctly", 10, engine.getNumberOfQuadsDrawn()); } ![]() Build rossa... |
![]() |
![]() |
![]() |
#23 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
thebol è uscito e Fek ha chiesto di finire il task stasera... Finisco io...
cambio il draw in Grid Codice:
public void draw(EngineInterface engine) { background.draw(engine); for(int y = grid.length - 1; y >= 0; y--) { for(int x = 0; x < grid[y].length; x++) { Gem gem = getGemAt(y, x); if(gem != null) { gem.draw(engine); if(gem.getGroup() != null) { gem.getGroup().draw(gem.getGroup().getPositionType(gem), engine); } } } } } ![]() |
![]() |
![]() |
![]() |
#24 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Mi manca ancora un test... la draw di un tile deve venire fatta alle coordinate della gemma corrispondente nel gemgroup.
Hmmm pensandoci bene preferisco spezzarlo in due test... Prima controllo che la draw venga fatta in una certa posizione. Codice:
public void testGridDrawsTilesInRightPositions() { MockEngine engine = MockEngine.createForTesting(800, 600); insertAndUpdate(gem3, 13, 1); insertAndUpdate(gem4, 13, 2); insertAndUpdate(gem5, 12, 1); insertAndUpdate(gem6, 12, 2); gem3.getGroup().draw(PositionType.BottomLeftCorner, engine, new Point(10, 20)); assertEquals("Tile wasn't drawn in correct position (X)", 10, (int)engine.getQuadPosition().getX()); assertEquals("Tile wasn't drawn in correct position (Y)", 20, (int)engine.getQuadPosition().getY()); gem3.getGroup().draw(PositionType.BottomLeftCorner, engine, new Point(30, 40)); assertEquals("Tile wasn't drawn in correct position (X)", 30, (int)engine.getQuadPosition().getX()); assertEquals("Tile wasn't drawn in correct position (Y)", 40, (int)engine.getQuadPosition().getY()); } Codice:
public void draw(PositionType positionType, EngineInterface engine, Point position) { Point origin = POSITIONTOPOINT.get(positionType); sprite.setOrigin((int)origin.getX(), (int)origin.getY()); sprite.moveTo(position.getX(), position.getY()); sprite.draw(engine); } |
![]() |
![]() |
![]() |
#25 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Mi serve un test che dimostri la correttezza della posizione della draw...
Non sono riuscito a trovare modo migliore per fare questo test ![]() Codice:
public void testGridDrawsEveryTileInCorrespondingGemPosition() { MockEngine engine = MockEngine.createForTesting(800, 600); insertAndUpdate(gem3, 13, 1); insertAndUpdate(gem4, 13, 2); insertAndUpdate(gem5, 12, 1); insertAndUpdate(gem6, 12, 2); grid.draw(engine); assertEquals("TopRight tile wasn't drawn correctly (X)", gem6.getX(), engine.getQuadPosition().getX()); assertEquals("TopRight tile wasn't drawn correctly (Y)", gem6.getY(), engine.getQuadPosition().getY()); gem6.moveTo(60, 50); grid.draw(engine); assertEquals("TopRight tile wasn't drawn correctly (X)", gem6.getX(), engine.getQuadPosition().getX()); assertEquals("TopRight tile wasn't drawn correctly (Y)", gem6.getY(), engine.getQuadPosition().getY()); } Codice:
public void draw(EngineInterface engine) { background.draw(engine); for(int y = grid.length - 1; y >= 0; y--) { for(int x = 0; x < grid[y].length; x++) { Gem gem = getGemAt(y, x); if(gem != null) { gem.draw(engine); if(gem.getGroup() != null) { Point position = new Point(gem.getX(), gem.getY()); GemGroup gemGroup = gem.getGroup(); gemGroup.draw(gemGroup.getPositionType(gem), engine, position); } } } } } ![]() |
![]() |
![]() |
![]() |
#26 |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Appena provata la build. Che belli i gemmoni!
![]()
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:55.