8 svar
112 visningar
Ananas 30
Postad: 23 nov 2022 16:55 Redigerad: 23 nov 2022 16:59

MonoGame - Få bilden att röra på sig

Skapa ett nytt program som innehåller två bilder. Den ena bilden ska röra sig fram och tillbaka någonstans i den vänstra halvan av spelfönstret, den andra bilden ska röra sig fram och tillbaka någonstans i den högra halvan.

Så här ser min kod ut:

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;

namespace Uppgift_8._3
{
	public class Game1 : Game
	{
		private GraphicsDeviceManager graphics;
		private SpriteBatch spriteBatch;
		Texture2D parrotBild, snakeBild;
		Vector2 parrotPosition = new Vector2(50, 100);
		Vector2 parrotHastighet = new Vector2(2, 0);
		Vector2 snakePosition = new Vector2(500, 100);
		Vector2 snakeHastighet = new Vector2(2, 0);
		public Game1()
		{
			graphics = new GraphicsDeviceManager(this);
			Content.RootDirectory = "Content";
			IsMouseVisible = true;
		}

		protected override void Initialize()
		{
			// TODO: Add your initialization logic here
			base.Initialize();
		}

		protected override void LoadContent()
		{
			spriteBatch = new SpriteBatch(GraphicsDevice);
			parrotBild = Content.Load<Texture2D>("parrot");
			snakeBild = Content.Load<Texture2D>("snake");
		}

		protected override void Update(GameTime gameTime)
		{
			if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
				Exit();
			parrotPosition += parrotHastighet;
			if (parrotPosition.X > 200 || parrotPosition.X < 50)
			{
				parrotHastighet *= -1;
			}

			snakePosition += snakePosition;
			if (snakePosition.X > 500 || snakePosition.X < 400)
			{
				snakePosition *= -1;
			}

			base.Update(gameTime);
		}

		protected override void Draw(GameTime gameTime)
		{
			GraphicsDevice.Clear(Color.CornflowerBlue);
			spriteBatch.Begin();
			spriteBatch.Draw(parrotBild, parrotPosition, Color.White);
			spriteBatch.Draw(snakeBild, snakePosition, Color.White);
			spriteBatch.End();
			base.Draw(gameTime);
		}
	}
}

Jag får papegojan att ladda in i programmet men inte ormen. Vad beror det på?


Kod infogad med {:} samt indenterad  så att det faktiskt går att läsa den. /Dracaena

Laguna Online 30472
Postad: 23 nov 2022 17:19

Den ena filen kanske inte finns. Hur blir det om du byter namnen i programmet så "parrot" blir "snake" och tvärtom?

Ananas 30
Postad: 23 nov 2022 19:30

Det händer ingenting, nu blev det endast ormen.

Laguna Online 30472
Postad: 23 nov 2022 19:52

Hur brett är fönstret? Är det 500?

Ananas 30
Postad: 23 nov 2022 20:26

Så här ser det ut:

Laguna Online 30472
Postad: 23 nov 2022 20:32

Prova att lägga den andra bilden på 300,100 i stället för 500,100.

Ananas 30
Postad: 23 nov 2022 20:46

Jag provade men det gick inte.

Laguna Online 30472
Postad: 23 nov 2022 20:51

Då har jag inga fler idéer.

Ananas 30
Postad: 23 nov 2022 20:53

Tack ändå att du vägledde mig och försökte lösa problemet.

Svara
Close