Day 43 complete.

This commit is contained in:
igor
2026-04-30 21:04:36 -07:00
parent 50fb128698
commit 5f663308d2
4 changed files with 35 additions and 23 deletions
+20 -18
View File
@@ -411,37 +411,40 @@ void UpdateAndRender(thread_context *Thread, game_memory *Memory, game_input *In
game_controller_input *Controller = GetController(Input, ControllerIndex);
if(Controller->IsAnalog) {
} else {
v2 dPlayer;
memset(&dPlayer, 0, sizeof(dPlayer));
v2 ddPlayer; // accerlation
memset(&ddPlayer, 0, sizeof(ddPlayer));
if(Controller->MoveUp.EndedDown) {
dPlayer.Y = 1.0f;
ddPlayer.Y = 1.0f;
GameState->FacingDirection = 1;
}
if(Controller->MoveDown.EndedDown) {
dPlayer.Y = -1.0f;
ddPlayer.Y = -1.0f;
GameState->FacingDirection = 3;
}
if(Controller->MoveLeft.EndedDown) {
dPlayer.X = -1.0f;
ddPlayer.X = -1.0f;
GameState->FacingDirection = 2;
}
if(Controller->MoveRight.EndedDown) {
dPlayer.X = 1.0f;
ddPlayer.X = 1.0f;
GameState->FacingDirection = 0;
}
F32 PlayerSpeed = 2.0f;
if(Controller->ActionUp.EndedDown)
PlayerSpeed = 10.0f;
dPlayer = vector_multiply(PlayerSpeed, dPlayer);
if((ddPlayer.X != 0.0f) && (ddPlayer.Y != 0.0f))
ddPlayer = V2Multiply(0.7071067811865475244f, ddPlayer);
if((dPlayer.X != 0.0f) && (dPlayer.Y != 0.0f))
dPlayer = vector_multiply(0.7071067811865475244f, dPlayer);
F32 PlayerSpeed = 10.0f;
if(Controller->ActionUp.EndedDown)
PlayerSpeed = 20.0f;
ddPlayer = V2Multiply(PlayerSpeed, ddPlayer);
ddPlayer = V2Add(ddPlayer, V2Unary(V2Multiply(1.5f, GameState->dPlayerP)));
tile_map_position NewPlayerP;
NewPlayerP = GameState->PlayerP;
NewPlayerP.Offset = vector_add(NewPlayerP.Offset, vector_multiply(Input->dtForFrame, dPlayer));
NewPlayerP.Offset = V2Add(V2Add(V2Multiply(0.5f, V2Multiply(Square(Input->dtForFrame), ddPlayer)), V2Multiply(Input->dtForFrame, GameState->dPlayerP)), NewPlayerP.Offset);
GameState->dPlayerP = V2Add(V2Multiply(Input->dtForFrame, ddPlayer), GameState->dPlayerP);
NewPlayerP = RecannonicalizePosition(TileMap, NewPlayerP);
tile_map_position PlayerLeft;
@@ -516,8 +519,8 @@ void UpdateAndRender(thread_context *Thread, game_memory *Memory, game_input *In
v2 TileSide = { 0.5f*(F32)TileSideInPixels, 0.5f*(F32)TileSideInPixels };
v2 Center = { ScreenCenterX - MetersToPixels*GameState->CameraP.Offset.X + (F32)RelColumn*(F32)TileSideInPixels,
ScreenCenterY + MetersToPixels*GameState->CameraP.Offset.Y - (F32)RelRow*(F32)TileSideInPixels };
v2 Min = vector_subtract(Center, TileSide);
v2 Max = vector_add(Center, TileSide);
v2 Min = V2Subtract(Center, TileSide);
v2 Max = V2Add(Center, TileSide);
DrawRectangle(Buffer, Min, Max, Gray, Gray, Gray);
}
}
@@ -533,7 +536,7 @@ void UpdateAndRender(thread_context *Thread, game_memory *Memory, game_input *In
v2 PlayerLeftTop = { PlayerGroundPointX - 0.5f * MetersToPixels*PlayerWidth,
PlayerGroundPointY - MetersToPixels*PlayerHeight };
v2 PlayerWidthHeight = { PlayerWidth, PlayerHeight };
DrawRectangle(Buffer, PlayerLeftTop, vector_add(PlayerLeftTop, vector_multiply(MetersToPixels, PlayerWidthHeight)), PlayerR, PlayerG, PlayerB);
DrawRectangle(Buffer, PlayerLeftTop, V2Add(PlayerLeftTop, V2Multiply(MetersToPixels, PlayerWidthHeight)), PlayerR, PlayerG, PlayerB);
hero_bitmaps *Bitmap = &GameState->HeroBitmaps[GameState->FacingDirection];
DrawBitmap(Buffer, &Bitmap->Torso, PlayerGroundPointX, PlayerGroundPointY, Bitmap->AlignX, Bitmap->AlignY);
@@ -544,8 +547,7 @@ void UpdateAndRender(thread_context *Thread, game_memory *Memory, game_input *In
}
/*
static void RenderWeirdGradient(game_offscreen_buffer *Buffer, S32 XOffset,
S32 YOffset)
static void RenderWeirdGradient(game_offscreen_buffer *Buffer, S32 XOffset, S32 YOffset)
{
S32 Width, Height, Y;
U8 *Row;