|
|
|
|
@ -3,12 +3,14 @@
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
#include "IsometricMap/isometricMap.h"
|
|
|
|
|
#include "IsometricMap/tile.h"
|
|
|
|
|
|
|
|
|
|
void SpriteAdd(Sprite *sprites, int *spriteAmount, Texture2D *texture, int x, int y){
|
|
|
|
|
if(*spriteAmount < 100){
|
|
|
|
|
(sprites + *spriteAmount) -> texture = texture;
|
|
|
|
|
(sprites + *spriteAmount) -> x = x;
|
|
|
|
|
(sprites + *spriteAmount) -> y = y;
|
|
|
|
|
(sprites + *spriteAmount) -> z = 0;
|
|
|
|
|
(sprites + *spriteAmount) -> destX = x;
|
|
|
|
|
(sprites + *spriteAmount) -> destY = y;
|
|
|
|
|
(sprites + *spriteAmount) -> hasDestination = 0;
|
|
|
|
|
@ -20,15 +22,18 @@ void SpriteAdd(Sprite *sprites, int *spriteAmount, Texture2D *texture, int x, in
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void DrawSpriteToWorld(Sprite *sprite, IsometricMap *map, Camera2D *camera){
|
|
|
|
|
void DrawSpriteToWorld(Sprite *sprite, IsometricMap **map, Camera2D *camera){
|
|
|
|
|
|
|
|
|
|
// TODO: Nach y sortieren, bevor sie gedrawed werden
|
|
|
|
|
// 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?
|
|
|
|
|
|
|
|
|
|
Vector2 pos = {sprite->x, sprite->y};
|
|
|
|
|
IsometricMapUnproject(map, camera, pos.x, pos.y, &pos);
|
|
|
|
|
IsometricMapUnproject(map[0], camera, pos.x, pos.y, &pos);
|
|
|
|
|
// Also erst ab hier sortieren, mit den Werten aus dem pos Vector
|
|
|
|
|
|
|
|
|
|
pos.y -= sprite->z * (map[0]->textureHeight/2);
|
|
|
|
|
|
|
|
|
|
pos.x -= camera->target.x;
|
|
|
|
|
pos.y -= camera->target.y;
|
|
|
|
|
if(sprite->selected){
|
|
|
|
|
@ -38,7 +43,7 @@ void DrawSpriteToWorld(Sprite *sprite, IsometricMap *map, Camera2D *camera){
|
|
|
|
|
else{
|
|
|
|
|
DrawTexture(*sprite->texture, pos.x - sprite->texture->width/4, pos.y - sprite->texture->height/4, WHITE);
|
|
|
|
|
}
|
|
|
|
|
printf("%f %f \n", sprite->x, sprite->y);
|
|
|
|
|
//printf("%f %f \n", sprite->x, sprite->y);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void DrawSpriteToScreen(Sprite *sprite){
|
|
|
|
|
|