В этом тестовом коде:вызовов от метод визуализации один раз (libGDX)
@Override
public void render() {
test();
}
private void test() {
}
Как я могу назвать test();
один раз (не петля)?
В этом тестовом коде:вызовов от метод визуализации один раз (libGDX)
@Override
public void render() {
test();
}
private void test() {
}
Как я могу назвать test();
один раз (не петля)?
Один способ - простой флаг. Просто создайте булево, который подскажет вам, если тест() был назван
boolean isTestCalled = false;
private void test()
{
System.out.println("test!");
}
@Override
public void render(float delta)
{
if(!isTestCalled)
{
isTestCalled = true;
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);
...
И последнее, но не в последнюю очередь - в случае, если вы хотите вызвать тест() точно на старте визуализации - просто переместить его показать() функция. Но я думаю, это не то, что вы хотите сделать, когда создаете такой вопрос.
boolean a = true; общественного недействительными Render() { , если (а) { тест(): а = ложь: } –
Вы должны добавить больше кода. По крайней мере, покажите, что это за класс и что он расширяет. –
Я .. я понял. но я хочу включить этот метод один раз, затем выключить. – Crowni