Wer kann mir bei einem kleinen Matheproblem helfen?

...komplette Frage anzeigen

1 Antwort

typedef struct
{
float FactorStart;
float FactorEnd;
float TimeMax;
int DesktopWindowSizeX;
int DesktopWindowSizeY;
} tData;

static tData Data;

/*
Muss einmal beim Programmstart aufgerufen werden
*/
void Init( void )
{
// Flächenfaktor am Anfang der Spielzeit
Data.FactorStart = 1.0f/10.0f;

// Flächenfaktor am Ende der Spielzeit
Data.FactorEnd = 1.0f/4.0f;

// maximale Spielzeit in Sekunden (=Ende der Spielzeit)
Data.TimeMax = 120;

Data.DesktopWindowSizeX = 1920;
Data.DesktopWindowSizeY = 1080;
}

/*
Gibt den Flächenfaktor in Abhängigkeit der Zeit zurück.
fTime = Spielzeit in Sekunden, 0 ... Data.TimeMax
*/
float FactorGet( float fTime )
{
float fTimeScale;

/*
Die Zeit soll im Quadrat eingehen.
*/
fTimeScale = fTime * fTime / (Data.TimeMax * Data.TimeMax);

/*
soll die Zeit linear eingehen, dann gilt
fTimeScale = fTime / Data.TimeMax;
*/

return Data.FactorStart + ( Data.FactorEnd - Data.FactorStart ) * fTimeScale;
}

/*
Testet die Grösse des aufgezogenen Mausfeldes
*/
void MouseWindowTest( float fTime )
{
int SizeX, SizeY;
float fScale = FactorGet ( fTime );

SizeX = MouseWindowSizeXGet();

if ( SizeX > (int)(Data.DesktopWindowSizeX * fScale) )
{
// Size X zu gross
}

SizeY = MouseWindowSizeXGet();

if ( SizeY > (int)(Data.DesktopWindowSizeY * fScale) )
{
// Size Y zu gross
}
}

Was möchtest Du wissen?