在此测试代码中:
@Override
public void render() {
test();
}
private void test() {
}
如何一次调用test();
(NOT循环)?
答案 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()函数即可。但是我想当你创建这样的问题时,这不是你想要做的。