一次从render方法调用函数(libGDX)

时间:2015-09-16 17:16:59

标签: java libgdx

在此测试代码中:

 @Override
    public void render() {
        test();
    }

    private void test() {
    }

如何一次调用test();(NOT循环)?

1 个答案:

答案 0 :(得分:4)

一种方式是简单的旗帜。只需创建一个布尔,它将告诉您是否调用了test()

    boolean isTestCalled = false;

    private void test()
    {
        System.out.println("test!");
    }

    @Override
    public void render(float delta) 
    {
        if( !isTestCalled )
        {
            isTestCalled = true;
            test();
        }

        ...

你可以将布尔更改为int,并在每次调用test()来限制测试调用次数时增加它。我不喜欢旗帜 - 它会生成意大利面条代码

如果它是C ++,第二个选项是在测试函数中使用静态变量并告诉它应该调用多少次 - 但是这是Java:)。静态仅适用于类,但您仍可以模拟它:

    //even inside your class
    static class Counter
    {
        public static int count = 0;
    }

    private void test(int limit)
    {
        if( ++Counter.count <= limit ) //here you can add something like ...&& limit > 0 to have and option to infinite calls when calling test(-1) for example
        {   
            System.out.println("test!");
        }
    }

    @Override
    public void render(float delta) 
    {
        test(2);

        ...

最后但并非最不重要 - 如果您想在渲染开始时完全调用 test() - 只需将其移至 show()函数即可。但是我想当你创建这样的问题时,这不是你想要做的。