按[enter]开始游戏,没有错误

时间:2015-09-21 08:57:41

标签: java greenfoot

我正在努力获得一个功能,当你按回车键时,你开始游戏,但它不起作用。没有错误。 我已经按照教程。

这是我的代码:

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);
    }
}

3 个答案:

答案 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
        }
    }
}