C# Svårigheter med att skjuta åt rätt håll
Hej
Jag har ett problem som jag gärna skulle vilja ha löst om någon skulle vilja vara vänlig.
Problemet jag har är att när jag skjuter i mitt spel (plattform) så går kulan åt höger hela tiden, vilket tills nu det skulle göra.
Men nu försöker jag få spelaren att kunna skjuta åt det hållet spelaren står, åt vänster vid vänster och höger vid höger.
Jag har försökt genom att använda en boolean för att kolla vilket håll spelaren står åt. men denna boolean nås inte från Projectile
klassen som innehåller Update() metoden till skotten. I Update() metoden är endast att varje skott åker åt höger tills den
antingen kolliderar eller åker utanför skärmen.
Jag tycker att det inte borde vara några större problem egentligen att skjuta åt det hållet spelaren står, men har likväl inte löst
det ännu, så skulle vara väldigt tacksam om någon skulle kunna hjälpa till.
Kod:
Player:
// Get Input metod
if (gamePadState.IsButtonDown(Buttons.RightShoulder)
&& previousGamePadState.IsButtonUp(Buttons.RightShoulder) ||
keyboardState.IsKeyDown(Keys.Space)
&& previousState.IsKeyUp(Keys.Space))
{
// If totalAmmo is larger than 0,
if (totalAmmo > 0)
{
// Add a bullet to the players position, set the texture and damage
Level.AddBullet(Position + new Vector2(46, -39), bulletTexture, 1);
// Play gun sound
gunSound.Play();
// Decrease total ammo by 1
totalAmmo--;
}
else
{
//Otherwise play a sound of an empty clip
emptyClip.Play();
}
Level:
public void AddBullet(Vector2 position, Texture2D texture, int dmg)
{
Projectile projectile = new Projectile(texture, position, dmg);
bullets.Add(projectile);
}
public void UpdateBullets(GameTime gameTime)
{
for (int i = 0; i < bullets.Count; i++)
{
// Updates all bullets
bullets[i].Update(gameTime);
[...]
Projectile:
public void Update(GameTime gameTime)
{
position.X += projectileMoveSpeed;
// Set active to false if bullet goes out of bounds
if ((position.X + texture.Width / 2 > 850) || position.X + texture.Width / 2 < 0)
Active = false;
}
Är det någon kod som ni skulle behöva mer så säg gärna till