Zwischenstand2

main
Jonathan Hager 3 years ago
parent e9282a62fb
commit 9ce0701cc7
Signed by: JonathanHager
GPG Key ID: 34881E488569708C

@ -3,7 +3,7 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include "../IsometricMap/isometricMap.h" #include "../IsometricMap/isometricMap.h"
#include "../Textures/textureIDs.h" #include "../definitions.h"
#include "../Textures/animationHandler.h" #include "../Textures/animationHandler.h"
#include "../Textures/animation.h" #include "../Textures/animation.h"
#include "../Textures/textureatlas.h" #include "../Textures/textureatlas.h"
@ -52,16 +52,16 @@ Sprite * SpriteCreate(TextureAtlas *atlas, int textureID, int x, int y){
//AnimationHandler create //AnimationHandler create
Animation **animations = 0; Animation **animations = 0;
if(textureID == TE_worker){ if(textureID == TE_WORKER){
animations = atlas->workerAnimations; animations = atlas->workerAnimations;
} }
else if(textureID == TE_cursor){ else if(textureID == TE_WORKER){
animations = atlas->cursorAnimation; animations = atlas->cursorAnimation;
} }
else if(textureID == TE_building){ else if(textureID == TE_BUILDING){
animations = atlas->buildingAnimation; animations = atlas->buildingAnimation;
} }
else if(textureID == TE_baustelle){ else if(textureID == TE_BAUSTELLE){
animations = atlas->baustelleAnimation; animations = atlas->baustelleAnimation;
} }
else{ else{

@ -5,13 +5,14 @@
#include "stdio.h" #include "stdio.h"
TextureAtlas * TextureAtlasInit(){ TextureAtlas * TextureAtlasInit(){
TextureAtlas *textures = malloc(sizeof(TextureAtlas)); TextureAtlas *new = malloc(sizeof(TextureAtlas));
TextureAtlasLoadTextures(new->textures);
//LoadCursorTextures(textures->cursorTextures, textures->cursorAnimation);
//LoadWorkerTextures(textures->workerTextures);
//LoadWorkerAnimations(textures->workerAnimations, textures->workerTextures);
LoadCursorTextures(textures->cursorTextures, textures->cursorAnimation); /*
LoadWorkerTextures(textures->workerTextures);
LoadWorkerAnimations(textures->workerAnimations, textures->workerTextures);
//Das soll nicht hier hin, bin aber zu faul :| //Das soll nicht hier hin, bin aber zu faul :|
textures->building = LoadTexture("assets/building.png"); textures->building = LoadTexture("assets/building.png");
Animation *buildingAnimation = AnimationInit(); Animation *buildingAnimation = AnimationInit();
@ -24,8 +25,10 @@ TextureAtlas * TextureAtlasInit(){
textures->buildingAnimation[5] = buildingAnimation; textures->buildingAnimation[5] = buildingAnimation;
textures->buildingAnimation[6] = buildingAnimation; textures->buildingAnimation[6] = buildingAnimation;
textures->buildingAnimation[7] = buildingAnimation; textures->buildingAnimation[7] = buildingAnimation;
*/
//Das soll nicht hier hin, bin aber zu faul :| //Das soll nicht hier hin, bin aber zu faul :|
/*
textures->baustelle = LoadTexture("assets/construction.png"); textures->baustelle = LoadTexture("assets/construction.png");
Animation *baustelleAnimation = AnimationInit(); Animation *baustelleAnimation = AnimationInit();
AnimationInsertBack(baustelleAnimation, &textures->baustelle); AnimationInsertBack(baustelleAnimation, &textures->baustelle);
@ -37,31 +40,143 @@ TextureAtlas * TextureAtlasInit(){
textures->baustelleAnimation[5] = baustelleAnimation; textures->baustelleAnimation[5] = baustelleAnimation;
textures->baustelleAnimation[6] = baustelleAnimation; textures->baustelleAnimation[6] = baustelleAnimation;
textures->baustelleAnimation[7] = baustelleAnimation; textures->baustelleAnimation[7] = baustelleAnimation;
*/
return textures; return new;
} }
void TextureAtlasLoadTextures(TextureAtlas *atlas){ void TextureAtlasLoadTextures(Texture2D **textures){
int i; int i;
for(i = 0; i < TE_AMOUNT; i++){ for(i = 0; i < TE_AMOUNT; i++){
switch(i){ switch(i){
case TE_CURSOR: case TE_CURSOR:
//Laden textures[TE_CURSOR] = malloc(2 * sizeof(Texture2D)); // So vielleicht
LoadCursorTextures(textures[TE_CURSOR]);
break; break;
case TE_WORKER: case TE_WORKER:
// Laden LoadEntityTextures(textures[TE_WORKER], "worker");
break;
case TE_BUILDING:
LoadMapObjectTextures(textures[TE_BUILDING], "building");
break;
case TE_BAUSTELLE:
LoadMapObjectTextures(textures[TE_BAUSTELLE], "baustelle");
break; break;
default:
printf("WARNING: TEXTUREATLAS TRIED LOADING NON DEFINED TEXTUREID!!\n");
} }
} }
} }
void LoadCursorTextures(Texture2D *cursorTextures, Animation **cursorAnimation){ void LoadEntityTextures(Texture2D *atlasrow, char *directoryPrefix){
*cursorTextures = LoadTexture("assets/cursor.gif"); // Das klappt so nicht
*(cursorTextures + 1) = LoadTexture("assets/cursor_down.gif"); atlasrow = malloc(TE_ENTITY_LENGTH * sizeof(Texture2D));
// pathToFile wird erstellt. z.B. assets/entities/ + worker ---> assets/entities/worker/
char pathToFile[50] = "assets/entities/";
strcat(pathToFile, directoryPrefix);
strcat(pathToFile, "/");
char animation[30] = "walk";
char filename[100];
char number[3] = "";
char ending[5] = ".png";
// Since some Images need to be flipped, we have fewer pngs than textures later loaded. i counts textures
// file counts the filename and is incremented manually when needed
int i;
int file = 0;
for(i = 0; i < TE_ENTITY_LENGTH; i++){
// Concatenate the correct string for the filename assets/worker/ + walk + - + 5 + .png
sprintf(number, "%d", file);
strcat(filename, pathToFile);
strcat(filename, animation);
strcat(filename, "-");
strcat(filename, number);
strcat(filename, ending);
//printf("file:%s:file\n", filename);
// Set correct values for next iteration
int lol = i % 8;
if(lol == 0){
atlasrow[i] = LoadTexture(filename);
printf("\n");
file++;
}
else if(lol == 2){
Image tmp = LoadImage(filename);
ImageFlipHorizontal(&tmp);
atlasrow[i] = LoadTextureFromImage(tmp);
printf("flipped\n");
file++;
}
else if(lol == 4){
Image tmp = LoadImage(filename);
ImageFlipHorizontal(&tmp);
atlasrow[i] = LoadTextureFromImage(tmp);
printf("flipped\n");
file++;
}
else if(lol == 6){
Image tmp = LoadImage(filename);
ImageFlipHorizontal(&tmp);
atlasrow[i] = LoadTextureFromImage(tmp);
printf("flipped\n");
file++;
}
else if(lol == 7){
atlasrow[i] = LoadTexture(filename);
printf("\n");
file++;
}
else{
atlasrow[i] = LoadTexture(filename);
printf("\n");
}
strcpy(filename, "");
strcpy(number, "");
if(i == 39){
strcpy(animation, "arbeiten");
file = 0;
}
else if(i == 79){
strcpy(animation, "die");
file = 0;
}
}
}
void LoadMapObjectTextures(Texture2D *atlasrow, char *directoryPrefix){
atlasrow = malloc(TE_MAPOBJECT_LENGTH * sizeof(Texture2D));
// pathToFile wird erstellt. z.B. assets/mapobjects/ + building ---> assets/mapobjects/building/
char pathToFile[50] = "assets/mapobjects/";
strcat(pathToFile, directoryPrefix);
strcat(pathToFile, "/");
//char animation[30] = "walk";
char filename[100];
//char number[3] = "";
char ending[5] = ".png";
strcat(filename, pathToFile);
strcat(filename, "idle");
strcat(filename, ending);
atlasrow[0] = LoadTexture(filename);
}
void LoadCursorTextures(Texture2D *cursorTextures){
cursorTextures = malloc(2 * sizeof(Texture2D));
Animation *new = AnimationInit(); cursorTextures[0] = LoadTexture("assets/cursor.gif");
AnimationInsertBack(new, cursorTextures); cursorTextures[1] = LoadTexture("assets/cursor_down.gif");
cursorAnimation[0] = new;
} }
void LoadWorkerTextures(Texture2D *workerTextures){ void LoadWorkerTextures(Texture2D *workerTextures){

@ -25,8 +25,11 @@ typedef struct TextureAtlas{
// Initialize the full TextureAtlas struct with all Textures used in the game // Initialize the full TextureAtlas struct with all Textures used in the game
TextureAtlas * TextureAtlasInit(); TextureAtlas * TextureAtlasInit();
void TextureAtlasLoadTextures(TextureAtlas *atlas); void TextureAtlasLoadTextures(Texture2D **textures);
void LoadCursorTextures(Texture2D *cursorTextures, Animation **cursorAnimation); void LoadCursorTextures(Texture2D *cursorTextures);
void LoadEntityTextures(Texture2D *atlasrow, char *directoryPrefix);
void LoadMapObjectTextures(Texture2D *atlasrow, char *directoryPrefix);
void LoadWorkerTextures(Texture2D *workerTextures); void LoadWorkerTextures(Texture2D *workerTextures);
void LoadWorkerAnimations(Animation **workerAnimations, Texture2D *workerTextures); void LoadWorkerAnimations(Animation **workerAnimations, Texture2D *workerTextures);

Before

Width:  |  Height:  |  Size: 760 B

After

Width:  |  Height:  |  Size: 760 B

Before

Width:  |  Height:  |  Size: 753 B

After

Width:  |  Height:  |  Size: 753 B

Before

Width:  |  Height:  |  Size: 771 B

After

Width:  |  Height:  |  Size: 771 B

Before

Width:  |  Height:  |  Size: 775 B

After

Width:  |  Height:  |  Size: 775 B

Before

Width:  |  Height:  |  Size: 728 B

After

Width:  |  Height:  |  Size: 728 B

Before

Width:  |  Height:  |  Size: 771 B

After

Width:  |  Height:  |  Size: 771 B

Before

Width:  |  Height:  |  Size: 817 B

After

Width:  |  Height:  |  Size: 817 B

Before

Width:  |  Height:  |  Size: 754 B

After

Width:  |  Height:  |  Size: 754 B

Before

Width:  |  Height:  |  Size: 790 B

After

Width:  |  Height:  |  Size: 790 B

Before

Width:  |  Height:  |  Size: 754 B

After

Width:  |  Height:  |  Size: 754 B

Before

Width:  |  Height:  |  Size: 755 B

After

Width:  |  Height:  |  Size: 755 B

Before

Width:  |  Height:  |  Size: 809 B

After

Width:  |  Height:  |  Size: 809 B

Before

Width:  |  Height:  |  Size: 733 B

After

Width:  |  Height:  |  Size: 733 B

Before

Width:  |  Height:  |  Size: 749 B

After

Width:  |  Height:  |  Size: 749 B

Before

Width:  |  Height:  |  Size: 765 B

After

Width:  |  Height:  |  Size: 765 B

Before

Width:  |  Height:  |  Size: 756 B

After

Width:  |  Height:  |  Size: 756 B

Before

Width:  |  Height:  |  Size: 738 B

After

Width:  |  Height:  |  Size: 738 B

Before

Width:  |  Height:  |  Size: 767 B

After

Width:  |  Height:  |  Size: 767 B

Before

Width:  |  Height:  |  Size: 758 B

After

Width:  |  Height:  |  Size: 758 B

Before

Width:  |  Height:  |  Size: 816 B

After

Width:  |  Height:  |  Size: 816 B

Before

Width:  |  Height:  |  Size: 772 B

After

Width:  |  Height:  |  Size: 772 B

Before

Width:  |  Height:  |  Size: 736 B

After

Width:  |  Height:  |  Size: 736 B

Before

Width:  |  Height:  |  Size: 700 B

After

Width:  |  Height:  |  Size: 700 B

Before

Width:  |  Height:  |  Size: 777 B

After

Width:  |  Height:  |  Size: 777 B

Before

Width:  |  Height:  |  Size: 812 B

After

Width:  |  Height:  |  Size: 812 B

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Loading…
Cancel
Save