|
|
|
@ -27,9 +27,9 @@ int main(){
|
|
|
|
inputHandler.rectStart.y = 0;
|
|
|
|
inputHandler.rectStart.y = 0;
|
|
|
|
inputHandler.cursorPos.x = 0;
|
|
|
|
inputHandler.cursorPos.x = 0;
|
|
|
|
inputHandler.cursorPos.y = 0;
|
|
|
|
inputHandler.cursorPos.y = 0;
|
|
|
|
inputHandler.selectedTile.x = 0;
|
|
|
|
inputHandler.cursorWorldPos.x = 0;
|
|
|
|
inputHandler.selectedTile.y = 0;
|
|
|
|
inputHandler.cursorWorldPos.y = 0;
|
|
|
|
inputHandler.selectedLayer = 0;
|
|
|
|
inputHandler.selectedLayer = -1;
|
|
|
|
|
|
|
|
|
|
|
|
Camera2D camera = { 0 };
|
|
|
|
Camera2D camera = { 0 };
|
|
|
|
camera.target = (Vector2){0, 0};
|
|
|
|
camera.target = (Vector2){0, 0};
|
|
|
|
@ -39,13 +39,55 @@ int main(){
|
|
|
|
// TODO -> Isometric Map Array for multiple Layers
|
|
|
|
// TODO -> Isometric Map Array for multiple Layers
|
|
|
|
// -> Make only most upper layer selectable
|
|
|
|
// -> Make only most upper layer selectable
|
|
|
|
// take selected Tile, if that tile has one above select a tile in the upper layer
|
|
|
|
// take selected Tile, if that tile has one above select a tile in the upper layer
|
|
|
|
IsometricMap *map = IsometricMapInit(50, 80, 0);
|
|
|
|
//IsometricMap *map = IsometricMapInit(50, 80, 0);
|
|
|
|
IsometricMap *Layer1 = IsometricMapInit(20, 20, 1);
|
|
|
|
//IsometricMap *Layer1 = IsometricMapInit(20, 20, 1);
|
|
|
|
IsometricMap *Layer2 = IsometricMapInit(15, 15, 2);
|
|
|
|
//IsometricMap *Layer2 = IsometricMapInit(15, 15, 2);
|
|
|
|
IsometricMap *Layer3 = IsometricMapInit(10, 10, 3);
|
|
|
|
//IsometricMap *Layer3 = IsometricMapInit(10, 10, 3);
|
|
|
|
IsometricMap *Layer4 = IsometricMapInit(4, 4, 4);
|
|
|
|
//IsometricMap *Layer4 = IsometricMapInit(4, 4, 4);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IsometricMap **layers = (IsometricMap **) malloc(10*sizeof(IsometricMap *));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int n = 0;
|
|
|
|
|
|
|
|
int i = 0;
|
|
|
|
|
|
|
|
int j = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(n = 0; n < 10; n++){
|
|
|
|
|
|
|
|
layers[n] = IsometricMapInit(n);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(n = 0; n <= 10; n++){
|
|
|
|
|
|
|
|
for(i = 0; i < 100; i++){
|
|
|
|
|
|
|
|
for(j = 0; j < 100; j++){
|
|
|
|
|
|
|
|
switch(n){
|
|
|
|
|
|
|
|
case 0:
|
|
|
|
|
|
|
|
IsometricMapAddTile(layers[n], i, j, 0);
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
|
|
if(i > 35 && i < 50 && j > 45 && j < 60){
|
|
|
|
|
|
|
|
IsometricMapAddTile(layers[n], i, j, 0);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 2:
|
|
|
|
|
|
|
|
if(i > 40 && i < 44 && j > 50 && j < 54){
|
|
|
|
|
|
|
|
IsometricMapAddTile(layers[n], i, j, 1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
IsometricMapAddTile(Layer4, 2, 2, 1);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(n = 0; n <= 10; n++){
|
|
|
|
|
|
|
|
for(i = 0; i < 20-n*2; i++){
|
|
|
|
|
|
|
|
for(j = 0; j < 20-n*2; j++){
|
|
|
|
|
|
|
|
IsometricMapAddTile(layers[n], i, j, 0);
|
|
|
|
|
|
|
|
if(n == 9){
|
|
|
|
|
|
|
|
IsometricMapAddTile(layers[n], i, j, 1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
SetTargetFPS(60);
|
|
|
|
SetTargetFPS(60);
|
|
|
|
while(!WindowShouldClose()){
|
|
|
|
while(!WindowShouldClose()){
|
|
|
|
@ -56,11 +98,13 @@ int main(){
|
|
|
|
|
|
|
|
|
|
|
|
BeginMode2D(camera);
|
|
|
|
BeginMode2D(camera);
|
|
|
|
|
|
|
|
|
|
|
|
IsometricRendererRenderIsometricMap(map, &inputHandler);
|
|
|
|
//IsometricRendererRenderIsometricMap(map, &inputHandler);
|
|
|
|
IsometricRendererRenderIsometricMap(Layer1, &inputHandler);
|
|
|
|
//IsometricRendererRenderIsometricMap(Layer1, &inputHandler);
|
|
|
|
IsometricRendererRenderIsometricMap(Layer2, &inputHandler);
|
|
|
|
//IsometricRendererRenderIsometricMap(Layer2, &inputHandler);
|
|
|
|
IsometricRendererRenderIsometricMap(Layer3, &inputHandler);
|
|
|
|
//IsometricRendererRenderIsometricMap(Layer3, &inputHandler);
|
|
|
|
IsometricRendererRenderIsometricMap(Layer4, &inputHandler);
|
|
|
|
//IsometricRendererRenderIsometricMap(Layer4, &inputHandler);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IsometricRendererRenderIsometricMap(layers, &inputHandler);
|
|
|
|
|
|
|
|
|
|
|
|
ListDrawAllSprites(sprites);
|
|
|
|
ListDrawAllSprites(sprites);
|
|
|
|
|
|
|
|
|
|
|
|
@ -72,7 +116,7 @@ int main(){
|
|
|
|
DrawSprite(&cursorSprite);
|
|
|
|
DrawSprite(&cursorSprite);
|
|
|
|
|
|
|
|
|
|
|
|
// User Input Handling
|
|
|
|
// User Input Handling
|
|
|
|
mouseInput(&inputHandler, sprites, &texture, &camera, map);
|
|
|
|
mouseInput(&inputHandler, sprites, &texture, &camera, layers);
|
|
|
|
keyboardInput(&inputHandler, &camera);
|
|
|
|
keyboardInput(&inputHandler, &camera);
|
|
|
|
|
|
|
|
|
|
|
|
// Sprites move towards their destination
|
|
|
|
// Sprites move towards their destination
|
|
|
|
|