23/03/2010, 18:12
|
| | Fecha de Ingreso: marzo-2010
Mensajes: 3
Antigüedad: 14 años, 7 meses Puntos: 0 | |
Respuesta: Pelota rebotando en esquinas ok mira es el siguiente espero y me digan este codigo me lo paso un profe pero no se que hacer espero me puedan ayudar
//declaramos como globales las siguientes variables
private int CtePropBola = 12;
private int CtePropMov = 4;
private Bitmap mapaBits;
private int posXBola;
private int posYBola;
private int radioXBola;
private int radioYBola;
private int movXBola;
private int movYBola;
private int anchoMapaBitsBola;
private int altoMapaBitsBola;
private int margernXMapaBits;
private int margenYmapaBits;
private void CrearBola()
{
Graphics g =pictureBox1.CreateGraphics();
g.Clear(Color.Blue);
double min = Math.Min(pictureBox1.ClientSize.Width / g.DpiX, pictureBox1.ClientSize.Height / g.DpiY);
double radioBola = min / CtePropBola;
radioXBola = Convert.ToInt32(radioBola * g.DpiX);
radioYBola = Convert.ToInt32(radioBola * g.DpiY);
movXBola = Math.Max(2, radioXBola / CtePropMov);
movYBola = Math.Max(2, radioYBola / CtePropMov);
margernXMapaBits = movXBola;
margenYmapaBits = movYBola;
anchoMapaBitsBola = 2 * (radioXBola + margernXMapaBits);
altoMapaBitsBola = 2 * (radioYBola + margenYmapaBits);
mapaBits = new Bitmap(anchoMapaBitsBola, altoMapaBitsBola);
g = Graphics.FromImage(mapaBits);
g.Clear(pictureBox1.BackColor);
g.FillEllipse(Brushes.Fuchsia, new Rectangle(movXBola, movYBola, 2 * radioXBola, 2 * radioYBola));
g.Dispose();
posXBola = pictureBox1.ClientSize.Width/2;
posYBola = pictureBox1.ClientSize.Height/2;
}
//evento load de el formulario
private void Form1_Load(object sender, EventArgs e)
{
CrearBola();
timer1.Interval = 30;
timer1.Start();
}
private void timer1_Tick_1(object sender, EventArgs e)
{
Graphics g = pictureBox1.CreateGraphics();
g.DrawImage(mapaBits,posXBola - anchoMapaBitsBola/2,posYBola - altoMapaBitsBola/2 ,anchoMapaBitsBola,altoMapaBitsBola);
posXBola += movXBola;
posYBola += movYBola;
if (posXBola + radioXBola >= pictureBox1.ClientSize.Width || posXBola - radioXBola <= 0)
{
movXBola = movXBola *(-1);
}
if (posYBola + radioYBola >= pictureBox1.ClientSize.Height || posYBola - radioYBola <= 0)
{
movYBola = movYBola * (-1);
}
}
private void pictureBox1_Click(object sender, EventArgs e)
{
CrearBola();
}
ok pues espero me puedan ayudar porfavor gracias y hasta la proxima. |