0
大家好我有一個小問題,但對我來說,是一個大問題。C#奇怪增量bug
首先,我有一個名爲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;
}
}
描述類。 m_iMove
是第一個存儲的運動走路 m_iPos
是一個真正的NPC座標。
當我進行npc散步時,我設置了m_iMove + 32
。 已更新,iPos
增量和iMove
遞減。 如果iMove
爲0,則移動步驟完成。
NPC在網格上行走32x32像素。
現在我想做工精細,但看到這個screenshoot
iMove
等於0。其實也沒什麼動靜。 iPos
是96,這是一個NPC協調。
當我增加運動
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
看到這樣的畫面
現在全國COORDS是132爲了什麼?
對此錯誤沒有任何想法。 我增加了32個像素的運動。
96 + 32 = 128但我看到132
有沒有人有想法?