Visual Studio で c# pac-man ゲームに取り組んでいます。
メインのスプライト クラスと、User というサブクラスがあります。ユーザーは、計算したとおりに x 位置と y 位置を設定する必要があります。
私のタイマーは何をしますか:
pictureBox1.Focus();
paper.Clear(Color.Transparent);
user.moveUser(keyValue);//Code1 shown below
sprite.DrawSprites(paper);//Code shown below
pictureBox1.Image = bmp;
これらのメソッドの背後にあるコード:
コード 1:
public void moveUser(int mKeyValue)
{
switch (previousImage)
{
case false:
switch (mKeyValue)
{
case 39:
sprite.Image = imageArray[0];//left
sprite.XPos += stepsAmount;
break;
case 37:
sprite.Image = imageArray[1];//right
sprite.XPos -= stepsAmount;
break;
case 38:
sprite.Image = imageArray[2];//up
sprite.YPos -= stepsAmount;
break;
case 40:
sprite.Image = imageArray[3];//down
sprite.YPos += stepsAmount;
break;
}
previousImage = true;
break;
case true:
switch (mKeyValue)
{
case 39:
sprite.Image = imageArray[4];
break;
case 37:
sprite.Image = imageArray[5];
break;
case 38:
sprite.Image = imageArray[6];
break;
case 40:
sprite.Image = imageArray[7];
break;
}
previousImage = false;
break;
}
}
コード 2:
protected int xPos = 0, yPos = 0, size = 28;
public Image Image
{
get { return image; }
set { image = value; }
}
public int YPos
{
get { return yPos; }
set { yPos = value; }
}
public int XPos
{
get { return xPos; }
set { xPos = value; }
}
public void DrawSprites(Graphics drawArea)
{
drawArea.DrawImage(Image, xPos, yPos, size, size);
}
デバッグし、コンソールが moveUser メソッドを実行すると、設定されたプロパティ Xpos、YPos、および Image が変更されます。しかし、drawSprites メソッドが実行されると、これらの変数は 0 または元の割り当てられた値に戻ります。小さな黄色い友達を移動できるように、それらを永続的に変更する必要があります。
注: すべてのコードが貼り付けられているわけではなく、必要なものだけが貼り付けられています。さらにコードが必要な場合は、お問い合わせください。
注 2: ユーザーは Sprite のサブクラスです
御時間ありがとうございます