Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/03/2010, 18:12
maryone
 
Fecha de Ingreso: marzo-2010
Mensajes: 3
Antigüedad: 14 años, 1 mes
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.