going back to y-sorting sprites, still drawn seperate from isometric map, branching out for real depth sorting

main
JanEhehalt 3 years ago
parent da9b30b479
commit f78d846a13

@ -87,10 +87,8 @@ void IsometricRendererRenderIsometricMap(Game *game){
int i = 0; // x int i = 0; // x
int j = 0; // y int j = 0; // y
for (n = 0; n < 10; n++){ for (n = 0; n < 10; n++){
Node *current = game->sprites->head; for (j = jtmp; j < maxJ; j++){
for (j = jtmp; j < maxJ; j++){
for (i = itmp; i < maxI; i++){ for (i = itmp; i < maxI; i++){
if (game->layers[n]->tiles[i][j]->textureId == -1){ if (game->layers[n]->tiles[i][j]->textureId == -1){
} }
@ -102,14 +100,17 @@ for (n = 0; n < 10; n++){
WHITE); WHITE);
} }
// Draw sprites that are over the tile
while(current != 0 && current->data.y <= (j + 1) * game->layers[n]->textureWidth){
if(current->data.z == n){
DrawSpriteToWorld(&current->data, game->layers, game->camera);
}
current = current->next;
}
} }
/*
Node *current = game->sprites->head;
// Draw sprites that are over the tile
while(current != 0 && current->data.y <= (j + 1) * game->layers[n]->textureWidth && current->data.y >= (j) * game->layers[n]->textureWidth){
//if(current->data.z == n){
DrawSpriteToWorld(&current->data, game->layers, game->camera);
//}
current = current->next;
}*/
} }
} }
} }

Binary file not shown.

Binary file not shown.

BIN
game.o

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
list.o

Binary file not shown.

@ -33,7 +33,7 @@ int main(){
BeginMode2D(*(game->camera)); BeginMode2D(*(game->camera));
IsometricRendererRenderIsometricMap(game); IsometricRendererRenderIsometricMap(game);
//ListDrawAllSprites(game->sprites, game->layers, game->camera); ListDrawAllSprites(game->sprites, game->layers, game->camera);
EndMode2D(); EndMode2D();

BIN
main.o

Binary file not shown.

BIN
spiel

Binary file not shown.

@ -38,7 +38,9 @@ void DrawSpriteToWorld(Sprite *sprite, IsometricMap **map, Camera2D *camera){
// Wir müssen beachten, dass sie nach den unprojezierten Screen-Koordinaten sortiert werden müssen. // Wir müssen beachten, dass sie nach den unprojezierten Screen-Koordinaten sortiert werden müssen.
// Macht es vielleicht sinn den Sprites auch einen Vector mit ihren Screen Koordinaten zu geben? // Macht es vielleicht sinn den Sprites auch einen Vector mit ihren Screen Koordinaten zu geben?
Vector2 pos = {sprite->x, sprite->y}; //Vector2 pos = {sprite->x, sprite->y};
Vector2 pos = {sprite->x - sprite->texture->width, sprite->y - sprite->texture->height/2};
IsometricMapUnproject(map, camera, pos.x, pos.y, sprite->z, &pos); IsometricMapUnproject(map, camera, pos.x, pos.y, sprite->z, &pos);
// Also erst ab hier sortieren, mit den Werten aus dem pos Vector // Also erst ab hier sortieren, mit den Werten aus dem pos Vector
// IsometricMap muss auch mit reingerechnet werden -> mögliche Container Lösung steht in der README // IsometricMap muss auch mit reingerechnet werden -> mögliche Container Lösung steht in der README

Binary file not shown.

Binary file not shown.

BIN
tile.o

Binary file not shown.
Loading…
Cancel
Save