Hallo alle ich habe ein kleines Problem, aber für mich ist ein großes Problem.C# Seltsam Incremental Bug
Erstens, ich habe eine Klasse NPC
public void Update()
{
if (m_iMoveX != 0 || m_iMoveY != 0)
m_iFrame = (m_iFrame + 1) % 16;
else
m_iFrame = 0;
if (m_iPause > 0)
--m_iPause;
if (m_iMoveX > 0)
{
m_iPosX += 2;
m_iMoveX -= 2;
}
if (m_iMoveX < 0)
{
m_iPosX -= 2;
m_iMoveX += 2;
}
if (m_iMoveY > 0)
{
m_iPosY += 2;
m_iMoveY -= 2;
}
if (m_iMoveY < 0)
{
m_iPosY -= 2;
m_iMoveY += 2;
}
}
Beschreibung genannt. m_iMove
sind eine gespeicherte Bewegung zuerst zu gehen m_iPos
sind echte Koordinaten für NPC.
Wenn ich einen NPC Spaziergang mache, setze ich auf m_iMove + 32
. in Update, iPos
Inkremente und iMove
Dekrement. Wenn iMove
0 sind, sind die Bewegungen abgeschlossen.
Der NPC gehen auf Raster 32x32 Pixel.
Jetzt denke ich, gut funktionieren, aber sehen diese Screen
iMove
auf 0 keine Bewegung eigentlich gleich sind. iPos
sind 96, es ist ein NPC Coords.
wenn ich Bewegung erhöhen
pl.m_iMoveY += 32; //Increments iMove for the movement
pl.m_npcDirection = NPCDirection.Dowm; //Setup the face
if (pl.m_iMoveY > 32) //if i press KeyDown and iMove have a value > of 32
pl.m_iMoveY = 32; //Force to execute 32 pixel movement
diesen Bildschirm sehen
nun den NPC Coords sind 132 für das, was?
Keine Idee für diesen Fehler. Ich inkrementiere 32 Pixel für die Bewegung.
96 + 32 = 128, aber ich sehe 132
jemand eine Idee Hat?