長方形で楕円のバウンスを作成しようとしています。タイマーを使用して楕円を x 方向と y 方向の両方に移動しています。私の考えは、if ステートメントを作成して、楕円の座標が四角形の座標と一致するかどうかを確認することでした。
これまでに書いたコードは次のとおりです。
public partial class Form1 : Form
{
Class1 square = new Class1();
public int before;
public int after;
public int c;
public Form1()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs e)
{
after = 590 - (b * b) / 100;
before = 100 + (a * a) / 100;
c = a + b;
Graphics g = e.Graphics;
SolidBrush Brush = new SolidBrush(Color.White);
g.FillEllipse(Brush, a, before, 10, 10);
square.Draw(g);
if (k >= square.y && a >= square.x && a <= square.x + 40)
{
a=c;
before= after;
timer1.Start();
timer2.Stop();
}
else if (k >= square.y + 10)
{
timer2.Stop();
MessageBox.Show("You lost");
}
}
protected override void OnMouseMove(MouseEventArgs e)
{
base.OnMouseMove(e);
square.x = e.X;
Cursor.Hide();
}
public int a = 0;
public int b = 0;
public void timer2_Tick(object sender, EventArgs e)
{
a += 1;
Invalidate();
}
private void timer1_Tick(object sender, EventArgs e)
{
b += 1;
Invalidate();
}
}
私は問題があることを知っています。そして、いくつか質問があります:
- 楕円を「バウンス」させる簡単な方法はありますか?
- 問題は、楕円がたどる曲線の計算だけにあるのでしょうか?
質問が多少未定義または抽象的である可能性があることは承知していますが、助けがあれば幸いです。いくつかの点でより明確にしたい場合は、お知らせください。ありがとう