Ответ: Проблемы с переводом
Бррр - никогда так не делал! Тоесть условно говоря мы пихаем куданибудь в форме Do Loop между ними делаем всё что надо а перед Loop ставим Invalidate()?
А чем нам мешает "перерисовка формы" ? Ну например у меня в программе раз в 70 мили секунд опрашивается клавиатура, раз в 40 проверяется физика а раз в тридцать на форму выводится новая картинка и всем хорошо... |
Ответ: Проблемы с переводом
Нет, никаких циклов в Windows.Forms
у тебя должна быть функция перерисовки окна: PHP код:
Цитата:
|
Ответ: Проблемы с переводом
Я правельно понимаю что речь идёт о Form Events? Из них у меня есть только просто Paint... Хотя скорее всего реч идёт о чём то другом... А если так то получается мы каждый раз когда видим что форме вздумалось перерисоваться застовляем её нанести на себя нужную нам картинку?
|
Ответ: Проблемы с переводом
Да, но используя Invalidate() в конце функции перерисовки OnPaint мы заставляем ее перерисовываться постоянно, тратя на это свободные ресурсы системы для получения максимального количества кадров в секунду.
|
Ответ: Проблемы с переводом
Цитата:
Цитата:
А В это время работают к примеру таймеры Физики и Опроса клавиатуры, а OnPaint втискивается между ними максимально возможное колличество раз?! |
Ответ: Проблемы с переводом
Invalidate() говорит форме, что ее область не действительна и ее нужно перерисовать. И когда она сможет, она ее перерисует.
Вот нашел в интернете довольно старые уроки, но может пригодятся для понятия общих принципов http://progs.biz/directx/direct3d/vb/vb01.aspx |
Ответ: Проблемы с переводом
Огромное спасибо! Вы раскрыли мне глаза на истину! Обязательно перепишу рейдринг на досуге.
Только до сих пор остаётся действительным вопрос о том как заставит VB не закрывать окно об ошиьке после завершения приложения. Проблема сейчас явно не в перерисовке (таймеры с запасом) да и на 6.0 это прикрасно фурычит.В прблесках окна с ошибкой я понял что он зависает на загруске информации однако что по этому поводу сообщает VB непонятно... Так как окно проподает с глаз долой.. |
Ответ: Проблемы с переводом
Цитата:
Если использовать цикл как в первом туторе, то можно рендерить постоянно кадры, а основываясь на времени вызывать методы обновления физики и игровой логики. Пример такого принципа - цикл с твинигом в Blitz3d. Там функция Update вызывается столько раз, сколько нужно для обеспечения выполнения обновления игры например 30 раз в секунду. а все остальное вермя выполняется рендеринг геометрии с интерполяцией по промежуточным положениям. |
Ответ: Проблемы с переводом
Цитата:
|
Ответ: Проблемы с переводом
Про точки вкурсе! Только вот зараза - Оконный режим диркт Х это как раз то с чем я не умею работать.... Мудрый 6.0. выводил ошибку в MSG BoX который не закрывается покане нажмёш - а тут... Пипец...
Чёрт! С точками тоже не помогает! |
Ответ: Проблемы с переводом
Пробуй блоки ловли исключений, вот пример: http://www.homeandlearn.co.uk/NET/nets5p4.html
т.е.: PHP код:
|
Ответ: Проблемы с переводом
Помогло! 1 ошибкой меньше! Только без дебагинга с маркерами и просмотром значений будет туго. Чего компу может нехватать что он не может свернуть(развернуть) приложение?
|
Ответ: Проблемы с переводом
Для сворачивания надо чтобы окно могло выполнять оконные сообщения... попробуй нажимать сочетание клавиш Windows + D для сворачивания всех окон и потом переключения на студию.
Вообще попробуй организовать цикл так, как приведено в туторе по ссылке в посте 41. Там как раз бесконечный цикл и есть вызов Application.DoEvents(), который дает системе возможность обработки сообщений, в том числе и оконных. А я спать пошел. |
Ответ: Проблемы с переводом
До цикла даже не доходит! У меня походу компа на нужды студии не хватает... Сейчас я понял самую гениальную вещ изобретённую человеком MSG Box! Я при помощи него переменные отлеживаю. Ужассс...
Огромный сенкс за прмощ. |
Ответ: Проблемы с переводом
Ну как бы полноэкранный режим - это только маленькая часть возможностей, которые нужно реализовать правильно. Один раз понять в чем проблема, а далее будет все как по маслу. Тестировать конечно надо в оконном режиме и иметь возможность в любой момент перейти в полноэкранный.
|
Часовой пояс GMT +4, время: 12:14. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot