2016-09-23 5 views
0

У меня были проблемы с использованиемИмеет ли смысл использовать вход для проигрывателя на отдельном потоке?

Gdx.input.isTouched() 

Моей игры, как Flappy птица, и у меня есть логический под названием alreadTouched.

Я использую этот метод для ввода игрок крана:

if(Gdx.input.isTouched()){ 
    alreadyTouched = true 
}else{ 
    alreadyTouched = false; 
} 

Проблема состоит в том, что это только признание 99% прикосновений. Иногда по какой-то причине он будет пропускать прикосновение. Имеет ли смысл вводить элементы управления в отдельный поток?

+0

Если вы добавите код, в котором используете «ужеТух», мы сможем помочь вам найти настоящую проблему. – IronMonkey

+0

Я нахожу, что использование InputProcessor намного проще и менее подвержено ошибкам, чем пытаться манипулировать булерами и вызывает различные методы isTouched, justTouched и т. Д. – Tenfour04

+0

Я реализовал входной процессор и использовал входной мультиплексор. Странно то, что одно и то же происходит, но только при использовании мультиплексора – XPatStudios

ответ

0

Нет. Это не имеет смысла. Не в вашем случае. Для простой игры, такой как Flappy Bird или большинство игр, вход в отдельный поток не имеет смысла.

Ваша проблема с случайным отсутствием сенсорного ввода не будет решена путем добавления потоков. Проблема заключается либо в вашем физическом устройстве, либо в вашем коде.

Если вы должны были обрабатывать ввод в новом потоке, вы должны проверить вход, тогда вам придется ждать синхронизации в основном потоке для обработки ввода в любом случае. Threading предназначен для тяжелых вычислений, таких как физический расчет/моделирование, которые вы хотите обрабатывать в фоновом режиме.

Смежные вопросы