Permalänk

[XNA] Touch Input

Tja!
Edit: Jag snackar alltså om XNA C# utveckling till en WP7
Jag behöver hjälp. Jag har fixat touch input, alltså att när man trycker på ett visst ställe på skärmen så händer en viss sak, alltså, om man trycker på pilen på skärmen så ska skeppet åka uppåt och om man trycker på den andra pilen så händer samma sak fast tvärtom. Men just nu, så måste man släppa fingret också för att nånting ska hända. Det är ju bra för skjutandet, men inte särskilt bra för när man ska flytta på skeppet, eftersom man måste spam-klicka på pilarna för att den ska röra sig...
KOD:

while (TouchPanel.IsGestureAvailable) { GestureSample gestureSample = TouchPanel.ReadGesture(); Vector2 touchPosition = gestureSample.Position; if (touchPosition.X >= UpButtonPosition.X && touchPosition.X < UpButtonPosition.X + UpButtonSize.X && touchPosition.Y >= UpButtonPosition.Y && touchPosition.Y < UpButtonPosition.Y + UpButtonSize.Y) { SpaceShipPos = new Vector2(SpaceShipPos.X, SpaceShipPos.Y -= 20); } if (touchPosition.X >= DownButtonPosition.X && touchPosition.X < DownButtonPosition.X + DownButtonSize.X && touchPosition.Y >= DownButtonPosition.Y && touchPosition.Y < DownButtonPosition.Y + DownButtonSize.Y) { SpaceShipPos = new Vector2(SpaceShipPos.X, SpaceShipPos.Y += 20); } if (touchPosition.X >= ShootButtonPosition.X && touchPosition.X < ShootButtonPosition.X + ShootButtonSize.X && touchPosition.Y >= ShootButtonPosition.Y && touchPosition.Y < ShootButtonPosition.Y + ShootButtonSize.Y) { PlayerShoot.Play(); Shoot(); } if (touchPosition.X >= PauseButtonPos.X && touchPosition.X < PauseButtonPos.X + PauseButtonSize.X && touchPosition.Y >= PauseButtonPos.Y && touchPosition.Y < PauseButtonPos.Y + PauseButtonSize.Y) { if (manager.IsRunning) { XLiveFormFactory.Factory.ShowForm("Pause"); } } if (SpaceShipPos.Y < 0) SpaceShipPos.Y = 0; if (SpaceShipPos.Y > graphics.PreferredBackBufferHeight) SpaceShipPos.Y = graphics.PreferredBackBufferHeight; if (SpaceShipPos.X < 0) SpaceShipPos.X = 0; if (SpaceShipPos.X > graphics.PreferredBackBufferWidth - SpaceShip.Width) SpaceShipPos.X = graphics.PreferredBackBufferWidth - SpaceShip.Width; if (SpaceShipPos.Y > graphics.PreferredBackBufferHeight - SpaceShip.Height) SpaceShipPos.Y = graphics.PreferredBackBufferHeight - SpaceShip.Height; }

Dold text