Weiß net, was wir gemacht ham, bin müde

main
Jonathan Hager 3 years ago
parent 8925d5cbec
commit da9b30b479
Signed by: JonathanHager
GPG Key ID: 34881E488569708C

@ -5,6 +5,7 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include "../game.h" #include "../game.h"
#include "../List/list.h"
// @param deprecated // @param deprecated
void IsometricRendererDrawMap(IsometricRenderer *renderer, int height) void IsometricRendererDrawMap(IsometricRenderer *renderer, int height)
@ -43,29 +44,7 @@ void IsometricRendererDrawMap(IsometricRenderer *renderer, int height)
} }
// parameter could be changed to only IsometricMap[] // parameter could be changed to only IsometricMap[]
void IsometricRendererRenderIsometricMap(Game *game) void IsometricRendererRenderIsometricMap(Game *game){
{
/*
int n = 0;
int i = 0;
int j = 0;
for(n = 0; n < 10; n++){
for(i=0; i < game->layers[n]->width; i++){
for(j=0; j < game->layers[n]->height; j++){
// if tile had texture id -1, it would be empty tile
if(game->layers[n]->tiles[i][j]->textureId == -1){
}
else{
DrawTexture(
game->layers[n]->tileTextures[game->layers[n]->tiles[i][j]->textureId],
game->layers[n]->tiles[i][j]->offsetX,
game->layers[n]->tiles[i][j]->offsetY,
WHITE);
}
}
}
}
*/
int windowWidth = GetScreenWidth(); int windowWidth = GetScreenWidth();
int windowHeight = GetScreenHeight(); int windowHeight = GetScreenHeight();
@ -105,25 +84,31 @@ void IsometricRendererRenderIsometricMap(Game *game)
maxJ = game->layers[0]->height; maxJ = game->layers[0]->height;
} }
int i = 0; int i = 0; // x
int j = 0; int j = 0; // y
for (n = 0; n < 10; n++)
{ for (n = 0; n < 10; n++){
for (i = itmp; i < maxI; i++) Node *current = game->sprites->head;
{ for (j = jtmp; j < maxJ; j++){
for (j = jtmp; j < maxJ; j++)
{ for (i = itmp; i < maxI; i++){
if (game->layers[n]->tiles[i][j]->textureId == -1) if (game->layers[n]->tiles[i][j]->textureId == -1){
{
} }
else else{
{
DrawTexture( DrawTexture(
game->layers[n]->tileTextures[game->layers[n]->tiles[i][j]->textureId], game->layers[n]->tileTextures[game->layers[n]->tiles[i][j]->textureId],
game->layers[n]->tiles[i][j]->offsetX, game->layers[n]->tiles[i][j]->offsetX,
game->layers[n]->tiles[i][j]->offsetY, game->layers[n]->tiles[i][j]->offsetY,
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;
}
} }
} }
} }

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,22 +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);
/*
ListInsertSorted(game->sprites, SpriteCreate(game->textures, 1, 250 + c % 500, 250 + c % 500));
ListInsertSorted(game->sprites, SpriteCreate(game->textures, 1, 250 + c % 500, 250 + c % 500));
ListInsertSorted(game->sprites, SpriteCreate(game->textures, 1, 250 + c % 500, 250 + c % 500));
ListInsertSorted(game->sprites, SpriteCreate(game->textures, 1, 250 + c % 500, 250 + c % 500));
ListInsertSorted(game->sprites, SpriteCreate(game->textures, 1, 250 + c % 500, 250 + c % 500));
ListInsertSorted(game->sprites, SpriteCreate(game->textures, 1, 250 + c % 500, 250 + c % 500));
ListInsertSorted(game->sprites, SpriteCreate(game->textures, 1, 250 + c % 500, 250 + c % 500));
ListInsertSorted(game->sprites, SpriteCreate(game->textures, 1, 250 + c % 500, 250 + c % 500));
ListInsertSorted(game->sprites, SpriteCreate(game->textures, 1, 250 + c % 500, 250 + c % 500));
ListInsertSorted(game->sprites, SpriteCreate(game->textures, 1, 250 + c % 500, 250 + c % 500));
c+=10;
printf("Sprites: %d\n", c);
*/
EndMode2D(); EndMode2D();

BIN
main.o

Binary file not shown.

BIN
spiel

Binary file not shown.

@ -38,7 +38,7 @@ 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->texture->width, sprite->y - sprite->texture->height/2}; Vector2 pos = {sprite->x, sprite->y};
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