C# XNA - Nybörjare behöver lite hjälp

Permalänk
Medlem

C# XNA - Nybörjare behöver lite hjälp

Vore tacksam om någon snäll XNA-vetare kunde skriva koden för att lösa det här lite snabbt. Jag har en sprite som är uppritad på skärmen, hur gör jag för att en variabel ska öka i värde med något tal när spelaren klickar på sprite:en med muspekaren? Notera att variabeln ska öka efter att ett helt klick har genomförts och inte när musknappen är nedtryckt. Tack på förhand

Permalänk
Medlem

finns enormt många tutorials till xna.
I denna tex http://www.xnadevelopment.com/tutorials/thewizard/theWizard.s... så flyttar dom en sprite med piltangenterna.
Modifera dens

private void UpdateMovement(KeyboardState aCurrentKeyboardState)

till att kolla om du har klickat på spriten istället innan du flyttar den.

Edit: tolkade som att du ville få den att flytta på sig när du klickade. kanske inte var fallet, men föra att svara på din fråga så hämtar du ut ett mouseState() och kollar positionen vart du klickade för nånonstanst. Sen kan du jämföra detta med positionerna för din sprite för att kolla om du klickade på den.

Permalänk
Medlem
Skrivet av Murloc:

Vore tacksam om någon snäll XNA-vetare kunde skriva koden för att lösa det här lite snabbt. Jag har en sprite som är uppritad på skärmen, hur gör jag för att en variabel ska öka i värde med något tal när spelaren klickar på sprite:en med muspekaren? Notera att variabeln ska öka efter att ett helt klick har genomförts och inte när musknappen är nedtryckt. Tack på förhand

Koden:

//Krävs private Vector2 _speed = new Vector2(0f,0f); private Vector2 Position = new Vector2(20f, 20f); private Vector2 Size = new Vector2(30f, 30f); private float X, Y; //I Update if(Mouse.GetState().X >= objekets.Position.X || Mouse.GetState().X <= (objekets.Position.X + objeketets.Position.X) && Mouse.GetState().Y >= objektets.Position.Y || Mouse.GetState().Y <= (objektets.Position.Y + objektets.Width) && Mouse.GetState().LeftButton == ButtonState.Pressed) { X += 5; Y += 5; } objektets.Position += _speed * (float)gameTime.ElapsedGameTime.TotalSeconds; //I draw spriteBatch.Begin(); spriteBatch.Draw(ditt objekt); spriteBatch.End();

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
AzireVPN - Felkod40