私は C# プログラミングが初めてで、グラフィックを使ってコネクト 4ゲームを作成しています。円のあるグリッドがあります。私がする必要があるのは、ユーザーが特定の列をクリックしたときにチップが下に移動するのを確認することです。タイマーか何かを使う必要がありますか?または、ループを実行して、毎回小さい yCoordinate を指定して円を下に移動しますか?
また、この円がグリッドに重ならないようにする方法はありますか? のように、グリッドの後ろに移動しているように見せることはできますか?
これは私がこれまでに行ったことです...
private int columnPosition = 0;
private int xCoordinate;
private int yCoordinate;
public Form1()
{
InitializeComponent();
}
private void panel1_Paint(object sender, PaintEventArgs e)
{
Graphics g = grid.CreateGraphics();
Pen pen = new Pen(Color.White, 1);
Pen pen2 = new Pen(Color.Black, 4);
for (int i = 0; i < 7; i++)
{
for (int j = 0; j < 6; j++)
{
g.DrawEllipse(pen2, new System.Drawing.Rectangle((i * 70) + 20, (j * 60) + 10, 50, 50));
g.FillEllipse(pen.Brush, new System.Drawing.Rectangle((i *70) + 20, (j * 60) + 10, 50, 50));
}
}
}
private void panel2_Paint(object sender, PaintEventArgs e)
{
Graphics g = panel2.CreateGraphics();
Pen pen = new Pen(Color.Red, 5);
Pen pen2 = new Pen(Color.Black, 3);
if (columnPosition != -1)
{
g.DrawEllipse(pen2, new System.Drawing.Rectangle(columnPosition * 35 - 15, 0, 50, 50));
g.FillEllipse(pen.Brush, new System.Drawing.Rectangle(columnPosition * 35 - 15, 0, 50, 50));
}
}
private void panel1_MouseMove(object sender, MouseEventArgs e)
{
columnPosition = e.X / 35;
Console.WriteLine(e.X);
panel2.Refresh();
}
private void panel1_MouseLeave(object sender, EventArgs e)
{
columnPosition = -1;
panel2.Refresh();
}
private void panel1_MouseClick(object sender, EventArgs e)
{
///// THIS IS WHERE I AM STUCK
}
}
申し訳ありませんが、グリッドの画像をアップロードしたかったのですが、私は新しいユーザーなのでできません -.- !!
助けてくれてありがとう:)