これは、敵が画面の下部で前後に移動する、作業中のプロジェクトのコードです。
class enemy1
{
Texture2D texture;
public Vector2 position;
bool isAlive = false;
Random rand;
int whichSide;
public enemy1(Texture2D texture, Vector2 position)
{
this.texture = texture;
this.position = position;
}
public void Update()
{
if (isAlive)
{
if (whichSide == 1)
{
position.X += 4;
if (position.X > 1000 + texture.Width)
isAlive = false;
}
if (whichSide == 2)
{
position.X -= 4;
if (position.X < 0)
isAlive = false;
}
}
else
{
rand = new Random();
whichSide = rand.Next(1, 3);
SetInStartPosition();
}
}
private void SetInStartPosition()
{
isAlive = true;
if (whichSide == 1)
position = new Vector2(0 - texture.Width, 563 - texture.Height);
if (whichSide == 2)
position = new Vector2(1000 + texture.Width, 563 - texture.Height);
}
public void Draw(SpriteBatch spriteBatch)
{
spriteBatch.Draw(texture, position, Color.White);
}
}
今、私はいくつかの敵が行ったり来たりしたいのですが、それらは異なる位置から始まるので、画面の下部でいくつかの敵が行ったり来たりしているように見えます。最初の敵のように振る舞わないことを除いて、私は画面上に他のいくつかの敵を描くことができました。それらは、どこにも動かない画面上の写真です。だから今私が持っているのは、ヒーローが動き回っていて、画面の下部に1人の敵がいて、画面の上部に座っている他の5人の敵が何もしていないことだけです。同じ動作をするクラスから新しいスプライトをいつでも簡単に追加し、それらを格納するための10億の変数を作成しないようにするにはどうすればよいですか?