Ein paar Fragen...

DVDB

Mitglied
Guten Abend!

Programmiere momentan ein Spiel wie Pong, nur ohne Gegenspieler (man muss halt den Ball in der Luft halten). Ich hätte mal ein paar Fragen zur Spieleentwicklung:

1. tick() und render():

tick() macht das rechnerische, render() das graphische. tick() soll nur 60 mal die Sekunde ausgeführt werden. hab dafür folgendes Konzept:

Java:
if (zeitgestoppt == false) {
	time_1 = System.currentTimeMillis();
	zeitgestoppt = true;
}
time_2 = System.currentTimeMillis();
if (time_2 - time_1 >= 1000 / 60) { //tick() alle 1/60 Sekunden
	tick();
        zeitgestoppt = false;
}
			
render();

Ich schätze mal das diese Rangehensweise zimlich schlecht ist. Wie macht man das richtig?

2. KeyListener und Co.:

Ich benutze auf Empfehlung aus einem anderen Forum folgendes:

Java:
map = panel.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);

panel.getActionMap().put("exit", new AbstractAction() {
	@Override
	public void actionPerformed(ActionEvent arg0) {
	System.exit(0);				
        }
});

map.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "exit");

Ich würde gerne ein Menü machen, mit dem man das Spiel neustarten kann und auf dem nach einem Match die erspielte xp angezeigt wird. Allerdings ist da immer das Problem mit dem Fokus von Fenstern, dank dem weder KeyListener noch ActionMap funktionieren.

3. Spielstand speichern/laden:

Textdokument beschreiben/auslesen lassen oder was macht man da am besten?


Danke!

MfG,
DVDB
 

BuddaKaeks

Bekanntes Mitglied
verwende auf jeden fall System.nanoTime(); zur Zeitmessung, da die System.currentTimeMillis(); auf 16 ms ungenau ist, was bei messungen auf 1/60 sekunden eine große ungenauigkeit sein kann.
 

Gucky

Top Contributor
1. Es ist nicht ersichtlich, ob du schon einen benutzt. Guck dir bitte mal die Threads an.

2. Ein Menü kannst du mit einem weiteren Panel machen, dass du einfach über das Spiel legst. Den Thread stoppst du. Soll etwas anderes den Fokus bekommen, dann benutzt du requestFokus(); Bitte auch angucken. Willst du Events weiterleiten, so ist das kein Problem. Du machst eine Methode public tasteGedrückt(Event e){}, in der du anhand des Events darauf reagierst. Diese Methode wird auch von deinem KeyListener aufgerufen.

3. Zum schreiben in ein Textdokument guck dir bitte mal den BufferedWriter und den OutputStream an. Zum lesen den BufferedReader, den Scanner und den InputStream.
 

DVDB

Mitglied
Das mit dem Fokus krieg ich nie hin... Alles was ich lese ist, dass ich es mit "requestFocus()" oder "setFocusable(false)" machen soll. Funzt aber nie!

Java:
public void menu() {
		Game.this.add(menu);
		menu.setLayout(null);
		menu.setFocusable(false);
		
		start.setBounds(width / 2 - 600 / 2, height / 2 - 200 / 2, 600, 200);
		start.addActionListener(new ActionListener() {
			{
		}
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				running();
			}
		});
		start.setFocusable(false);
		
		menu.add(start);
	}
	
	public void running() {
		Game.this.requestFocus();
		
		running = true;
		map = new Map();
		while(running == true) {
			render();
			//tick(); Wird noch nicht gebraucht!
		}
	}
 

BuddaKaeks

Bekanntes Mitglied
setFocusable(false);

macht ja genau das gegenteil von dem, was du willst:
Es führt dazu, dass dein JFrame, etc. niemals den Focus bekommen kann
 

DVDB

Mitglied
ich hab das setFocusable() auf alle anderen Objekte gemacht (Button, panel), damit der JFrame immer den Focus behält - nicht umgekehrt!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Ein paar fragen zu JOGL Spiele- und Multimedia-Programmierung 4
H Einstieg erfolgreich ;), nun nur noch paar Fragen^^ Spiele- und Multimedia-Programmierung 13
C Fragen zu HashMaps Spiele- und Multimedia-Programmierung 22
B Fragen zu "Physics-Body-Editor"? Spiele- und Multimedia-Programmierung 0
J Fragen zur Gui-Aktualisierung Spiele- und Multimedia-Programmierung 2
A Langtons Ameise - Fragen zur Umsetzung Spiele- und Multimedia-Programmierung 1
H LWJGL: Fragen zum Verständnis Spiele- und Multimedia-Programmierung 7
Helgon Fragen zur Umsetzung Spiele- und Multimedia-Programmierung 17
A Klickgame ala "Harveys neue Augen" oder "Edna bricht aus" in Java programmieren... Fragen zu Kleinig Spiele- und Multimedia-Programmierung 8
Samake03 [Game]"Plumbo - Lost in Depth" Preview und Fragen Spiele- und Multimedia-Programmierung 18
G Minecraft Minecraft Fragen Spiele- und Multimedia-Programmierung 1
A Fragen zu MMO Spiele- und Multimedia-Programmierung 6
M Grundsätzliche Java3D Fragen Spiele- und Multimedia-Programmierung 2
D 3 JMF Fragen Spiele- und Multimedia-Programmierung 8
M Allgemeine Fragen zu JOGL2 / OpenGL3.2 Spiele- und Multimedia-Programmierung 36
M Fragen wegen Spieleprogrammierung Spiele- und Multimedia-Programmierung 17
M Fragen zu meinem Pong-Clone Spiele- und Multimedia-Programmierung 6
S glTexSubImage2D()-Fragen(Zerstörbares Terrain, OpenGL) Spiele- und Multimedia-Programmierung 3
K Game-Tutorial von Quaxli Fragen Spiele- und Multimedia-Programmierung 18
D Zwei Fragen (Exponential Fog und Schein-nach-außen-Effekt) Spiele- und Multimedia-Programmierung 6
V Fragen zum PositionPathInterpolator und RotationInterpolator Spiele- und Multimedia-Programmierung 2
N 4 Gewinnt fertig (Kritik, Fragen etc. erwünscht) Spiele- und Multimedia-Programmierung 29
J 3d Programmierung, Fragen: Spiele- und Multimedia-Programmierung 14
T Größeres Spiele Projekt - einige Fragen zur Umsetzung Spiele- und Multimedia-Programmierung 3

Ähnliche Java Themen

Neue Themen


Oben