я делаю игру, когда проблема все-таки началась, я делал меню паузы, когда вы запускаете en, когда вы отпускаете кнопку пробела, игра запускается для этого, я использую переключатель и случай, но когда я нажимаю пробел, случай не переключается , но я не понимаю, почему.
код:
package userinterface;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
import javax.swing.JPanel;
import objectgame.Cactus;
import objectgame.Clounds;
import objectgame.EnemiesManager;
import objectgame.Land;
import objectgame.MainCharacter;
import util.Resource;
public class GameScreen extends JPanel implements Runnable, KeyListener {
public static final int GAME_FIRST_STATE = 0;
public static final int GAME_PLAY_STATE = 1;
public static final int GAME_OVER_STATE = 2;
public static final float GRAVITY = 0.1f;
public static final float GROUND = 130;
private MainCharacter mainCharacter;
private Thread thread;
private Land land;
private Clounds clouds;
private EnemiesManager enemiesManager;
private int gameState = GAME_FIRST_STATE;
public GameScreen() {
thread = new Thread(this);
mainCharacter = new MainCharacter();
mainCharacter.setX(50);
land = new Land(this);
clouds = new Clounds();
enemiesManager = new EnemiesManager();
}
public void startGame() {
thread.start();
}
@Override
public void run() {
while(true) {
try {
update();
repaint();
Thread.sleep(30);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
}
public void update() {
mainCharacter.update();
land.update();
clouds.update();
enemiesManager.update();
}
@Override
public void paint(Graphics g) {
g.setColor(Color.decode("#f7f7f7"));
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(Color.red);
g.drawLine(0, (int) GROUND, getWidth(), (int) GROUND);
switch(gameState) {
case GAME_FIRST_STATE:
mainCharacter.draw(g);
break;
case GAME_PLAY_STATE:
clouds.draw(g);
land.draw(g);
mainCharacter.draw(g);
enemiesManager.draw(g);
break;
}
}
public void keyTyped(KeyEvent e) {
}
public void keyPressed(KeyEvent e) {
}
public void keyReleaseed(KeyEvent e) {
switch(e.getKeyCode()) {
case KeyEvent.VK_SPACE:
if(gameState == GAME_FIRST_STATE) {
gameState = GAME_PLAY_STATE;
}
break;
}
}
}
код не полный, но это не должно волновать это. случай переключения должен рисовать в начале только символ, и это происходит, но когда случай переключается, программа должна также рисовать землю и облака, но этого не происходит, как я могу это исправить. Если вам нужны другие классы, просто спросите.