
Ayuda en juego java
Publicado por Adrian (1 intervención) el 28/06/2014 15:03:34
Lo que quiero hacer es que me salgan las figuras aleatoriamente y cada vez mas... no consigo hacerlo
os dejo el codigo
lo que hace el juego es lo siguiente tu eres una figura o un circulo (si clicas te conviertes en circulo si sueltas otra vez en cuadrado) y te van viendo cuadrados o circulos y para pasarlos tienes que convertirte en lo que te viene, pero no se como hacer que te vengan , solo me salen dos....
clase donde se ejecuta todo... :
package laneLike;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;
public class Mapa extends JPanel implements ActionListener {
private Timer timer;
private TuFigura tf;
private Cuadrado cuadrado;
private Circulo circulo;
private boolean jugando=true;
private Reproductor mp3;
private ArrayList circulos;
public Mapa() {
String filename = "C:/Users/AdrianSobremesa/Desktop/Uni/Programacion IV/laneLike/src/Musica/Nv1.mp3";
// nueva instancia de la clase MP3
mp3 = new Reproductor(filename);
mp3.play();
// establecemos el tiempo para procesar el sonido (milisegundos)
int N = 4000;
double sum = 0.0;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
sum += Math.sin(i + j);
}
}
System.out.println(sum);
// cuando el tiempo de proceso termina se detiene la reproduccion
mp3.close();
// reproducir el mp3 desde el principio
mp3 = new Reproductor(filename);
mp3.play();
addMouseListener(new TAdapter());
setFocusable(true);
setDoubleBuffered(true);
tf = new TuFigura();
cuadrado=new Cuadrado(600,150);
circulo=new Circulo(800,150);
timer = new Timer(5, this);
timer.start();
}
public void paint(Graphics g) {
super.paint(g);
if(jugando==true){
Graphics2D g2d = (Graphics2D)g;
g2d.drawImage(tf.getImage(), tf.getX(), tf.getY(),this);
g2d.drawImage(cuadrado.getImage(), cuadrado.getX(), cuadrado.getY(), this);
cuadrado.move(false);
g2d.drawImage(circulo.getImage(), circulo.getX(), circulo.getY(), this);
circulo.move(false);
Toolkit.getDefaultToolkit().sync();
g.dispose();
}
}
public void actionPerformed(ActionEvent e) {
tf.move();
checkCollisions();
repaint();
}
public void checkCollisions() {
Rectangle r3 = tf.getBounds();
Rectangle r2 = cuadrado.getBounds();
Rectangle r1 = circulo.getBounds();
if (r3.intersects(r2) && tf.EsCuadrado()==false) {
System.out.println("game over");
jugando=false;
mp3.close();
}
else if (r3.intersects(r1) && tf.EsCirculo()==false){
System.out.println("game over");
jugando=false;
mp3.close();
}
else if (r3.intersects(r2) && tf.EsCuadrado()==true){
cuadrado.move(true);
}
else if (r3.intersects(r1) && tf.EsCirculo()==true){
circulo.move(true);
}
}
private class TAdapter extends MouseAdapter {
public void mouseReleased(MouseEvent e) {
tf.mouseReleased(e);
}
public void mousePressed(MouseEvent e) {
tf.mouseClicked(e);
}
}
}
os dejo el codigo
lo que hace el juego es lo siguiente tu eres una figura o un circulo (si clicas te conviertes en circulo si sueltas otra vez en cuadrado) y te van viendo cuadrados o circulos y para pasarlos tienes que convertirte en lo que te viene, pero no se como hacer que te vengan , solo me salen dos....
clase donde se ejecuta todo... :
package laneLike;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;
public class Mapa extends JPanel implements ActionListener {
private Timer timer;
private TuFigura tf;
private Cuadrado cuadrado;
private Circulo circulo;
private boolean jugando=true;
private Reproductor mp3;
private ArrayList circulos;
public Mapa() {
String filename = "C:/Users/AdrianSobremesa/Desktop/Uni/Programacion IV/laneLike/src/Musica/Nv1.mp3";
// nueva instancia de la clase MP3
mp3 = new Reproductor(filename);
mp3.play();
// establecemos el tiempo para procesar el sonido (milisegundos)
int N = 4000;
double sum = 0.0;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
sum += Math.sin(i + j);
}
}
System.out.println(sum);
// cuando el tiempo de proceso termina se detiene la reproduccion
mp3.close();
// reproducir el mp3 desde el principio
mp3 = new Reproductor(filename);
mp3.play();
addMouseListener(new TAdapter());
setFocusable(true);
setDoubleBuffered(true);
tf = new TuFigura();
cuadrado=new Cuadrado(600,150);
circulo=new Circulo(800,150);
timer = new Timer(5, this);
timer.start();
}
public void paint(Graphics g) {
super.paint(g);
if(jugando==true){
Graphics2D g2d = (Graphics2D)g;
g2d.drawImage(tf.getImage(), tf.getX(), tf.getY(),this);
g2d.drawImage(cuadrado.getImage(), cuadrado.getX(), cuadrado.getY(), this);
cuadrado.move(false);
g2d.drawImage(circulo.getImage(), circulo.getX(), circulo.getY(), this);
circulo.move(false);
Toolkit.getDefaultToolkit().sync();
g.dispose();
}
}
public void actionPerformed(ActionEvent e) {
tf.move();
checkCollisions();
repaint();
}
public void checkCollisions() {
Rectangle r3 = tf.getBounds();
Rectangle r2 = cuadrado.getBounds();
Rectangle r1 = circulo.getBounds();
if (r3.intersects(r2) && tf.EsCuadrado()==false) {
System.out.println("game over");
jugando=false;
mp3.close();
}
else if (r3.intersects(r1) && tf.EsCirculo()==false){
System.out.println("game over");
jugando=false;
mp3.close();
}
else if (r3.intersects(r2) && tf.EsCuadrado()==true){
cuadrado.move(true);
}
else if (r3.intersects(r1) && tf.EsCirculo()==true){
circulo.move(true);
}
}
private class TAdapter extends MouseAdapter {
public void mouseReleased(MouseEvent e) {
tf.mouseReleased(e);
}
public void mousePressed(MouseEvent e) {
tf.mouseClicked(e);
}
}
}
Valora esta pregunta


0