Tjena, håller på med att göra ett shoot em up spel i C#, har kommit en bra bit redan men får felkod när jag ska kompilera programmet nu.
Programmet klagar på följande: 'SpaceShooter.Player' does not contain a constructor that takes 5 arguments
och...
No overload for method 'Update' takes 1 arguments.
En del av koden:
Bitarna programmet klagar på är:
och...
Är relativt ny på programmering och har suttit ett par timmar med att försöka lista ut detta men jag blir inte klokare.
Tacksam för svar.
Mvh
Programmet klagar på följande: 'SpaceShooter.Player' does not contain a constructor that takes 5 arguments
och...
No overload for method 'Update' takes 1 arguments.
En del av koden:
Kod:
using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; namespace SpaceShooter { public class Game1 : Microsoft.Xna.Framework.Game { GraphicsDeviceManager graphics; // Används för grafik SpriteBatch spriteBatch; // Används för att rita bilder Player player; List<Enemy> enemies; List<GoldCoin> goldCoins; Texture2D goldCoinSprite; PrintText printText; public Game1() { graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; } // Initialize(), anropas då spelet startar // Här ligger all kod för att initiera objekt och skapa dem protected override void Initialize() { goldCoins = new List<GoldCoin>(); base.Initialize(); } // LoadContent(), anropas då spelet startar // Här laddas alla objekt/filer in protected override void LoadContent() { spriteBatch = new SpriteBatch(GraphicsDevice); player = new Player(Content.Load<Texture2D>("images/player/ship"), 380, 400, 2.5f, 4.5f); enemies = new List<Enemy>(); Random random = new Random(); Texture2D tmpSprite = Content.Load<Texture2D>("images/enemies/spikeenemy"); for (int i = 0; i < 5; i++) { int rndX = random.Next(0, Window.ClientBounds.Width - tmpSprite.Width); int rndY = random.Next(0, Window.ClientBounds.Height / 2); Spikeenemy temp = new Spikeenemy(tmpSprite, rndX, rndY); enemies.Add(temp); } tmpSprite = Content.Load<Texture2D>("images/enemies/tripod"); for (int i = 0; i < 5; i++) { int rndX = random.Next(0, Window.ClientBounds.Width - tmpSprite.Width); int rndY = random.Next(0, Window.ClientBounds.Height / 2); Tripod temp = new Tripod(tmpSprite, rndX, rndY); enemies.Add(temp); } printText = new PrintText(Content.Load<SpriteFont>("myFont")); goldCoinSprite = Content.Load<Texture2D>("images/powerups/coin"); } // UnloadContent(), anropas då spelet avslutas // Kan ladda ur de objekt som skulle kunna behöva det för att rensa minne protected override void UnloadContent() { } // Update(), läser in data från användaren, flyttar på olika objekt osv // gameTime, används för att hålla koll på spelets uppdateringsfrekves protected override void Update(GameTime gameTime) { Random random = new Random(); int newCoin = random.Next(1, 200); if (newCoin == 1) { int rndX = random.Next(0, Window.ClientBounds.Width - goldCoinSprite.Width); int rndY = random.Next(0, Window.ClientBounds.Height - goldCoinSprite.Height); goldCoins.Add(new GoldCoin(goldCoinSprite, rndX, rndY, gameTime)); } foreach (GoldCoin gc in goldCoins.ToList()) { if(gc.IsAlive) { gc.Update(gameTime); if (gc.CheckCollision(player)) { goldCoins.Remove(gc); player.Points++; } } else goldCoins.Remove(gc); } // Stänger av spelet om man trycker på back-knappen if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit(); player.Update(Window); foreach (Enemy e in enemies.ToList()) { if (e.IsAlive) // Kontrollera om fienden lever { // Kontrollera kollision med spelaren: if (e.CheckCollision(player)) this.Exit(); e.Update(Window); // Flytta på dem } else // Ta bort fienden för den är död enemies.Remove(e); base.Update(gameTime); } } // Draw(), Här ritas själva spelet ut. // gameTime, används för att hålla kolla på spelets uppdateringsfrekvens protected override void Draw(GameTime gameTime) { // Rensa skärmen GraphicsDevice.Clear(Color.CornflowerBlue); // Använder spriteBatch för att rita ut saker på skärmen spriteBatch.Begin(); foreach (GoldCoin gc in goldCoins) gc.Draw(spriteBatch); printText.Print("Points:" + player.Points, spriteBatch, 0, 0); player.Draw(spriteBatch); foreach (Enemy e in enemies) e.Draw(spriteBatch); spriteBatch.End(); base.Draw(gameTime); } } }
Bitarna programmet klagar på är:
Kod:
player = new Player(Content.Load<Texture2D>("images/player/ship"), 380, 400, 2.5f, 4.5f);
och...
Kod:
player.Update(Window);
Är relativt ny på programmering och har suttit ett par timmar med att försöka lista ut detta men jag blir inte klokare.
Tacksam för svar.
Mvh