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:
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:
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
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