galera to com erro aqui no joguinho aparece a janela mas ta dando erro no render alguem me ajuda. se for posta a classe vai ficar muito grande aqui talvez seja melhor compartilhar o projeto.
package dungeoncrawler.framework.gamestates;
import java.awt.Graphics;
import java.util.Stack;
public class GameStateManager {
private Stack<GameState>states;
public GameStateManager() {
this.states = new Stack<>();
}
public void addState(GameState state) {
this.states.add(state);
}
public void backToPreviousState(GameState state) {
this.states.pop();
}
public void clearStack() {
this.states.clear();
}
public void init() {
this.states.peek().init();
}
public void loop() {
this.states.peek().loop();
}
public void render(Graphics graphics) {
this.states.peek().render(graphics);
}
public void KeyPressed(int keyCode) {
this.states.peek().KeyPressed(keyCode);
}
public void KeyRealssed(int keyCode) {
this.states.peek().KeyRealssed(keyCode);
}
}
package dungeoncrawler.framework.gamestates;
import java.awt.Graphics;
public abstract class GameState {
protected GameStateManager gameStateManager;
protected GameState(GameStateManager manager) {
this.gameStateManager = manager;
this.init();
}
protected abstract void init();
protected abstract void loop();
protected abstract void render(Graphics graphics);
protected abstract void KeyPressed(int keyCode);
protected abstract void KeyRealssed(int keyCode);
}
///// erro q ta dando e essse…
xception in thread “AWT-EventQueue-0” java.util.EmptyStackException
at java.base/java.util.Stack.peek(Stack.java:101)
at dungeoncrawler.framework.gamestates.GameStateManager.render(GameStateManager.java:36)
at dungeoncrawler.framework.Engine$GameScreen.paintComponent(Engine.java:52)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1074)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
at java.desktop/javax.swing.JLayeredPane.paint(JLayeredPane.java:586)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
at java.desktop/javax.swing.JComponent.paintToOffscreen(JComponent.java:5262)
at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(RepaintManager.java:1643)
at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1618)
at java.desktop/javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1556)
at java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1323)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1060)
at java.desktop/java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
at java.desktop/sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:75)
at java.desktop/sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:112)
at java.desktop/java.awt.Container.paint(Container.java:2002)
at java.desktop/java.awt.Window.paint(Window.java:3933)
at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:876)
at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:848)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:848)
at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:823)
at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:772)
at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1884)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:316)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Exception in thread “AWT-EventQueue-0” java.util.EmptyStackException
at java.base/java.util.Stack.peek(Stack.java:101)
at dungeoncrawler.framework.gamestates.GameStateManager.loop(GameStateManager.java:32)
at dungeoncrawler.framework.Engine$MainGameLooping.actionPerformed(Engine.java:41)
at java.desktop/javax.swing.Timer.fireActionPerformed(Timer.java:310)
at java.desktop/javax.swing.Timer$DoPostEvent.run(Timer.java:242)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:316)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)