Hallo Leute.
Ich programmiere gerade mein erstes kleines Spiel, und bisher klappt auch alles soweit.
Nun möchte ich aber einen Counter implementieren, der im Hintergrund (also so das man "rüberlaufen" kann) des Spielfelds die Punkte hochzählt.
Bisher habe ich es mit g.drawString() probiert (wird überhaupt nicht gezeichnet) und mit einem JLabel (flackert, ist immer im Vordergrund, trotz setOpaque(false) kein durchsichtiger Hintergrund)
Ich programmiere gerade mein erstes kleines Spiel, und bisher klappt auch alles soweit.
Nun möchte ich aber einen Counter implementieren, der im Hintergrund (also so das man "rüberlaufen" kann) des Spielfelds die Punkte hochzählt.
Bisher habe ich es mit g.drawString() probiert (wird überhaupt nicht gezeichnet) und mit einem JLabel (flackert, ist immer im Vordergrund, trotz setOpaque(false) kein durchsichtiger Hintergrund)
Java:
package Project1;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferStrategy;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Frame extends JFrame{
final Background bg;
final Ninja ninja;
private List<Enemy> enemys;
private BufferStrategy strat;
private Integer hochzahlen;
public Frame(Ninja ninja, Background bg, List<Enemy>enemys){
super("Ninja");
addKeyListener(new Keyboard());
addMouseListener(new Maus());
this.ninja =ninja;
this.bg=bg;
this.enemys=enemys;
}
public void makeStrat() {
createBufferStrategy(2);
strat = getBufferStrategy();
}
public void repaintScreen(){
Graphics g=strat.getDrawGraphics();
draw(g);
g.dispose();
strat.show();
}
private void draw(Graphics g){
g.setColor(new Color (100,100,100));
g.fillRect(0, 0, 800, 600);
g.drawString(""+hochzahlen,10,10);
g.drawImage(ninja.getLook(), ninja.getBounding().x, ninja.getBounding().y, null);
for(int i = 0; i<enemys.size(); i++){
Enemy e = enemys.get(i);
g.drawImage(e.getLook(), e.getBounding().x, e.getBounding().y, null);
}
}
}