Counter auf Spielfeld

B

Binbose

Neues Mitglied
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)


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);
		}
		
	}

}
 
Bananabert

Bananabert

Bekanntes Mitglied
Moin,

du zeichnest deinen Counter mit der selben Farbe wie der Hinterrund, dann kann man es nicht sehen.
Setze die Farbe auf eine andere, bevor du deinen Counter zeichnest.
 

Ähnliche Java Themen

Anzeige

Neue Themen


Oben