main
JanEhehalt 3 years ago
parent 2412c1a0d3
commit 251a876d5f

@ -9,7 +9,8 @@
"compilerPath": "/usr/bin/gcc", "compilerPath": "/usr/bin/gcc",
"cStandard": "gnu17", "cStandard": "gnu17",
"cppStandard": "gnu++17", "cppStandard": "gnu++17",
"intelliSenseMode": "linux-gcc-x64" "intelliSenseMode": "linux-gcc-x64",
"configurationProvider": "ms-vscode.makefile-tools"
} }
], ],
"version": 4 "version": 4

Binary file not shown.

@ -1,28 +1,31 @@
#include "isometricMap.h" #include "isometricMap.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h>
IsometricMap * IsometricMapInit(int x, int y){ IsometricMap * IsometricMapInit(int x, int y){
IsometricMap *map = (IsometricMap *) malloc(sizeof(IsometricMap)); IsometricMap* map = (IsometricMap *) malloc(sizeof(IsometricMap));
Texture textures[10]; //Texture2D textures[10];
textures[0] = LoadTexture("assets/grass.png"); map->tileTextures[0] = LoadTexture("assets/grass.png");
textures[1] = LoadTexture("assets/tower.png"); map->tileTextures[1] = LoadTexture("assets/tower.png");
map->tileTextures = &textures; //map->tileTextures = textures;
//Tile *tiles[x][y]; Tile* tiles[x];
Tile **tiles = (Tile **)malloc(x * sizeof(Tile *)); int n = 0;
int n = 0; for(n=0; n<x; n++){
for(n = 0; n < x; ++n){ tiles[n] = (Tile*)malloc(y*sizeof(Tile));
tiles[n] = (Tile *)malloc(y * sizeof(Tile)); }
}
//printf("%ld\n", sizeof(tiles));
map->sizeX = x; map->sizeX = x;
map->sizeY = y; map->sizeY = y;
int i = 0; int i = 0;
int j = 0; int j = 0;
for(i=0; i < x; i++){ for(i=0; i < x; i++){
for(i=0; i < y; i++){ for(j=0; j < y; j++){
if(i != j){ if(i != j){
Tile tmp = {0, i, j}; Tile tmp = {0, i, j};
tiles[i][j] = tmp; tiles[i][j] = tmp;
@ -41,15 +44,17 @@ IsometricMap * IsometricMapInit(int x, int y){
Vector2 * IsometricMapCalcOffsetForTileAt(int x, int y, int textureSize){ Vector2 * IsometricMapCalcOffsetForTileAt(int x, int y, int textureSize){
Vector2 offset = {0, 0}; //Vector2 offset = {0, 0};
Vector2* offset = (Vector2 *)malloc(sizeof(Vector2));
offset.x = x * textureSize/2; offset->x = x * textureSize/2;
offset.y = x * textureSize/4; offset->y = x * textureSize/4;
offset.x -= y * textureSize/2; offset->x -= y * textureSize/2;
offset.y += y * textureSize/4; offset->y += y * textureSize/4;
return &offset; return offset;
} }

@ -4,9 +4,9 @@
#include "tile.c" #include "tile.c"
typedef struct IsometricMap{ typedef struct IsometricMap{
Texture *tileTextures; Texture2D tileTextures[10];
//tiles -> two dimensional Array //tiles -> two dimensional Array
Tile *tiles; Tile **tiles;
int sizeX; int sizeX;
int sizeY; int sizeY;
} IsometricMap; } IsometricMap;

Binary file not shown.

@ -44,16 +44,16 @@ void IsometricRendererRenderIsometricMap(IsometricMap *map){
for(i=0; i < map->sizeX; i++){ for(i=0; i < map->sizeX; i++){
for(j=0; j < map->sizeY; j++){ for(j=0; j < map->sizeY; j++){
Vector2 *offset = IsometricMapCalcOffsetForTileAt(i,j, map->tileTextures[0].width); Vector2 *offset = IsometricMapCalcOffsetForTileAt(i,j, map->tileTextures[0].width);
float x = originX + offset->x; float x = originX + offset->x;
float y = originY + offset->y; float y = originY + offset->y;
// TODO -> results in Segmentation fault
// TODO: Komischer "Bug" //int textureId = map->tiles[i][j].textureId;
// map sollte ein 2-dimensionaler Array aus Tiles sein int textureId = 0;
// -> 2 Dimensionaler Array aus pointern if(i + j == 9){
// wird in IsometricMapInit erzeugt textureId = 1;
int textureId = map->tiles[i][j].textureId; }
DrawTexture(map->tileTextures[textureId], x, y, WHITE); DrawTexture(map->tileTextures[textureId], x, y, WHITE);
} }
} }

Binary file not shown.

@ -1,5 +1,6 @@
#include "raylib.h" #include "raylib.h"
#include "stdio.h" #include "stdio.h"
#include <stdlib.h>
#include "sprite.h" #include "sprite.h"
#include "inputHandler.h" #include "inputHandler.h"
#include "raymath.h" #include "raymath.h"
@ -31,7 +32,7 @@ int main(){
SpriteAdd(sprites, &spriteAmount, &texture, 0, 0); SpriteAdd(sprites, &spriteAmount, &texture, 0, 0);
IsometricMap *map = IsometricMapInit(10, 10); IsometricMap *map = IsometricMapInit(20, 10);
SetTargetFPS(60); SetTargetFPS(60);
while(!WindowShouldClose()){ while(!WindowShouldClose()){

BIN
main.o

Binary file not shown.

BIN
spiel

Binary file not shown.

Binary file not shown.

BIN
tile.o

Binary file not shown.
Loading…
Cancel
Save