main
JanEhehalt 3 years ago
parent 2412c1a0d3
commit 251a876d5f

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

Binary file not shown.

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

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

Binary file not shown.

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

Binary file not shown.

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