summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main.c35
1 files changed, 30 insertions, 5 deletions
diff --git a/main.c b/main.c
index 646d79b..da37ce4 100644
--- a/main.c
+++ b/main.c
@@ -54,15 +54,15 @@ int main() {
SDL_Texture *foreground = createTiledTexture(context, "foreground.bmp");
SDL_SetTextureBlendMode(foreground, SDL_BLENDMODE_MOD);
- SDL_Surface *mask_surface = SDL_CreateRGBSurfaceWithFormat(0,
- WINDOW_W, WINDOW_H, 32, SDL_PIXELFORMAT_RGBA8888);
-
SDL_Texture *terrain = SDL_CreateTexture(context,
SDL_PIXELFORMAT_RGBA8888,
SDL_TEXTUREACCESS_TARGET,
WINDOW_W, WINDOW_H);
SDL_SetTextureBlendMode(terrain, SDL_BLENDMODE_BLEND);
+ // Terrain generation
+ SDL_Surface *mask_surface = SDL_CreateRGBSurfaceWithFormat(0,
+ WINDOW_W, WINDOW_H, 32, SDL_PIXELFORMAT_RGBA8888);
SDL_LockSurface(mask_surface);
for (int i = 0; i < mask_surface->w * mask_surface->h; i++) {
((Uint32 *)mask_surface->pixels)[i] = 0x00000000;
@@ -72,9 +72,18 @@ int main() {
}
SDL_UnlockSurface(mask_surface);
SDL_Texture *mask_texture = SDL_CreateTextureFromSurface(context, mask_surface);
-
renderMaskedTexture(context, terrain, mask_texture, foreground);
+ // Player variables
+ float player_x = 100;
+ float player_y = 100;
+ float player_vy = 0;
+ float player_ay = 1;
+
+ // Timer variables
+ float old_t = 0.0;
+
+ // Event handling
int exit = 0;
while (!exit) {
SDL_Event event = {0};
@@ -114,14 +123,30 @@ int main() {
renderMaskedTexture(context, terrain, mask_texture, foreground);
}
+
+ // Main loop
SDL_SetRenderDrawColor(context, 40, 40, 40, 255);
SDL_RenderClear(context);
SDL_RenderCopy(context, background, 0, 0);
SDL_RenderCopy(context, terrain, 0, 0);
+ // Time delta calculation
+ double new_t = (double) SDL_GetTicks64() / 1000.0;
+ double dt = new_t - old_t;
+ old_t = new_t;
+
+ // Player logic
+ player_y += player_vy * dt;
+ player_vy += player_ay * dt;
+
+ // Draw player
+ SDL_SetRenderDrawColor(context, 255, 0, 0, 255);
+ SDL_Rect player_rect = {player_x - 5, WINDOW_H - player_y - 10, 10, 10 };
+ SDL_RenderFillRect(context, &player_rect);
+
SDL_RenderPresent(context);
- SDL_Delay(10);
+ SDL_Delay(1);
}
SDL_DestroyRenderer(context);