Autor
|
Tema: Estadio de futbol (Leído 4,563 veces)
|
Burnhack
Desconectado
Mensajes: 559
Hackers always fight
|
Bueno aqui dejo mi code , de mi primer applet . Un estadio de futbol con unas pelotas rebotando por el campo. Ya aplique varias mejoras, ahora simplemente le falta una que es la mejor, que las pelotas reboten entre si...espero que disfruteis de la aplicacion y intenteis completar la mejora Saludos import java.applet.Applet; import java.awt.Graphics; import java.awt.Image;
public class Futbol extends Applet implements Runnable {
Image campo, aux; Balon balon, balon1, balon2, balon3; Thread t; public void init(){ setSize (640, 407); campo = getImage(getCodeBase(), "img/campo.png"); aux = createImage(640,407); balon = new Balon (getImage (getCodeBase(), "img/balon0.png"), 270, 153, 5, 2 * Math.PI * 45 / 360, this); balon1 = new Balon (getImage (getCodeBase(), "img/balon1.png"), 0, 0, 5, 2 * Math.PI * 307 / 360, this); balon2 = new Balon (getImage (getCodeBase(), "img/balon2.png"), 0, 300, 5, 2 * Math.PI * 103 / 360, this); balon3 = new Balon (getImage (getCodeBase(), "img/balon3.png"), 540, 0, 5, 2 * Math.PI * 200 / 360, this);}
public void start(){ t = new Thread(this); if(t != null) t.start(); } public void run (){ while (true){ repaint (); balon.mover(0, 0, 639, 406);//*Blanco y negro movimiento balon1.mover(0, 0, 639, 406);//*Madrid movimiento balon2.mover(0, 0, 639, 406);//*Athletico de madrid movimiento balon3.mover(0, 0, 639,406 );//*Barça movimiento try{ Thread.sleep(40);//*Velocidad/ }catch (Exception e){ } } } public void update(Graphics g){ paint (g); } public void paint (Graphics g){ aux.getGraphics().drawImage(campo, 0, 0, this); balon.paint(aux.getGraphics()); balon1.paint(aux.getGraphics()); balon2.paint(aux.getGraphics()); balon3.paint(aux.getGraphics()); g.drawImage(aux, 0, 0, this); } }
|
|
« Última modificación: 26 Marzo 2008, 06:48 am por ANELKAOS »
|
En línea
|
Cuentas Premium Gratis aquí
Petición partidos fútbol, F1, tenis, baloncesto... aquí
|
|
|
Burnhack
Desconectado
Mensajes: 559
Hackers always fight
|
Y esta es la clase balon jejeje import java.awt.Graphics; import java.awt.Image; import java.awt.image.ImageObserver;
public class Balon { int x, y, vx, vy, v; double d; Image img; ImageObserver io; public Balon(Image img, int x, int y,int v, double d, ImageObserver io){ this.x = x; this.y = y; this.v = v; this.d = d; this.img = img; this.io = io; vx = v - (int)Math.round(Math.cos(d)); vy = v - (int)Math.round(Math.sin(d)); } public void mover (int minX,int minY,int maxX,int maxY){ x += vx; y += vy; if (x + img.getWidth(io) > maxX){ x = maxX-img.getWidth(io) ; vx = -vx; }else if (x < 0){ x = 0; vx = -vx; }
if (y + img.getHeight(io)> maxY){ y = maxY-img.getHeight(io); vy = -vy; }else if (y < 0){ y = 0; vy = -vy; } } public void paint (Graphics g){ g.drawImage(img, x, y, io); } }
|
|
|
En línea
|
Cuentas Premium Gratis aquí
Petición partidos fútbol, F1, tenis, baloncesto... aquí
|
|
|
|
|
|
Burnhack
Desconectado
Mensajes: 559
Hackers always fight
|
Bueno como empece a trabajar con paneles, decidi agregarle uno a este applet que tenia ya por aqui , jeje una mini mejora, aun estoy estudiando el metodo para que choquen los balones que todavia nose me ocurrio jeje. Ya pronto liberare un code parecido a este con figuras geometricas en las que podremos modificar las figuras tambien. import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.awt.image.ImageObserver;
public class Futbol extends Applet implements Runnable, ActionListener{ Balon v[]; int cont; Image campo; Image aux; Image panelIzquierdo; Thread t; List lstBalon; TextField txtAncho, txtAlto, txtVelocidad, txtX, txtY, txtDireccion; Button cmdAgregar, cmdEliminar; CheckboxGroup cbgTipo; Checkbox chkBalon1, chkBalon, chkBalon2, chkBalon3;
public void init(){ cont = 0; v = new Balon [1000]; setLayout(new BorderLayout()); setSize(840, 407); //Crear el panel Derecho Panel panelDerecho = new Panel(); panelDerecho.setBackground(Color.gray); panelDerecho.setPreferredSize(new Dimension(200, 400)); //Añadir la etiqueta "Balones" al panel derecho Label lblAux = new Label("Balones"); lblAux.setPreferredSize(new Dimension(200, 20)); lblAux.setAlignment(Label.CENTER); panelDerecho.add(lblAux); //Añadir la lista para las balones al panel derecho lstBalon = new List(); lstBalon.setPreferredSize(new Dimension(170, 170)); panelDerecho.add(lstBalon); //Añadir campos de datos txtX = agregarTextField(panelDerecho, "X"); txtY = agregarTextField(panelDerecho, "Y"); txtVelocidad = agregarTextField(panelDerecho, "Velocidad"); txtDireccion = agregarTextField(panelDerecho, "Dirección"); //Añadir tipo de balon cbgTipo = new CheckboxGroup(); chkBalon= new Checkbox ("Normal", cbgTipo, true); chkBalon.setPreferredSize(new Dimension(70, 20)); panelDerecho.add(chkBalon); chkBalon1 = new Checkbox ("R.Madrid", cbgTipo, false); chkBalon1.setPreferredSize(new Dimension(70, 20)); panelDerecho.add(chkBalon1); chkBalon2 = new Checkbox ("AtlMadrid", cbgTipo, false); chkBalon2.setPreferredSize(new Dimension(70, 20)); panelDerecho.add(chkBalon2); chkBalon3 = new Checkbox ("Barça", cbgTipo, false); chkBalon3.setPreferredSize(new Dimension(70, 20)); panelDerecho.add(chkBalon3); //Añadir botones cmdAgregar = new Button("Agregar"); cmdAgregar.addActionListener(this); cmdEliminar = new Button("Eliminar"); cmdEliminar.addActionListener(this); cmdAgregar.setPreferredSize(new Dimension (90, 30)); cmdEliminar.setPreferredSize(new Dimension (90, 30)); panelDerecho.add(cmdAgregar); panelDerecho.add(cmdEliminar); //Añadir el panel Derecho al Applet add(panelDerecho, BorderLayout.EAST); //Crear el panel izquierdo campo = getImage(getCodeBase(), "img/campo.png"); aux = createImage(640, 407); } public TextField agregarTextField(Panel p, String e){ Label lblAux= new Label(e); TextField txtAux = new TextField(); lblAux.setPreferredSize(new Dimension (90, 20)); txtAux.setPreferredSize(new Dimension (90, 20)); p.add(lblAux); p.add(txtAux); return txtAux; } public Choice agregarChoice(Panel p, String e){ Label lblAux= new Label(e); Choice cboAux = new Choice(); lblAux.setPreferredSize(new Dimension (90, 20)); cboAux.setPreferredSize(new Dimension (90, 20)); p.add(lblAux); p.add(cboAux); return cboAux; }
public void start(){ t = new Thread(this); if (t != null) t.start(); }
public void run(){ while (true){ repaint (); for (int i=0; i<cont; i++) v[i].mover(0, 0, 639, 406); try { Thread.sleep(40); } catch (Exception e) { } } } public void actionPerformed(ActionEvent e){ if (e.getSource() == cmdAgregar){ Balon aux; if(cbgTipo.getSelectedCheckbox()== chkBalon) { lstBalon.add("Normal"); aux = new Balon(getImage (getCodeBase(), "img/balon0.png"), Integer.parseInt(txtX.getText()), Integer.parseInt(txtY.getText()), Integer.parseInt(txtVelocidad.getText()), Integer.parseInt(txtDireccion.getText()),this); } else if(cbgTipo.getSelectedCheckbox()== chkBalon1) { lstBalon.add("R.Madrid"); aux = new Balon (getImage (getCodeBase(), "img/balon1.png"), Integer.parseInt(txtX.getText()), Integer.parseInt(txtY.getText()), Integer.parseInt(txtVelocidad.getText()), Integer.parseInt(txtDireccion.getText()),this); } else if(cbgTipo.getSelectedCheckbox()== chkBalon2) { lstBalon.add("AtlMadrid"); aux = new Balon (getImage (getCodeBase(), "img/balon2.png"), Integer.parseInt(txtX.getText()), Integer.parseInt(txtY.getText()), Integer.parseInt(txtVelocidad.getText()), Integer.parseInt(txtDireccion.getText()),this); } else { lstBalon.add("Barça"); aux=new Balon (getImage (getCodeBase(), "img/balon3.png"), Integer.parseInt(txtX.getText()), Integer.parseInt(txtY.getText()), Integer.parseInt(txtVelocidad.getText()), Integer.parseInt(txtDireccion.getText()),this); } //Añadir el balon agregarBalon(aux); } else if (e.getSource() == cmdEliminar){ int i =lstBalon.getSelectedIndex(); if (i>=0){ eliminarBalon(i); lstBalon.remove(i); } } } public boolean agregarBalon(Balon b){ if (cont == 1000) return false; else{ v[cont ++] = b; return true; } }
public boolean eliminarBalon(int i){ if (cont == 0 || i >= cont) return false; else{ for (int j=i; j<cont; j++) v[j] = v[j+1]; cont--; return true; } }
public void update (Graphics g){ paint (g); } public void paint(Graphics g){ aux.getGraphics().drawImage(campo, 0, 0, this); for (int i=0; i<cont; i++) v[i].paint(aux.getGraphics()); g.drawImage(aux, 0, 0, this); } }
|
|
|
En línea
|
Cuentas Premium Gratis aquí
Petición partidos fútbol, F1, tenis, baloncesto... aquí
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Impresionante panorámica de 20 gigapíxeles del Estadio de Wembley
Noticias
|
KarlosVid(ÊÇ)
|
3
|
3,376
|
18 Mayo 2011, 12:42 pm
por anonimo12121
|
|
|
Comprar camisas de futbol
Foro Libre
|
Orb
|
2
|
1,604
|
12 Enero 2016, 04:29 am
por El_Andaluz
|
|
|
futbol
Foro Libre
|
kiko44
|
2
|
1,866
|
2 Abril 2016, 21:20 pm
por El_Andaluz
|
|
|
Estadio Santiago Bernabéu
Redes
|
angelica24
|
2
|
2,179
|
15 Marzo 2020, 23:33 pm
por engel lex
|
|
|
Futbol
Dudas Generales
|
Conocido
|
1
|
2,240
|
18 Abril 2022, 13:04 pm
por fedila
|
|