Comunidad Underground Hispana  

Retroceder   Comunidad Underground Hispana > Programacion > Programación > Java


Respuesta Crear Nuevo Tema
 
Compartir en twitter LinkBack Herramientas Desplegado
Antiguo 30-nov-2011, 10:48   #1
Recien llegado
 
Fecha de Ingreso: noviembre-2011
Amigos 0
Mensajes: 1
Gracias: 0
Agradecido 0 veces en 0 mensajes.
Predeterminado Ayuda con un programa en java de colision de objetos

Hola miembros del foro mi programa se trata de simular bolas de billar que colisionen entre si y con los limites de la pantalla, ya logre hacer que choquen con la pantalla ahora solo me falta hacer que choquen entre si y al momento de hacerlo cambien el sentido en el que se mueven, les agradecer mucho su ayuda. En seguida les pongo el codigo que llevo hasta el momento gracias! XD



//ESTA ES LA CLASE DE LAS OPERACIONES
Cita:
package Unidad1;
import java.util.*;
import java.awt.*;

public class Billar
{
int x,y,maxx,maxy;
int radio;
Color colorb;
int sent,vel;
double d;
public Billar(int limx,int limy,int r,int v)
{
maxx=limx;
maxy=limy;
radio=r;
vel=v;
Random rnd=new Random();
x=rnd.nextInt(limx-radio)+radio;
y=rnd.nextInt(limy-radio)+radio;
colorb=new Color(rnd.nextInt(255),rnd.nextInt(255),rnd.nextIn t(255));
sent=rnd.nextInt(8);

}

public void dibujar(Graphics g)
{
g.setColor(colorb);
g.fillOval(x, y, radio, radio);
}


public void repos()
{
Random rnd=new Random();
switch(sent)
{
case 0://arriba
if(y-vel>radio)
y-=vel;
else
sent=3+rnd.nextInt(3);
break;
case 1://arriba y a la derecha
if(y-vel>radio&&x+vel<maxx-radio)
{
y-=vel;
x+=vel;
}
else
sent=4+rnd.nextInt(3);
break;
case 2://derecha
if(x+vel<maxx-radio)
x+=vel;
else
sent=5+rnd.nextInt(3);
break;
case 3://abajo y derecha
if(x+vel<maxx-radio&&y+vel<maxy-radio)
{
x+=vel;
y+=vel;
}
else
{
sent=6+rnd.nextInt(3);
if(sent==8)
sent=0;
}
break;
case 4://abajo
if(y+vel<maxy-radio)
y+=vel;
else
{
sent=rnd.nextInt(3);
if(sent==2)
sent=7;
}
break;
case 5://izq y abajo
if(x-vel>radio&&y+vel<maxy-radio)
{
x-=vel;
y+=vel;
}
else
sent=rnd.nextInt(3);
break;
case 6://izq
if(x-vel>radio)
x-=vel;
else
sent=1+rnd.nextInt(3);
break;
case 7://arriba y izq
if(x-vel>radio&&y-vel>radio)
{
x-=vel;
y-=vel;
}
else
sent=2+rnd.nextInt(3);
break;
}
}

}
Cita:
//ESTA ES LA CLASE PRINCIPAL

package Unidad1;
import java.awt.*;

import javax.swing.*;
public class PBillar extends JPanel
{
JFrame vent;
Container cont;
Billar b[];
public PBillar(String tit,int cant)
{
//Argumentos del JPanel
setSize(800,600);
setBackground(new Color(006400));

vent=new JFrame(tit);
cont=vent.getContentPane();
cont.setLayout(new BorderLayout());
//agregar algo al contenedor
cont.add(this,BorderLayout.CENTER);

//argumentos de la ventana
vent.setSize(800,600);
vent.setResizable(false);
vent.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
//cantidad de bolitas
b=new Billar[cant];
for(int i=0;i<b.length;i++)
{
b[i]=new Billar(800-60,600-60,100,5);
}


//visualizar las ventanas
vent.setVisible(true);


}


public void paintComponent(Graphics g)
{
super.paintComponent(g);
for(int i=0;i<b.length;i++)
b[i].dibujar(g);
}

public void mover()
{
while(vent.isVisible())
{
for(int i=0;i<b.length;i++)
{
b[i].repos();
}
try
{
Thread.sleep(40);
}
catch(InterruptedException e)
{}
repaint();
}
}


public static void main(String[]args)
{
PBillar obj=new PBillar("Bolitas de Basket",3);
obj.mover();
}

}
Loboprogramador está desconectado   Responder Citando
Antiguo 07-dic-2011, 19:13   #2
Recien llegado
 
Fecha de Ingreso: diciembre-2011
Ubicación: Distrito Federal
Amigos 0
Mensajes: 1
Gracias: 0
Agradecido 0 veces en 0 mensajes.
Predeterminado Respuesta: Ayuda con un programa en java de colision de objetos

Te mande un mensaje privado.
DJuanMX está desconectado   Responder Citando
Respuesta

Etiquetas
ayuda, colisiones, java, programa, programabillar

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado
Trackbacks están Activado
Pingbacks están Activado
Refbacks están Activado



Temas Similares
Tema Autor Foro Respuestas Último mensaje
El sendero del hacker arcangel_night Hack para newbies 34 26-dic-2012 16:41
Habilidades de un desarrollador java web. ruekart Java 0 18-ago-2011 05:01
Cómo NO realizar una práctica de programación. Trivi181 Programación 1 18-oct-2010 23:24
<<->> CURSOS - VÍDEOS - TUTORIALEs <<->> Fashion Java 4 21-feb-2010 12:29
<<->> LIBROS - REVISTAS - EBOOKs <<->> Fashion Java 8 05-oct-2009 09:34



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0