Accelerazione usando il tempo di gioco
Domanda
Mi stavo chiedendo se c'è un metodo gametime trascorso che potrei aggiungere accelerazione a un'entità.Voglio usare qualcosa come il codice gametime trascorso di XNA.La quantità di secondi che passa attraverso ogni fotogramma è tutto ciò di cui ho bisogno per ottenere l'accelerazione funzionante.
Soluzione
Se si utilizza GameWindow
, è possibile utilizzare FrameEventArgs
dagli eventi UpdateFrame
e RenderFrame
.
class MyGame : GameWindow
{
double seconds;
Vector3 position;
protected override void OnUpdateFrame(object sender, FrameEventArgs e)
{
// e.Time is the elapsed time from the previous UpdateFrame event
// in seconds
seconds += e.Time;
position = new Vector3(
(float)Math.Cos(seconds),
(float)Math.Sin(seconds),
1.0f);
}
}
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow