Ich möchte dass sich meine Spielfigur auf jedem Spielgerät(iPhone, Windows Phone,...) gleich schnell bewegt, auch wenn dir Framerate nicht auf allen Geräten dieselbe ist. Muss ich dafür die Beschleunigung/das Abbremsen meiner Spielfigur immer mit der GameTime multiplizieren?
Würde sich meine Spielfigur auf unterschiedlichen Geräten unterschiedlich schnell bewegen wenn ich die Beschleunigung nicht mit der GameTime multiplizieren würde?
1)Ohne GameTime:
|
C#-Quelltext
|
1
2
3
4
5
6
|
protected override void Update(GameTime gameTime)
{
SpielfigurPosition = new Vector2(SpielfigurPosition.X * 1.2f, SpielfigurPosition.Y);
base.Update(gameTime);
}
|
2)Mit GameTime multipliziert:
|
C#-Quelltext
|
1
2
3
4
5
6
7
|
protected override void Update(GameTime gameTime)
{
var delta = (float)gameTime.ElapsedGameTime.TotalSeconds;
SpielfigurPosition = new Vector2(SpielfigurPosition.X + (delta * 1.2f), SpielfigurPosition.Y);
base.Update(gameTime);
}
|
Würde sich die Spielfigur auf unterschiedlichen Geräten unterschiedlich schnell bewegen wenn ich den Code-Block 1) verwenden würde?
Sollte man bei Geschwindigkeiten(z.B. der Spielfigur) immer den Code-Block 2) benutzen damit sich immer(auch bei unterschiedlicher Framerate) alles gleich schnell bewegt?