Ich mache ein Schachspiel und ich machte ein 2D-2D-Vektor2D, um die Position der Stücke zu halten und dann, wenn Sie zuerst auf das Board klicken, dann sollte es die Position ändern, aber ich bekam 2 Probleme.Double Single Klicken in XNA
zuerst: Ich habe eine Box über den erforderlichen eine zweiten klicken: so das 2 Einzel Clicked liest zur gleichen Zeit, wenn ich auf den Stücken klicken Sie es einfach ändern Position an den Ort, wo ich es von
geklickthier ist mein Code:
public void ChangePositionAfterDrag()
{
bool CheckifFound=false,Black=false,White=false ; // if the loops hits the _mousedownposition and which kind was in the box
// save the index
/* for (int i = 100; i < 100+(80*8); i += 80)
{
for (int j = 80; j < 80 + (80 * 8); j += 80)
{*/
lastMouseState = currentMouseState;
currentMouseState = Mouse.GetState();
if (lastMouseState.LeftButton == ButtonState.Released && currentMouseState.LeftButton == ButtonState.Pressed)
{
if (CheckifFound == false)
{
for (int k = 0; k < 2; k++)
{
for (int l = 0; l < 8; l++)
{
if (currentMouseState.X > _BlackPiecesPosition[k, l].X && currentMouseState.X < _BlackPiecesPosition[k, l].X + 80 && currentMouseState.Y < _BlackPiecesPosition[k, l].Y && currentMouseState.Y > _BlackPiecesPosition[k, l].Y-80)
{
CheckifFound = true;
IndX = k;
IndY = l;
Black = true;
break;
}
if (currentMouseState.X > _WhitePiecesPosition[k, l].X && currentMouseState.X < _WhitePiecesPosition[k, l].X + 80 && currentMouseState.Y < _WhitePiecesPosition[k, l].Y && currentMouseState.Y > _WhitePiecesPosition[k, l].Y -80)
{
CheckifFound = true;
IndX = k;
IndY = l;
White = true;
break;
}
}
if (CheckifFound == true)
break;
}
}
}
LastMouseState2 = CurrentMouseState2;
CurrentMouseState2 = Mouse.GetState();
if (LastMouseState2.LeftButton == ButtonState.Pressed && CurrentMouseState2.LeftButton == ButtonState.Released)
{
NewPosition.X = LastMouseState2.X;
NewPosition.Y = LastMouseState2.Y;
}
if(Black==true)
{
_BlackPiecesPosition[IndX, IndY].X = NewPosition.X;
_BlackPiecesPosition[IndX, IndY].Y = NewPosition.Y;
}
else if (White == true)
{
_WhitePiecesPosition[IndX, IndY].X = NewPosition.X;
_WhitePiecesPosition[IndX, IndY].Y = NewPosition.Y;
}
}
Vielleicht könnten Sie etwas Bild/Screenshot hinzufügen, was zu erklären, ist Ihr Absicht, und was sind deine Probleme? Deine Beschreibung sieht für mich zu vage aus. –