Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
3 / 7 / 1
Регистрация: 30.09.2014
Сообщений: 61
1

Тормозит поток, обрабатывая игровую физику

30.09.2014, 12:00. Показов 3299. Ответов 46
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В общем, такая проблема:
Пишу простенькую игру. Для обработки физики создал отдельный поток. Графика рисуется на форме Канвами в непрерывном цикле. пока запускаю в дельфи все прекрасно работает. но стоит только открыть игру как самостоятельное приложение физ. поток начинает выполняться оч. медленно. И получается слоу мо). Не взирая на приоритет потока. Смена приоритета не чего не изменила. Хотя иногда (очень редкий случай) запускается нормально и не глючит. Помогите пожалуйста решить проблему, ато я голову сломал в чем проблема!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.09.2014, 12:00
Ответы с готовыми решениями:

Дополнительный поток тормозит главный
Всем здравствуйте. Вот код, использующий работу нескольких потоков: Public Class Form1 '...

Нажатие кнопки тормозит фоновый поток
Здравствуйте! Есть приложение Windows Form на C# (visual studio 2010) с одной кнопкой (функция...

считать только последнюю строку из файла не обрабатывая другие
Можно как-то считать только последнюю строку из файла не обрабатывая другие...то-есть просто как-то...

Обращение к переменной одной формы, обрабатывая событие на другой форме...
Я сделал в гриде столбец селект. При нажатии на кнопку, я сохраняю индекс выбранного ряда в...

46
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
10.12.2014, 11:25 41
Author24 — интернет-сервис помощи студентам
Вобщем основные подозрения у меня пали на Sleep, т.к. тормозить там больше нечему, а он никому не обещал соблюдать заданный интервал.
Искал чем бы его заменить и наткнулся на timeBeginPeriod.
Добавил на создание формы:
Delphi
1
timeBeginPeriod(1);
на уничтожение:
Delphi
1
timeEndPeriod(1);
и тормоза пропали.

Проверь у себя:
Вложения
Тип файла: rar VoleyTron11.rar (657.6 Кб, 5 просмотров)
0
пофигист широкого профиля
4735 / 3168 / 860
Регистрация: 15.07.2013
Сообщений: 18,255
10.12.2014, 11:42 42
Цитата Сообщение от FIL Посмотреть сообщение
Поделишься?
Собственно уже и нечем делиться.
Цитата Сообщение от FIL Посмотреть сообщение
наткнулся на timeBeginPeriod

Delphi
1
timeBeginPeriod(1);
Тем самым ты ускорил работу планировщика потоков и игрушка ускорилась. Предполагал что "тот будильник" ТС делал нечто аналогичное.
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
10.12.2014, 12:01 43
Разобрался:
Будильник использует MediaPlayer, который и задает мин. период для своей работы.
Кинул его в игрушке на форму и тормоза также исчезли.
Вероятно Дельфи тоже при старте меняет эту настройку.
1
3 / 7 / 1
Регистрация: 30.09.2014
Сообщений: 61
10.12.2014, 19:48  [ТС] 44
БлииН!!!! Fil спасибо огромное!!!
0
пофигист широкого профиля
4735 / 3168 / 860
Регистрация: 15.07.2013
Сообщений: 18,255
11.12.2014, 03:00 45
Цитата Сообщение от Infernalboy Посмотреть сообщение
БлииН!!!! Fil спасибо огромное!!!
Не забывай всё-таки вызывать timeEndPeriod по выходу из своей игрушки.
Бо timeBeginPeriod это всё-таки некий костыль, который идёт вразкосяк с обычной работой ОС Windows.

Добавлено через 14 минут
И хуже всего, что доподлинно непонятно что именно делает этот костыль.
0
3 / 7 / 1
Регистрация: 30.09.2014
Сообщений: 61
11.12.2014, 21:57  [ТС] 46
Спасибо, Я уже покурил че к чему и с чем едят. это изменение системного таймера, ну и его возврат в режим по умолчанию. если не вернуть ничего смертельного не произойдет, но глючить будет.
0
3 / 7 / 1
Регистрация: 30.09.2014
Сообщений: 61
18.03.2015, 20:25  [ТС] 47
Всем привет! Я закончил игрульку. Вот хочу поделиться. Спасибо за помощь.
В игре:
4 уровня сложности AI
режим на двоих.
Статистика игр.

Сайтик игры на юкозе

в приложении инсталлятор.
Миниатюры
Тормозит поток, обрабатывая игровую физику  
Вложения
Тип файла: rar VT setup.rar (5.54 Мб, 4 просмотров)
0
18.03.2015, 20:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.03.2015, 20:25
Помогаю со студенческими работами здесь

NumericUpDown обрабатывая событие ValueChanged, после нажатия кнопок прибавить/убавить на единицу, выдает старое значение
Добрый день. Возникла следующая ситуация, при нажатии на стандартную кнопу numericUpDown мне...

атака на физику?
Может не по теме, но кто что думает о многочисленных задачах от нескольких участников в последнее...

Сочините физику
В играх, например, тоже есть физика. Но кто сказал,ч то она должна соотвествовать реальности? Мир...

Сочините физику
Сочините, пожалуйста, непротиворечивую физику на следующих положениях: 1. Скорость света конечна и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
47
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru