Boa tarde
Este é o codigo, ele não gera o grafico que preciso e não consigo encontrar que parte está errada, conseguem me esclarecer, por favor?
> identar texto pré-formatado por 4 espaços package projectZelda;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferStrategy;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
import com.gcstudio.entities.Entitie;
import com.gcstudio.entities.Player;
import com.gcstudio.graficos.Spritesheet;
public class Game extends Canvas implements Runnable {
private static final long serialVersionUID = 1L;
public JFrame frame;
private Thread thread;
private boolean isRunning = true;
private final int WIDTH = 240;
private final int HEIGHT = 160;
private final int SCALE = 3;
private BufferedImage image;
public List<Entitie> entities;
public Spritesheet spritesheet;
public Game() {
setPreferredSize(new Dimension(WIDTH*SCALE,HEIGHT*SCALE));
initFrame();
image = new BufferedImage(WIDTH,HEIGHT,BufferedImage.TYPE_INT_RGB);
entities = new ArrayList<Entitie>();
spritesheet = new Spritesheet("/spritesheet.png");
Player player = new Player(32,0,16,16,spritesheet.getSprite(32, 0, 16,16));
entities.add(player);
}
public void initFrame() {
frame = new JFrame("Marizelda");
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);
isRunning = true;
thread.start();
}
public synchronized void stop() {
isRunning = false;
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++) {
Entitie e = entities.get(i);
e.tick();
}
}
public void render() {
BufferStrategy bs = this.getBufferStrategy();
if(bs == null) {
this.createBufferStrategy(3);
return;
}
Graphics g = image.getGraphics();
g.setColor(new Color(50,0,0));
g.fillRect(0,0,WIDTH,HEIGHT);
for (int i = 0;i<entities.size();i++) {
Entitie e = entities.get(i);
e.render(g);
}
g.dispose();
}
public void run(){
long lastTime = System.nanoTime();
double amountOfThicks = 60.0;
double ns = 1000000000 / amountOfThicks;
double delta = 0;
int frames = 0;
double timer = System.currentTimeMillis();
while(isRunning) {
long now = System.nanoTime();
delta+= (now - lastTime)/ns;
lastTime=now;
if(delta>=1){
tick();
render();
frames++;
delta--;
}
if(System.currentTimeMillis()-timer >= 1000) {
System.out.println("FPS: "+frames);
frames = 0;
timer+=1000;
}
}
stop();
}
}