Update 'Analog Clock'

sigonasr2 2025-04-07 13:45:25 -05:00
parent 9067104a51
commit cd4bdb09e9

52
Analog-Clock.md Normal file

@ -0,0 +1,52 @@
Let's build an analog clock that shows three hands: A second, minute, and hour hand that dynamically update!
Most analog clocks are circles, so we will use the `DrawCircle()` function to render one. Let's start with a basic OLC project template:
```cpp
#define OLC_PGE_APPLICATION
#include "olcPixelGameEngine.h"
// Override base class with your custom functionality
class AnalogClock : public olc::PixelGameEngine
{
public:
AnalogClock()
{
// Name your application
sAppName = "Analog Clock";
}
public:
bool OnUserCreate() override
{
return true;
}
bool OnUserUpdate(float fElapsedTime) override
{
return true;
}
};
int main()
{
AnalogClock demo;
if (demo.Construct(256, 240, 2, 2))
demo.Start();
return 0;
}
```
Start by clearing the screen each frame and then drawing a circle with a white outline in the center of the screen. Position defines the center of the circle. Let's make the radius of the circle `100` pixels.
We will do this in `OnUserUpdate()`:
```cpp
bool OnUserUpdate(float fElapsedTime) override
{
Clear(olc::VERY_DARK_GREEN);
DrawCircle(GetScreenSize()/2,100);
return true;
}
```
[[***Try it out!***]](https://pgetinker.com/s/9PzMu2bRS6b)