我正在努力获得一个功能,当你按回车键时,你开始游戏,但它不起作用。没有错误。 我已经按照教程。
这是我的代码:
import greenfoot.*;
/**
* Write a description of class Menu here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Menu extends World
{
/**
* Constructor for objects of class Menu.
*
*/
public Menu()
{
// Create a new world with 600x400 cells with a cell size of 1x1 pixels.
super(800, 500, 1);
prepare();
}
public void start()
{
{
if(Greenfoot.isKeyDown("ENTER"))
{
MinionWorld MinionWorld= new MinionWorld();
Greenfoot.setWorld(MinionWorld);
}
}
}
/**
* Prepare the world for the start of the program. That is: create the initial
* objects and add them to the world.
*/
private void prepare()
{
Controls controls = new Controls();
addObject(controls, 300, 100);
controls.setLocation(175, 50);
}
}
答案 0 :(得分:0)
您的代码检查运行时是否按下了Enter按钮。您应该使用KeyListener来捕获'Enter'按下的事件。如果您没有使用GUI,则只需使用扫描仪并等待用户按Enter:
Scanner scanner = new Scanner(System.in);
scanner.nextLine();
这将等到用户按Enter键。
答案 1 :(得分:0)
if(Greenfoot.isKeyDown("ENTER"))
将此行更改为
if(Greenfoot.isKeyDown("enter"))
Enter的键名是“输入”所有小型大写字母。
答案 2 :(得分:0)
现在使用您的实际代码,当您调用start()时,它正在检查ONCE,当您调用start()时,如果用户按下enter键。
你可以做的一件事是将你的start方法的代码放在while循环中,这将使它检查用户是否一直按下enter,当条件满足时,你可以将while循环中断结束开始方法。
以下是代码示例:
public void start()
{
while(true){
if(Greenfoot.isKeyDown("ENTER"))
{
MinionWorld MinionWorld= new MinionWorld();
Greenfoot.setWorld(MinionWorld);
break; // Ends the loop
}
}
}