Hello everyone! I have completed the day/night system in a test room! It now must be put into the game, but that's as easy as dropping the object in the game room. It needs a bit of tweaking and I'm going to replace the sun and moon with proper sprites eventually. Here's what it looks like.

So, how does it work? There are a ton of different elements in within the day/night system that you probably would not have thought of.

Time

The day/night system correlates with the time. Time is a value between 0-1440. There's one minute to an hour, making each day 24 hours. 1440 is the amount of seconds in a day. I will be referring to the numeric value of time (0-1440) as "raw time."

A proportion calculates the angle of the sun based on the raw time. The sun is then drawn on the ellipse at that angle.

Time

The day/night system correlates with the time. Time is a value between 0-1440. There's one minute to an hour, making each day 24 hours. 1440 is the amount of seconds in a day. I will be referring to the numeric value of time (0-1440) as "raw time."

A proportion calculates the angle of the sun based on the raw time. The sun is then drawn on the ellipse at that angle.

In this example, the proportion calculates that the sun should be at 90 degrees on the ellipse at 12:59 PM (780 raw time). It gets the position of the sun from a series of scripts.

In GameMaker, the functions lengthdir_x and lengthdir_y exist. These functions are used to find a specific point at a specific length and angle. This may sound complicated, but think about it as finding a point on a circle's circumference given the radius and the angle. With the day/night system, there's one problem... it's not a circle - it's an ellipse. An ellipse's radius is always changing. So, I needed an equation to get the ellipse's radius at any given time. I found a formula that did just this. |

The fading backgrounds was done very simply with a phase system. Phases are certain spans of time with specific backgrounds. There is a phase for every fading animation as well as static backgrounds. To get the fading effect, two images are stacked: the image to fade from and the image to fade to. The image to fade to starts with zero opacity and then increases to maximum opacity as time goes on. This system uses NO alarms and is very dynamic.

Until next time!

Until next time!