java - 如何在java中更改屏幕状态?
问题描述
我正在尝试通过按 将屏幕状态从 Menu 更改为 PlayState space
,但是当space
被按下时,程序似乎处于某个循环中,因为它一直在播放状态中绘制东西。
这是代码:
public class Main {
public enum ScreenState {MENU, PLAYSTATE, RESET}
static ScreenState screenState = ScreenState.MENU;
static Menu menu = new Menu();
public static void main(String[] args) {
// Setting default canvas
StdDraw.clear();
StdDraw.setCanvasSize(800, 700);
StdDraw.setXscale(0, 800);
StdDraw.setYscale(0, 700);
StdDraw.filledRectangle(0,0,800,700);
while(true) {
switch (screenState) {
case MENU:
menu.drawMenu();
// starts game
if (StdDraw.isKeyPressed(' ')) {
screenState = ScreenState.PLAYSTATE;
}
break;
case PLAYSTATE:
StdDraw.setPenColor(StdDraw.BLACK);
StdDraw.filledRectangle(0,0,800,700);
StdDraw.setPenColor(StdDraw.WHITE);
StdDraw.text(50,680,"SCORE");
break;
}
}
}
}
解决方案
推荐阅读
- php - 未捕获的 ArgumentCountError:函数 wp_unique_post_slug() 的参数太少
- swift - Swift Combine:未来会做异步工作吗?
- java - StaxEventItemWriter 用于吐出带有标题的大型 XML 文件
- django - 对代码进行更改不会反映在 django webapp 上
- vuejs3 - 为什么 toRaw(obj) 保持反应性?
- python - “on_raw_reaction_add”工作但“on_raw_reaction_remove”不返回公会?
- sql - SQL Max 函数返回两个结果,尽管只需要其中一个
- node.js - html-pdf 调整内容以适应 PDF
- linux - 计数器循环不会在期望内递增
- apache-kafka - 使用 SASL_SSL/OAUTHBEARER 的集群中的 Kafka Producer 错误