daí pessoal, é o seguinte, preciso de uma ajuda urgente aqui. Queria fazer nesse trabalho dois robôs andarem só na direção y nos cantos da tela atirando balas…as balas são um array e aparece uma por vez…vou mandar as classes, e quem puder corrigir os erros(erros em linhas com “//” para eu poder compilar), ao menos fazê-lo funcionar, seria de GRANDE ajuda!
Estou usando o compilador BlueJ.
//Nome
//Jogo do Atirador
//Classe Atirador
import javax.swing.*;
import java.awt.*;
import java.util.*;
import java.awt.event.*;
public abstract class Atirador extends JFrame
implements KeyListener {
ImageIcon img = new ImageIcon();
Graphics dbi;
boolean c,b,o,l;
int S,E;
Jogador P1 = new Jogador(5,150,10,50,Color.RED,"img.gif");
Jogador P2 = new Jogador(585,150,10,50,Color.BLUE,"img.gif");
ArrayList<Balas>t=new ArrayList<Balas>();
public Atirador(){
setTitle("Atirador");
setSize(600,400);
setResizable(false);
setBackground(Color.BLACK);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
addKeyListener(this);
c=b=o=l=false;
S=E=0;
setVisible(true);
}
public void pintar(Graphics g){
// img=createImage(600,400);
// dbi=img.getGraphics();
// paintComponent(g);
// g.drawImage(img,0,0,this);
repaint();
}
public void pintarComponente(Graphics g){
if(P1.saude>0 && P2.saude>0){
for(Balas b1:t){
b1.desenhar(g);
}
atualiza();
}
else{
if(P1.saude<=0){
g.setColor(P2.cor);
g.drawString("JOGADOR 2 MATOU A PAU!",250,190);
}
else{
g.setColor(P1.cor);
g.drawString("JOGADOR 1 MATOU A PAU!",250,190);
}
}
P1.desenhar(g);
P2.desenhar(g);
}
public void atualiza(){
if(o && P1.y >24) P1.cima();
if(l && P1.y >347) P1.baixo();
if(c && P2.y >24) P2.cima();
if(b && P2.y >347) P2.baixo();
if(E==1){
Balas add = P2.getBalas();
add.xVel=-3;
t.add(add);
E++;
}
if(S==1){
Balas add = P1.getBalas();
add.xVel=3;
t.add(add);
S++;
}
for(int i=0; i < t.size() ; i++){
t.get(i);
// mover();
if(t.get(i).rect.intersects(P1.rect) &&
t.get(i).xVel<0){
P1.saude--;
t.remove(i);
i--;
continue;
}
if(t.get(i).rect.intersects(P2.rect) &&
t.get(i).xVel<0){
P2.saude--;
t.remove(i);
i--;
continue;
}
}
}
public void teclaPressionada(KeyEvent e){
switch(e.getKeyCode()){
case KeyEvent.VK_UP:c = true;
break;
case KeyEvent.VK_DOWN:b = true;
break;
case KeyEvent.VK_W:o = true;
break;
case KeyEvent.VK_S:l = true;
break;
case KeyEvent.VK_SPACE:S++;
break;
case KeyEvent.VK_ENTER:E++;
break;
}
}
public void teclaSolta(KeyEvent e){
switch(e.getKeyCode()){
case KeyEvent.VK_UP:c = false;
break;
case KeyEvent.VK_DOWN:b = false;
break;
case KeyEvent.VK_W:o = false;
break;
case KeyEvent.VK_S:l = false;
break;
case KeyEvent.VK_SPACE:S=0;
break;
case KeyEvent.VK_ENTER:E=0;
break;
}
}
public static void main(String[]beans){
Atirador a = new Atirador;
}
}
segunda classe
//Nome
//Atirador
//Classe Jogador
import javax.swing.ImageIcon;
import javax.swing.*;
import java.awt.*;
public class Jogador{
int x,y;
int altura, largura;
int saude;
Rectangle rect = new Rectangle(0,0,0,0);
ImageIcon icon = new ImageIcon("img.gif");
// ImageIcon icon = createImageIcon("img.gif");
Color cor;
public Jogador(){
x=y=altura=largura=0;
icon=null;
cor = Color.WHITE;
rect = new Rectangle(x,y,largura,altura);
}
public Jogador(int x, int y, int alt, int larg){
this.x=x;
this.y=y;
altura=alt;
largura=larg;
icon=null;
cor = Color.WHITE;
saude=10;
}
public Jogador(int x, int y, int alt, int larg,Color cor, String s){
this.x=x;
this.y=y;
altura=alt;
largura=larg;
saude=10;
cor = Color.WHITE;
// icon=Toolkit.getDefaultToolkit().getImage(s);
}
public void cima(){
y-=3;
rect.setLocation(x,y);
}
public void baixo(){
y+=3;
rect.setLocation(x,y);
}
public void desenhar(Graphics g){
// g.drawImage(icon, x, y, this);
}
public void setImagem(String s){
// icon = Toolkit.getDefaultToolkit().getImage(s);
}
public Balas getBalas(){
return new Balas(x+8,y+23,3,3,cor);
}
}
terceira classe
//Nome
//Atirador
//Classe Balas
import javax.swing.*;
import java.awt.*;
import java.util.*;
import java.awt.event.*;
public class Balas{
int x,y;
int xVel;
int altura,largura;
Rectangle rect = new Rectangle(0,0,0,0);
Color cor;
public Balas(){
x=y=altura=largura=0;
cor=Color.WHITE;
rect = new Rectangle(x,y,largura,altura);
}
public Balas(int x, int y, int larg, int alt, Color c){
this.x=x;
this.y=y;
this.xVel=0;
altura=alt;
largura=larg;
cor=c;
rect = new Rectangle(x,y,largura,altura);
}
public Balas(int x, int y, int larg, int alt,int xVel, Color c){
this.x=x;
this.y=y;
this.xVel=xVel;
altura=alt;
largura=larg;
cor=c;
rect = new Rectangle(x,y,largura,altura);
}
public void desenhar(Graphics g){
g.setColor(cor);
g.fillOval(x,y,largura,altura);
}
public void mover(){
x+=xVel;
rect.setLocation(x,y);
}
}
Qualquer coisa add msn foofastfoo@gmail.com.Abraço.