Goedendag Tweakers en Tweakerinnen,
Voor een project zijn we bezig met een grid gebaseerd spel. Het probleem waar we tegenaangelopen zijn is dat er bij het sidescrollen zich een gods irritante fout voordoet, namenlijk: Als we naar boven/links/recht scrollen gaat alles perfect maar wanner het spel naar beneden scrolt krijgen we een heerlijke IndexArray Out of bounds Exeption. Wij hoopten dat jullie mischien iets weten om dit te verklaren want wij komen er niet meer uit
Met vriendelijke groeten!
Voor een project zijn we bezig met een grid gebaseerd spel. Het probleem waar we tegenaangelopen zijn is dat er bij het sidescrollen zich een gods irritante fout voordoet, namenlijk: Als we naar boven/links/recht scrollen gaat alles perfect maar wanner het spel naar beneden scrolt krijgen we een heerlijke IndexArray Out of bounds Exeption. Wij hoopten dat jullie mischien iets weten om dit te verklaren want wij komen er niet meer uit
Met vriendelijke groeten!
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
| @Override public void onDraw(Canvas canvas) { super.onDraw(canvas); int xScrStart = 0; int xScrEnd = FiSt.X_TILES_TO_DRAW; int yScrStart = FiSt.Y_TILES_TO_DRAW; int yScrEnd = FiSt.Y_TILES_TO_DRAW * 2; if (player != null) { if ((player.getBotX() > playerLeftMargin) && (player.getBotX() < gridModel.getXTiles() - playerRightMargin)) { xScrStart = player.getBotX() - playerLeftMargin; xScrEnd = player.getBotX() + playerRightMargin; } else if (player.getBotX() >= gridModel.getXTiles() - playerRightMargin) { xScrStart = gridModel.getXTiles() - FiSt.X_TILES_TO_DRAW; xScrEnd = gridModel.getXTiles(); } if ((player.getBotY() > playerTopMargin) && (player.getBotY() < gridModel.getXTiles() - playerBotMargin)) { yScrStart = player.getBotY() - playerTopMargin; yScrEnd = player.getBotY() + playerBotMargin; } else if (player.getBotY() <= playerTopMargin) { yScrStart = 0; yScrEnd = FiSt.Y_TILES_TO_DRAW; } else if (player.getBotY() >= gridModel.getYTiles() - playerBotMargin) { yScrStart = gridModel.getYTiles() - FiSt.Y_TILES_TO_DRAW; yScrEnd = gridModel.getYTiles(); } } if (gridModel != null) { for (int x = xScrStart; x < xScrEnd; x++) { for (int y = yScrStart; y < yScrEnd; y++) { if (gridModel.getTile(x, y) >= 0) { canvas.drawBitmap(bitmapArray[gridModel.getTile(x, y)], (xOffset / 2) + (x - xScrStart) * tileSize, (yOffset / 2) + (y - yScrStart) * tileSize, paint); } } } } |