add game structure
This commit is contained in:
parent
563504af1b
commit
73ca24c36b
3 changed files with 89 additions and 20 deletions
38
src/data.h
38
src/data.h
|
@ -1,28 +1,44 @@
|
|||
<<<<<<< HEAD
|
||||
#pragma once
|
||||
=======
|
||||
>>>>>>> 8e3d2ca (add game structure)
|
||||
#include <stdbool.h>
|
||||
|
||||
#define MAX_UNITS 100
|
||||
#define MAX_BUILDINGS 50
|
||||
#define MAX_PLAYERS 2
|
||||
<<<<<<< HEAD
|
||||
#define MAX_MISSIONS 10
|
||||
#define MAX_RESOURCES 50
|
||||
#define MAP_SIZE 100
|
||||
|
||||
typedef struct Player {
|
||||
=======
|
||||
|
||||
typedef struct {
|
||||
>>>>>>> 8e3d2ca (add game structure)
|
||||
int playerID;
|
||||
char playerName[50];
|
||||
int gold;
|
||||
int xp;
|
||||
} Player;
|
||||
|
||||
<<<<<<< HEAD
|
||||
typedef struct Unit {
|
||||
=======
|
||||
typedef struct {
|
||||
>>>>>>> 8e3d2ca (add game structure)
|
||||
int unitID;
|
||||
int playerID;
|
||||
int x, y; // Position
|
||||
int health;
|
||||
} Unit;
|
||||
|
||||
<<<<<<< HEAD
|
||||
typedef struct Building {
|
||||
=======
|
||||
typedef struct {
|
||||
>>>>>>> 8e3d2ca (add game structure)
|
||||
int buildingID;
|
||||
int playerID;
|
||||
int x, y; // Position
|
||||
|
@ -30,17 +46,29 @@ typedef struct Building {
|
|||
int health;
|
||||
} Building;
|
||||
|
||||
<<<<<<< HEAD
|
||||
typedef struct Map {
|
||||
=======
|
||||
typedef struct {
|
||||
>>>>>>> 8e3d2ca (add game structure)
|
||||
int mapID;
|
||||
char mapName[50];
|
||||
int mapWidth;
|
||||
int mapHeight;
|
||||
<<<<<<< HEAD
|
||||
int tileData[MAP_SIZE][MAP_SIZE]; // 2D array for map tile indices
|
||||
=======
|
||||
int tileData[MAX_MAP_WIDTH][MAX_MAP_HEIGHT];
|
||||
>>>>>>> 8e3d2ca (add game structure)
|
||||
int playerStartingPositions[MAX_PLAYERS][2]; // [x, y] coordinates for each player
|
||||
int resourceLocations[MAX_RESOURCES][2]; // [x, y] coordinates for each resource
|
||||
} Map;
|
||||
|
||||
<<<<<<< HEAD
|
||||
typedef struct Mission {
|
||||
=======
|
||||
typedef struct {
|
||||
>>>>>>> 8e3d2ca (add game structure)
|
||||
int missionID;
|
||||
char missionName[50];
|
||||
char missionDescription[100];
|
||||
|
@ -55,12 +83,17 @@ typedef struct Mission {
|
|||
bool hasSpecialConditions; // Flag indicating whether the mission has special conditions
|
||||
} Mission;
|
||||
|
||||
<<<<<<< HEAD
|
||||
typedef struct GameData {
|
||||
=======
|
||||
typedef struct {
|
||||
>>>>>>> 8e3d2ca (add game structure)
|
||||
Player players[MAX_PLAYERS];
|
||||
Unit units[MAX_UNITS];
|
||||
Building buildings[MAX_BUILDINGS];
|
||||
Map currentMap;
|
||||
Mission missions[MAX_MISSIONS];
|
||||
<<<<<<< HEAD
|
||||
int mapx, mapy;
|
||||
} GameData;
|
||||
|
||||
|
@ -89,4 +122,7 @@ typedef struct {
|
|||
GameData data;
|
||||
BuildingData buildings[100];
|
||||
UnitData units[100];
|
||||
} Game;
|
||||
} Game;
|
||||
=======
|
||||
} GameData;
|
||||
>>>>>>> 8e3d2ca (add game structure)
|
||||
|
|
21
src/draw.h
21
src/draw.h
|
@ -1,3 +1,4 @@
|
|||
<<<<<<< HEAD
|
||||
#ifndef DRAW_H
|
||||
#define DRAW_H
|
||||
|
||||
|
@ -11,3 +12,23 @@
|
|||
void drawGameData(SDL_Renderer *renderer, const GameData *gameData, SDL_Texture *tileTexture, SDL_Texture *unitTexture, SDL_Texture *buildingTexture);
|
||||
|
||||
#endif /* DRAW_H */
|
||||
=======
|
||||
#define MAP_SIZE 96
|
||||
|
||||
#define TILE_HEIGHT 30
|
||||
#define TILE_WIDTH 60
|
||||
|
||||
#define MAP_RENDER_SIZE 24
|
||||
|
||||
#define MAP_RENDER_OFFSET_X ((SCREEN_WIDTH - (TILE_WIDTH * MAP_RENDER_SIZE)) / 2)
|
||||
#define MAP_RENDER_OFFSET_Y 425
|
||||
|
||||
typedef struct {
|
||||
int x;
|
||||
int y;
|
||||
int sx;
|
||||
int sy;
|
||||
AtlasImage *texture;
|
||||
} ISOObject;
|
||||
|
||||
>>>>>>> 8e3d2ca (add game structure)
|
||||
|
|
50
src/main.c
50
src/main.c
|
@ -16,29 +16,41 @@ int main(int argc, char* argv[]) {
|
|||
SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
|
||||
|
||||
// Main loop flag
|
||||
bool quit = false;
|
||||
bool quit = false;
|
||||
SDL_Event event;
|
||||
|
||||
// Event handler
|
||||
SDL_Event e;
|
||||
|
||||
// Main loop
|
||||
while (!quit) {
|
||||
// Handle events on queue
|
||||
while (SDL_PollEvent(&e) != 0) {
|
||||
// User requests quit
|
||||
if (e.type == SDL_QUIT) {
|
||||
quit = true;
|
||||
}
|
||||
while (!quit) {
|
||||
// Event handling
|
||||
while (SDL_PollEvent(&event) != 0) {
|
||||
if (event.type == SDL_QUIT) {
|
||||
quit = true;
|
||||
}
|
||||
|
||||
// Clear screen
|
||||
SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0xFF);
|
||||
SDL_RenderClear(renderer);
|
||||
|
||||
// Update screen
|
||||
SDL_RenderPresent(renderer);
|
||||
// Handle other events such as key presses, mouse input, etc.
|
||||
}
|
||||
|
||||
// Update game state
|
||||
updateGameState(); // You need to define this function to update the game state
|
||||
|
||||
// Clear the screen
|
||||
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
|
||||
SDL_RenderClear(renderer);
|
||||
|
||||
// Render game objects
|
||||
renderGame(renderer); // You need to define this function to render the game
|
||||
|
||||
// Update the screen
|
||||
SDL_RenderPresent(renderer);
|
||||
|
||||
// Cap the frame rate
|
||||
SDL_Delay(16); // Cap to approximately 60 frames per second
|
||||
}
|
||||
|
||||
// Clean up and exit
|
||||
SDL_DestroyRenderer(renderer);
|
||||
SDL_DestroyWindow(window);
|
||||
SDL_Quit();
|
||||
|
||||
|
||||
// Destroy window and renderer
|
||||
SDL_DestroyRenderer(renderer);
|
||||
SDL_DestroyWindow(window);
|
||||
|
|
Loading…
Reference in a new issue