Estou fazendo um trabalho de faculdade e estou trancado em uma quesito do trabalho que é adicionar obstáculos moveis e fixos na tela do jogo e que interagem com o usuário!
Gostaria de saber se alguém tem alguma sugestão para fazer aparecer
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
import java.awt.Dimension;
import java.util.Random;
public class GameWindow extends JPanel {
public static void main(String args[]) {
GameWindow g = new GameWindow();
Random gerador = new Random();
int tempo = 0;
int dx = 200;
int dy = 200;
int ox,oy,ry,rx,py,px,ex,ey;
int oxx= 280,oxy = 280;
boolean tesouro = false;
boolean tesouro2 = false;
boolean tesouro3 = false;
boolean tesouro4 = false;
// gera as coord do ouro
ox = gerador.nextInt(0 + 200);
oy = ox;
// gera as coord do rubi
rx = gerador.nextInt(0 + 200);
ry = rx;
// gera as coord da perola
px = gerador.nextInt(0 + 200);
py = px;
// gera as coord da esmeralda
ex = gerador.nextInt(0 + 200);
ey = ex;
//posiciona o elementos na tela
g.setOuro(ox, oy);
g.setRubi(rx, ry);
g.setPerola(px, py);
g.setEsmeralda(ex,ey);
g.setOxi(280,280);
//ate final dos tempos
while (tempo < 300) {
g.desenha();
if (g.apertouEsquerda()) {
dx -= 4;
} else if (g.apertouDireita()) {
dx += 4;
} else if (g.apertouCima()) {
dy -= 4;
} else if (g.apertouBaixo()) {
dy += 4;
}
tempo++;
// posiciona o mergulhador no pixel dx e dy da tela
g.setDiver(dx, dy);
System.out.println(tempo);
// Compara se os tesouros foram pegos
if (dx >= ox && dy <= oy && dx <= ox+17 && dy >= oy-20){
tesouro = true;
g.setOuro(400, 400);
}
if (dx >= rx && dy <= ry && dx <= rx+17 && dy >= ry-20){
tesouro2 = true;
g.setRubi(400, 400);
}
if (dx >= px && dy <= py && dx <= px+17 && dy >= py-20){
tesouro3 = true;
g.setPerola(400, 400);
}
if (dx >= ex && dy <= ey && dx <= ex+20 && dy >= ey-20){
tesouro4 = true;
g.setEsmeralda(400,400);
}
//CONTROLA O OXIGENIO
if (dx >= oxx && dy <= oxy && dx <= oxx+17 && dy >= oxy-20){
tempo = 0;
g.setOxi(400,400);
}
//Se tudo for pego mostra WIN
if ((tesouro == true)&&(tesouro2 == true)&&(tesouro3 == true)&&(tesouro4 == true)){
g.ganhou();
g.desenha();
tempo = 300;
}
//Controla o tempo de jogo
if (tempo == 299) {
g.gameOver();
g.desenha();
tempo++;
}
}
// Atributo importante que determina o tamanho de cada pixel.
}
private final int pt = 2;
private int[][] game = {
{1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1},
{1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0},
{1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0},
{1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0},
{1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1}
};
int[][] over = {
{1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1},
{1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1},
{1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0},
{1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1},
{1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1}
};
int[][] ouro = {
{1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1},
{1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1},
{1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1},
{1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1},
{1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1}
};
int[][] rubi ={
{ 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1},
{ 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1},
{ 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1},
{ 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1},
{ 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1},
{ 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1},
{ 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1}
};
int[][] perola={
{ 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1},
{ 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1},
{ 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1},
{ 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1},
{ 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1},
{ 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1},
{ 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1}
};
int[][] esmeralda={
{ 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1},
{ 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1},
{ 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1},
{ 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1},
{ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1},
{ 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1},
{ 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1}
};
int[][] diver = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0}
};
int[][] win = {
{1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1},
{1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1},
{1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1},
{1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1},
{1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1},
{0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1},
{0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1}
};
int[][] oxigenio = {
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
};
//x e y do mergulhador
private int x;
private int y;
//x e y do ouro
private int ox;
private int oy;
//x e y do rubi
private int rx;
private int ry;
//x e y da perola
private int px;
private int py;
//x e y da esmeralda
private int ex;
private int ey;
// x e y do oxigenio
private int oxx;
private int oxy;
private final int boardWidth;
private final int boardHeight;
//boleana para indicar se a tecla SETA esquerda foi pressionada
private boolean esquerda = false;
//boleana para indicar se a tecla SETA direita foi pressionada
private boolean direita = false;
//boleana para indicar se a tecla SETA cima foi pressionada
private boolean cima = false;
//boleana para indicar se a tecla SETA baixo foi pressionada
private boolean baixo = false;
//se true deve mostrar a mensagem game over na tela
private boolean gameOver = false;
//se true deve mostrar a mensgaem you win na tela
private boolean ganhou = false;
// variável que carrega o
private JFrame frame = new JFrame("CaveDiving");
/*
Deve indicar a largura últil em pixels da janela.
@return um inteiro que é a quantidade de casas (horizontais) da janela.
*/
public int getBoardWidth() {
return boardWidth;
}
/**
* Deve indicar a altura últil em pixels da janela.
*
* @return um inteiro que é a quantidade de casas verticais (linhas) da
* janela.
*/
public int getBoardHeight() {
return boardHeight;
}
/**
* Desenha na tela o jogo e fica para por 80ms.
*/
public void desenha() {
frame.repaint();
try {
Thread.sleep(80);
} catch (final java.lang.InterruptedException e) {
}
}
/**
* Desenha uma matriz qualquer passada como parâmetro.
*
* @param x coluna na qual o objeto deve ser desenhado.
* @param y linha na qual o objeto deve ser desenhado.
* @param m matriz com um mapa de pixels a serem desenhados.
* @param g objeto gráfico usado para desenhar na tela.
*/
private void drawMatrix(final int m[][], final int x, final int y, final Graphics g) {
for (int i = 0; i < m[0].length; i++) {
for (int j = 0; j < m.length; j++) {
if (m[j]<i> == 1) {
g.drawOval((x + i) * pt, (y + j) * pt, pt, pt);
g.fillOval((x + i) * pt, (y + j) * pt, pt, pt);
}
}
}
}
/**
* Posiciona o mergulhador em uma posiçõa x e y da tela.
*
* Exemplo:
* <pre>
* {@code
* GameWindow g = new GameWindow();
* //coloca o mergulhador na posição 100, 100 da tela
* g.setDiver(100,100)
* //atualiza a tela e mostra o mergulhador na nova posição
* g.desenha();
* }
* </pre>
*
* @param x coluna posição horizontal do mergulhador.
* @param y linha posição vertical do mergulhador.
*/
public void setDiver(int x, int y) {
this.x = x;
this.y = y;
}
/**
* Posiciona o ouro na posiçõa x e y da tela.
*
* Exemplo:
* <pre>
* {@code
* GameWindow g = new GameWindow();
* //coloca o mergulhador na posição 40, 40 da tela
* g.setOuro(40,40)
* //atualiza a tela e mostra o mergulhador na nova posição
* g.desenha();
* }
* </pre>
*
* @param x coluna posição horizontal do ouro.
* @param y linha posição vertical do ouro.
*/
public void setOuro(int x, int y) {
this.ox = x;
this.oy = y;
}
public void setRubi(int x, int y) {
this.rx = x;
this.ry = y;
}
public void setPerola(int x, int y) {
this.px = x;
this.py = y;
}
public void setEsmeralda(int x, int y) {
this.ex = x;
this.ey = y;
}
public void setOxi(int x, int y) {
this.oxx = x;
this.oxy = y;
}
/**
* Desenha este componente, método chamado pelo próprio java.
*
*/
public void paintComponent(final Graphics g) {
final int width = getWidth();
final int height = getHeight();
g.setColor(Color.black);
g.setColor(Color.black);
if (gameOver) {
drawMatrix(game, 120, 120, g);
drawMatrix(over, 140, 140, g);
}
if (ganhou) {
drawMatrix(win, 150, 150, g);
}
//IMPRIME NA TELA OS ELEMENTOS E SUAS CORES
drawMatrix(diver, x, y, g);
g.setColor(Color.yellow);
drawMatrix(ouro, ox, oy, g);
g.setColor(Color.red);
drawMatrix(rubi, rx, ry, g);
g.setColor(Color.orange);
drawMatrix(perola, px, py, g);
g.setColor(Color.GREEN);
drawMatrix(esmeralda, ex, ey, g);
g.setColor(Color.cyan);
drawMatrix(oxigenio, oxx, oxy, g);
g.setColor(Color.lightGray);
for (int i = 0; i < height; i++) {
g.drawLine(0, i * pt, boardWidth * pt, i * pt);
}
for (int i = 0; i < width; i++) {
g.drawLine(i * pt, 0, i * pt, boardHeight * pt);
}
}
/**
* Mostra a mensagem game over na tela.
*
* Exemplo:
* <pre>
* {@code
* GameWindow g = new GameWindow();
* //ativa a mensagem "GAME OVER"
* g.gameOver();
* //deve chamar desenha para atualizar a tela e mostrar "GAME OVER"
* g.desenha();
* }
* </pre>
*/
public void gameOver() {
gameOver = true;
}
/**
* Desenha uma mensagem de WIN da proxima vez que chamar desenha().
*
* Exemplo:
* <pre>
* {@code
* GameWindow g = new GameWindow();
* //ativa a mensagem "WIN"
* g.ganhou();
* //deve chamar desenha para atualizar a tela e mostrar "WIN"
* g.desenha();
* }
* </pre>
*/
public void ganhou() {
ganhou = true;
}
/**
* Retorna verdadeiro se a seta para a esquerda estiver sendo pressionada
* pelo usuário.
*
* Exemplo:
* <pre>
* {@code
* GameWindow g = new GameWindow();
* while(true){
* if(g.apertouEsquerda()){
* System.out.println("Apertou a SETA ESQUERDA!!!");
* }
* }
* }
* </pre>
*
* @return verdadeiro (true) caso a seta para a esquerda estiver sendo
* precionada, falso (false) caso contrário.
*/
public boolean apertouEsquerda() {
return esquerda;
}
/**
* Retorna verdadeiro se a seta para a direita estiver sendo pressionada
* pelo usuário.
*
* Exemplo:
* <pre>
* {@code
* GameWindow g = new GameWindow();
* while(true){
* if(g.apertouDireita()){
* System.out.println("Apertou a SETA DIREITA!!!");
* }
* }
* }
* </pre>
*
* @return verdadeiro (true) caso a seta para a direita estiver sendo
* precionada, falso (false) caso contr?rio.
*/
public boolean apertouDireita() {
return direita;
}
/**
* Retorna verdadeiro se a seta para a cima estiver sendo pressionada pelo
* usuário.
*
* Exemplo:
* <pre>
* {@code
* GameWindow g = new GameWindow();
* while(true){
* if(g.apertouCima()){
* System.out.println("Apertou a SETA CIMA!!!");
* }
* }
* }
* </pre>
*
* @return verdadeiro (true) caso a seta para a cima estiver sendo
* precionada, falso (false) caso contr?rio.
*/
public boolean apertouCima() {
return cima;
}
/**
* Retorna verdadeiro se a seta para a baixo estiver sendo pressionada pelo
* usuário.
*
* Exemplo:
* <pre>
* {@code
* GameWindow g = new GameWindow();
* while(true){
* if(g.apertouBaixo()){
* System.out.println("Apertou a SETA BAIXO!!!");
* }
* }
* }
* </pre>
*
* @return verdadeiro (true) caso a seta para a baixo estiver sendo
* precionada, falso (false) caso contr?rio.
*/
public boolean apertouBaixo() {
return baixo;
}
/**
* Construtor, inicia a janela do jogo. Este método é chamado quando criamos
* o objeto com new.
*
* Exemplo:
* <pre>
* {@code
* //para criar a janela use
* GameWindow g = new GameWindow();
* }
* </pre>
*
*/
public GameWindow() {
boardWidth = 300;
boardHeight = 300;
setPreferredSize(new Dimension(boardWidth * pt, boardHeight * pt));
frame = new JFrame("CaveDive - By: Igor & Gustavo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(this);
frame.pack();
frame.setResizable(false);
frame.setVisible(true);
frame.setBackground(Color.WHITE);
frame.addKeyListener(new KeyListener() {
public void keyPressed(final KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
direita = true;
} else if (e.getKeyCode() == KeyEvent.VK_LEFT) {
esquerda = true;
} else if (e.getKeyCode() == KeyEvent.VK_UP) {
cima = true;
} else if (e.getKeyCode() == KeyEvent.VK_DOWN) {
baixo = true;
}
}
public void keyReleased(final KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
direita = false;
} else if (e.getKeyCode() == KeyEvent.VK_LEFT) {
esquerda = false;
} else if (e.getKeyCode() == KeyEvent.VK_UP) {
cima = false;
} else if (e.getKeyCode() == KeyEvent.VK_DOWN) {
baixo = false;
}
}
public void keyTyped(final KeyEvent e) {
}
});
}
void gameBau() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
```
Pergunta
Faawkes
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.