我是直接从接口调用接口方法,我的意思是没有实现,并且可以正常工作吗?

来源:爱站网时间:2021-09-16编辑:网友分享
这是来自LibGDX框架,我正在调用方法Gdx.input.isKeyPressed(Input.Keys.LEFT);这是Gdx类的相关部分:public class Gdx {// .. public static Input input; ...

问题描述


这是来自LibGDX框架,我正在调用方法

Gdx.input.isKeyPressed(Input.Keys.LEFT);

这是Gdx类的相关部分:

public class Gdx {

    //..
    public static Input input;
    //..
}

以及输入的相关部分:


public interface Input {

    //..
    public class Keys { //..
    }
    //..
    public boolean isKeyPressed (int key);
    //..

}

最糟糕的是,它正在工作!!如果我按下向左箭头,则返回true。

我不明白为什么:(好像我在调用没有实现的接口方法。

帮助我

如果有人愿意,我将保留两个类的源代码的链接:

https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/Gdx.java

https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/Input.java

思路:


source code

/** Environment class holding references to the {@link Application}, {@link Graphics}, {@link Audio}, {@link Files} and
 * {@link Input} instances. The references are held in public static fields which allows static access to all sub systems. Do not
 * use Graphics in a thread that is not the rendering thread.
 * 

* This is normally a design faux pas but in this case is better than the alternatives. * @author mzechner */ public class Gdx { public static Application app; public static Graphics graphics; public static Audio audio; public static Input input; public static Files files; public static Net net; public static GL20 gl; public static GL20 gl20; public static GL30 gl30; }

因此您可以看到文档说,此类包含对ApplicationGraphicsAudioInputinstances的引用。但是,如何以及在何处实施它们?

LibGDX知道它正在运行的设备类型,并选择相应地实现,例如,在Input实现的情况下,如果我们在Android设备上运行,则可以使用Input实现:AndroidInput

而且所有这些都是在幕后自动为我们完成的,因此我们将更多精力放在制作出色的游戏/应用程序上。

上一篇:在Eclipse中进行Java开发时,术语“无头”是什么意思?

下一篇:从一系列用户输入中分割字符串

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载