2013-11-07 7 views
-5

Я разрабатываю карточную игру с OpenGL ES 1.0 в Android. У меня есть два класса GameRenderer и GameLogic. Когда я даю карты игрокам в GameLogic, я устанавливаю переменные в GameLogic, которые используют onDrawFrame для анимации. Поэтому мне нужно остановить код в GameLogic до окончания анимации. Это проблема .. Как остановить выполнение кода?Выполнение кода Android OpenGL

+0

Для справок в будущем: OpenGL 1.0 - это нечто совершенно иное, ему более 20 лет, и никто его не использует! Вы используете OpenGL ** ES ** 1.0 –

+0

Извините .. Да ES .. :-) – Boy80

ответ

0

Похоже, вам необходимо реструктурировать архитектуру приложения. Вместо того, чтобы читать данные из класса GameLogic, вам нужно, чтобы ваш класс GameLogic модифицировал какой-то объект GameData. Как только данные будут сохранены в объекте GameData, вы отправите уведомление или сообщение в свой GameRenderer о том, что данные были изменены. Затем GameRenderer может читать новые данные и действовать соответственно.

Это стандартный шаблон дизайна, называемый Model View Controller.

+0

Спасибо .. В GameLogic есть данные, которые GameRender использует для обновления экрана. Итак, когда я вызываю свою функцию, чтобы дать карты игрокам, мне нужно сначала сделать анимацию, а затем обновить данные для экрана. – Boy80

+0

Трудно ответить на ваш вопрос, потому что есть так мало деталей (поэтому он был опущен несколькими людьми). Кроме того, этот форум не очень подходит для вопросов архитектуры/дизайна. Вы получите лучший ответ и получите больше ответов, если бы у вас был очень длинный вопрос, подробно описывающий, что вы пытаетесь сделать (вы делаете стандартную игру в карточную игру или карточную игру в битву или что-то еще?), И фрагменты кода для частей, на которые вы пытаетесь получить ответы. Как бы то ни было, все, что я могу сказать, - это больше исследований. –

+0

Проблема в том, что мне нужно сделать анимацию перед инструкциями, обновляющими данные о играх. После тестов на анимацию (сколько карточек ...), если я использую Thread.sleep, основная активность прекращается, а также opengl render .. – Boy80

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