Day 43 complete.
This commit is contained in:
+20
-18
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user