Er staat
“Methode moet een retourtype hebben”
wanneer ik het probeer te debuggen.
Ik weet niet hoe ik deze les moet repareren
Dit is een spelersklasse voor een c#-gecodeerd 2D-spel
public class player
{
public float moveSpeed;
public Vector2 position;
public Texture2D texture;
//default constructer
public Player(Texture2D tex, Vector2 startPos)
{
position = startPos;
texture = tex;
moveSpeed = 5.0f;
}
public void Update(GameTime gameTime)
{
//------------------------------------------
//check for keyboard input(keyboard IF statements)
}
public void Draw(SpriteBatch spriteBatch)
{
spriteBatch.Draw(texture, position, Color.White);
}
}
Antwoord 1, autoriteit 100%
Je klasse is Player
maar de constructor is Player
, omdat ze anders zijn, verwacht het dat Player
een methode is in plaats van een constructor
Verander de klassenaam in Player
en je zult goed zijn
Antwoord 2, autoriteit 43%
Je klasnaam is Player
met kleine letters. Wanneer de compiler de constructor voor klasse Player
(hoofdletters) vindt, denkt hij dat het een methode is met de naam Player
zonder een gespecificeerd retourtype.
Dus hernoem je klasse dus gewoon in hoofdletters Player
. C# is hoofdlettergevoelig, dus Player
en Player
zijn twee verschillende dingen.
Antwoord 3, autoriteit 29%
Je klasse is een speler in kleine letters, je constructor is een hoofdletter. Klasse naam & Constructor moet altijd identiek zijn en hoofdlettergevoelig zijn 🙂
Antwoord 4, autoriteit 10%
Ik denk dat het een typfout is. Je klassenaam is player is een kleine letter en je constructor heeft een hoofdletter, dus het wordt niet gezien als een cinstructor, maar als een methode die het void-sleutelwoord mist.
EDIT: Sorry voor wat se4ems een herhaald antwoord is, het lijkt erop dat veel mensen op bijna hetzelfde moment hebben geantwoord;)
Antwoord 5
Je klassenaam is “player”, maar de constructornaam is “Player” (hoofdletter van p). Dus de constructor wordt beschouwd als een methode zonder retourtype. Hernoem het als “speler” en het zal werken 🙂