Írjunk programot, amely egy türkiz színű labdát a rajzterület közepén jeleníti meg és a rajta való kattintással induljon a labda pattogása.
A feladat megoldása:
namespace PattogoLabda
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int r = 25, lepes = 10;
int x, y, iranyx, iranyy;
private void Form1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.FillEllipse(Brushes.Cyan,
new Rectangle(x - r, y - r, 2 * r, 2 * r));
}
private void Form1_Load(object sender, EventArgs e)
{
x = ClientRectangle.Width / 2;
y = ClientRectangle.Height / 2;
}
private void Form1_MouseClick(object sender,
MouseEventArgs e)
{
iranyx = Math.Sign(e.X - x);
iranyy = Math.Sign(e.Y - y);
timer1.Interval = 20;
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
x += iranyx*lepes;
if (x < r || x > ClientRectangle.Width - r)
{
iranyx = -iranyx;
x += iranyx*lepes;
}
y += iranyy*lepes;
if (y < r || y > ClientRectangle.Height - r)
{
iranyy = -iranyy;
y += iranyy*lepes;
}
Refresh();
}
private void Kilépés_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}
A feladat futási eredményei: