Galera como mostro a imagem do Player 1 na tela?
public class Game extends Canvas implements Runnable {
private static JFrame frame;
public static final int WIDTH = 1000;
public static final int HEIGHT = 700;
private int FPS;
private Thread thread;
private boolean isRunnable = false;
Juiz juiz;
private BufferedImage image;
public List<Entiti> entities;
public void iniciarJogo() {
}
public void info() {
}
public Game() {
initFrame();
iniciarJogo();
info();
juiz = new Juiz();
image = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
entities = new ArrayList<Entiti>();
}
public void initFrame() {
frame = new JFrame();
frame.setPreferredSize(new Dimension(WIDTH, HEIGHT));
frame.add(this);
frame.setResizable(false);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public synchronized void start() {
thread = new Thread(this);
isRunnable = true;
thread.start();
}
public synchronized void stop() {
try {
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Game game = new Game();
game.start();
}
public void tick() {
for (int i = 0; i < entities.size(); i++) {
Entiti e = entities.get(i); // pecorre a Lista para achar todos as classes/entidades.
////////////////// LOGICA DO GAME! //////////////////
long agora = System.currentTimeMillis();
///// Testo na tela!!!!
////////////////////////////////////
e.tick(); // Chama o metodo tick de todas as clases/entidaes que estao dentro da Lista!
}
}
public void render() {
BufferStrategy bs = this.getBufferStrategy();
if (bs == null) {
this.createBufferStrategy(3);
return;
}
//
Graphics g = image.getGraphics();
g.setColor(new Color(0, 0, 0));
g.fillRect(0, 0, WIDTH, HEIGHT);
// render abaixo
for (int i = 0; i < entities.size(); i++) {
Entiti e = entities.get(i);
e.render(g); // O 'e' que é uma lista de classes/entidades chama
}
///////////////// DIALOGO ////////////////////////
///////////////// DIALOGO ////////////////////////
g = bs.getDrawGraphics(); // A classe Graphics/imagens cria 3 "pré" imagens antes de renderizar!
g.drawImage(image, 0, 0, WIDTH, HEIGHT, null); // Agora Graphics/imagem pinta a(as) imagem que estiver pronra!
g.setFont(new Font("Arial", Font.BOLD, 14));
g.setColor(Color.white);
g.drawString("Fps."+FPS, 900, 650);
bs.show(); // exibe a(as) imagens!
}
@Override
public void run() {
// Variaveis q serao necessarias para o calculo dos fps e gerar os ticks do
// looping.
long lestTime = System.nanoTime(); // menor tempo do sistema.Ponto de inicio.
double amountOfticks = 60; // quantidade de ticks desejados
double ns = 1000000000 / amountOfticks;
double delta = 0;
int frames = 0;
double time = System.currentTimeMillis();
while (isRunnable) {
long now = System.nanoTime(); // Pega o tempo de agora e nano segundos!
delta += (now - lestTime) / ns;
lestTime = now;
if (delta >= 1) {
tick();
render();
frames++;
delta--;
}
if (System.currentTimeMillis() - time >= 1000) {
System.out.println("FPS: " + frames);
FPS = frames;
frames = 0;
time += 1000;
}
}
// esse meto nao e necessario, mas e importante pois funciona como uma segurança para parar o looping!
stop();
}
}
package entidades;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.util.Random;
import graficos.ImageLoader;
public class Entiti {
protected double x;
protected double y;
protected int width;
protected int height;
//String CaminhoImagem;
Random r = new Random();
BufferedImage imagem;
private int dinheiro;
private String nome;
private int vida;
private int ataque;
private int defesa;
protected BufferedImage loadImage(String path) {
return ImageLoader.loadImage(path);
}
public Entiti(int x, int y, int width, int height,String CaminhoImagem) {
this.x=x;
this.y=y;
this.width=width;
this.height=height;
//this.CaminhoImagem=CaminhoImagem;
}
public int getX() {
return (int)this.x;
}
public void setX(int newX) {
this.x = newX;
}
public int getY() {
return (int)this.y;
}
public void setY(int newY) {
this.y = newY;
}
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public void tick() {
}
public void render(Graphics g) {
g.drawImage(imagem, this.getX(), this.getY(),null);
}
}
package entidades;
import java.awt.Graphics;
import java.util.ArrayList;
public class Player1 extends Entiti {
static String CaminhoImagem;
ArrayList<String> guardarCaminhoImagens = new ArrayList<>();
public Player1() {
super(240, 2, 250, 400, CaminhoImagem);
sortearIM();
}
public void sortearIM() {
guardarCaminhoImagens.add("/guerreiro.png");
guardarCaminhoImagens.add("/mago.png");
int sort = r.nextInt(guardarCaminhoImagens.size());
CaminhoImagem = guardarCaminhoImagens.get(sort);
System.out.println("RANDOM =========== " + sort);
}
public void render(Graphics g) {
imagem = loadImage(CaminhoImagem);
g.drawImage(imagem, this.getX(), this.getY(), null);
}
}
package entidades;
import java.awt.Graphics;
import com.cett.Game;
public class Juiz {
Player1 p1;
public Juiz() {
p1= new Player1();
}
public void tick() {
// TODO Auto-generated method stub
}
public void render(Graphics g) {
// TODO Auto-generated method stub
}
}