0
C#ユーザーコントロールのペイント方法で4つの図形(四角形、正方形、三角形、円)をパネルに描きたい。私はコードの下で試してみましたが、同じ場所(x、y)に図形を描画します。私は4つのランダム変数を宣言しましたが、うまくいきませんでした。私は別々の場所を別々に描く必要があります。誰も私を助けることができるのですか?ここでC#のランダムな場所に図形を描く
は私のコードです:
int recX;
int recY;
int squX;
int squY;
int circleX;
int circleY;
int triX;
int triY;
public int shapeType { get; set; }
public GameArea()
{
InitializeComponent();
food = new Food(randFood);
Random randRectangle = new Random();
recX = randRectangle.Next(1, 35) * 10;
recY = randRectangle.Next(1, 35) * 10;
Random randSquare = new Random();
squX = randSquare.Next(1, 35) * 10;
squY = randSquare.Next(1, 35) * 10;
Random randCircle = new Random();
circleX = randCircle.Next(1, 35) * 10;
circleY = randCircle.Next(1, 35) * 10;
Random randTriangle = new Random();
triX = randTriangle.Next(1, 35) * 10;
triY = randTriangle.Next(1, 35) * 10;
}
private void GameArea_Paint(object sender, PaintEventArgs e)
{
paper = e.Graphics;
if (shapeType != 0)
{
if(shapeType == Convert.ToInt32(Enums.ShapeTypes.Rectangle))
{
food.drawFood(paper, shapeType, recX,recY);
food.drawSquare(paper, squX, squY);
food.drawCircle(paper, circleX, circleY);
}
}
はそれが本当に働い#TimHinzありがとうございました。以前は、ユーザーコントロールのペイントメソッドで試しましたが、ペイントメソッドが常に起動しているため、常にランダムなシェイプを生成します。 Thnkzたくさん。 – Bhagya
これはあまりにも近すぎる可能性があります。ここにはないが一般的に。ランダムをクラスレベルに移動することはより安全です。 – TaW
#TaW問題はありますが、それを解決する方法を私に教えてください。 – Bhagya