|
|
||||||
Игра Lines (Линии/Квадраты). Команда sleep "перекрывает" промежуточный вывод изображений21.09.2020, 22:47. Показов 1707. Ответов 8
Шар при выполнении хода должен перемещаться по пути из клетки в клетку делая задержку для отображения (так задумано), но по факту - задержка продожительностью равная сумме всех задержек в каждой клетке и сразу вывод конечного результата. Псевдоанимация не реализуется.
(строки 65, 231, 237) Кликните здесь для просмотра всего текста
0
|
||||||
| 21.09.2020, 22:47 | |
|
Ответы с готовыми решениями:
8
Sleep внутри функции - перекрывает выполнение предыдущих строк Игра 2048: заменить квадраты с цифрами на квадраты с картинками |
|
80 / 33 / 10
Регистрация: 14.06.2019
Сообщений: 516
|
|
| 22.09.2020, 07:29 | |
|
Читаю ваш код, пока могу посоветовать использовать перечисления (enums)
Добавлено через 3 минуты Зачем вы определяете процедуру рисования клетки прямо в коде? Добавлено через 7 минут Задержка есть. Она отвратительно неудобная, но она есть. Если не верите - увеличьте время задержки в десять раз
0
|
|
|
|
||||||
| 22.09.2020, 11:32 [ТС] | ||||||
|
Упрощаю вопрос следующим кодом:
При запуске программы sleep в процедуре MoveBall работает как и должно, но при дальнем вызове MoveBall из MouseDown, sleep начинает тупить, вернее не он а вывод изображения без пауз как при старте.
0
|
||||||
|
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
||||||
| 22.09.2020, 11:59 | ||||||
|
Вы думаете что каждый вызов
MouseDown будет в новом потоке? Почитайте на досуге про обработку сообщений винды окнами.Ну, в кратце - есть один поток, который находится в замороженном состоянии пока не получит сообщение от винды. Тогда он обрабатывает это сообщение, вызывая обработчики ивента, соответствующих типу сообщения. И затем возвращается в исходной состояние. В случае WF и WPF - поток обработки сообщений ещё может обрабатывать сообщение, просящее побыстрее выполнить пользовательский код из текущей программы. В WPF такой код суют в Dispatcher.Invoke, а в GraphWPF раньше была процедура Invoke, но сейчас её переименовали в Redraw.А переименовали её потому, что код выполняющийся в потоке обработки сообщений не даёт выполнятся всему остальному коду, в том числе перерисовке окна. Таким образом основное применение Redraw - изменять несколько вещей в окне одновременно.И ваш код в обработчике OnMouseDown работает будто он весь находится внутри вызова Redraw. Если вам надо начинать новое действие, параллельное всему остальному - создавайте новый поток.Добавлено через 5 минут Да и на будущее - кидайте минимальный код сразу. Я бы ответил ещё когда вы первый раз запостили, но разбираться в том, что вы имеете в виду было лень, поэтому я тупо оставил вкладку с этой темой открытой. Ну и есть большая вероятность что вы бы сами догадались, если бы нашли прям самый минимальный код, вроде такого:
0
|
||||||
|
|
||||||||||||
| 22.09.2020, 13:45 [ТС] | ||||||||||||
Добавлено через 28 минут Я так понимаю это имелось в виду?
0
|
||||||||||||
|
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
||||||||||||
| 22.09.2020, 14:45 | ||||||||||||
Сообщение было отмечено canadamoscow как решение
РешениеНо под потоками я имел в виду System.Threading.Thread, то есть потоки выполнения. Один поток выполнения может выполнять только 1 кусок кода одновременно.Поток создаётся конструктором и начинает выполняться когда вы вызовете метод .Start .При чём как только .Start вызван - новый поток оказывается полностью независимым от потока, вызвавшего .Start.То есть если вы запустите новый поток в обработчике OnMouseDown - поток окна сможет дальше и обрабатывать новые сообщения (как следующие клики мышкой), и перерисовываться.
1
|
||||||||||||
|
|
||||||
| 23.09.2020, 18:22 [ТС] | ||||||
|
Lines на PascalABC.NEt (GraphWPF)
Кликните здесь для просмотра всего текста
1
|
||||||
|
0 / 0 / 0
Регистрация: 20.11.2020
Сообщений: 124
|
|
| 14.06.2021, 17:33 | |
|
Помогите пожалуйста, сделать код чуть меньше, не на 300 строк. Прошу помощи
0
|
|
|
80 / 33 / 10
Регистрация: 14.06.2019
Сообщений: 516
|
||||||||||||
| 15.06.2021, 06:34 | ||||||||||||
|
Добавлено через 3 минуты Если вас интересует именно уменьшение количества строк, то можете две строки соединять в одну:
0
|
||||||||||||
| 15.06.2021, 06:34 | |
|
Помогаю со студенческими работами здесь
9
Игра Lines Игра Lines Игра Lines Игра Lines Команда задержки Sleep Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|