purebasic.info

PureBasic forum
Текущее время: Пт фев 21, 2020 2:48 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: scrolly
СообщениеДобавлено: Чт янв 09, 2020 7:42 pm 
Не в сети
профессор

Зарегистрирован: Сб апр 16, 2011 8:59 am
Сообщений: 256
Благодарил (а): 4 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
История злоключений: написал программу, которая работает. На компомашине стала работать слишком быстро, пришлось добавить Sleep_().
при использовании minifmod таймер не работает - пишу AddWindowTimer, но WindowEvent() не дает такого события.
Ну. естественно, набежали советчики, у которых ничо не работает, написали всякой чуши.

Вопрос в чем: как синхронизировать работу с 60fps ?
и почему таймер не работает в программе?


Вложения:
src.zip [39 KiB]
Скачиваний: 22

_________________
Захотелось мартышки любви со слоном, тут она и лопнула
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: scrolly
СообщениеДобавлено: Чт янв 09, 2020 9:49 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11587
Благодарил (а): 4 раз.
Поблагодарили: 485 раз.
egons писал(а):
пишу AddWindowTimer, но WindowEvent() не дает такого события.
Код:
1
AddWindowTimer(0, 123, 10000)

Точно нужно событие раз в 10 секунд?
Если уменьшить до 100 миллисекунд, событие есть.

В цикле должен быть только один вызов WindowEvent() или WaitWindowEvent().

Не нужно использовать DrawAlphaImage с ScreenOutput(), иначе будет медленная работа. Используйте спрайты если рисование по "экрану".
В данном случае хватит канваса.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: scrolly
СообщениеДобавлено: Пт янв 10, 2020 7:47 am 
Не в сети
профессор

Зарегистрирован: Сб апр 16, 2011 8:59 am
Сообщений: 256
Благодарил (а): 4 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
Точно, заработало.

Со спрайтами незнаком, а будет ли работать прозрачный фон, который есть у картинки?

_________________
Захотелось мартышки любви со слоном, тут она и лопнула


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: scrolly
СообщениеДобавлено: Пт янв 10, 2020 11:26 am 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11587
Благодарил (а): 4 раз.
Поблагодарили: 485 раз.
egons писал(а):
Со спрайтами незнаком
Только лучше использовать канвас.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: scrolly
СообщениеДобавлено: Сб янв 11, 2020 8:34 am 
Не в сети
профессор

Зарегистрирован: Сб апр 16, 2011 8:59 am
Сообщений: 256
Благодарил (а): 4 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
CanvasGadget для OpenGL вроде бы?

Вот эксперимент, не знаю, насколько это быстро.


Вложения:
pbsprites.zip [1.48 KiB]
Скачиваний: 16

_________________
Захотелось мартышки любви со слоном, тут она и лопнула
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: scrolly
СообщениеДобавлено: Сб янв 11, 2020 11:29 am 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11587
Благодарил (а): 4 раз.
Поблагодарили: 485 раз.
egons писал(а):
CanvasGadget для OpenGL вроде бы?
Нет для OpenGL предназначен OpenGLGadget.
CanvasGadget для GDI/GDI+ (Windows). В PB это библиотеки 2D Drawing и VectorDrawing.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: scrolly
СообщениеДобавлено: Сб янв 11, 2020 11:50 am 
Не в сети
профессор

Зарегистрирован: Сб апр 16, 2011 8:59 am
Сообщений: 256
Благодарил (а): 4 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
ясно. спасибо за подсказку, попробую переписать код заново.

_________________
Захотелось мартышки любви со слоном, тут она и лопнула


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: scrolly
СообщениеДобавлено: Сб янв 11, 2020 12:02 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11587
Благодарил (а): 4 раз.
Поблагодарили: 485 раз.
Там переписывать почти ничего не надо. Нужно в первом сообщении выбросить из кода InitSprite(), InitKeyboard(), FlipBuffers() и другие спрайтовые функции (не нужны), заменить OpenWindowedScreen на CanvasGadget и ScreenOutput() на CanvasOutput().

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: scrolly
СообщениеДобавлено: Сб янв 11, 2020 12:29 pm 
Не в сети
профессор

Зарегистрирован: Сб апр 16, 2011 8:59 am
Сообщений: 256
Благодарил (а): 4 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
я запутался '(

с DX9 спрайты работают лучше, чем функции GDI ?

_________________
Захотелось мартышки любви со слоном, тут она и лопнула


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: scrolly
СообщениеДобавлено: Сб янв 11, 2020 12:45 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11587
Благодарил (а): 4 раз.
Поблагодарили: 485 раз.
DX и GDI это не одно и тоже.
Чтобы получить максимальную скорость DX нужно использовать спрайты. Функции из 2D Drawing (LineXY, DrawAlphaImage и т. д.) к DX отношения не имеют и будут замедлять работу. Если простые функции типа рисования линий и отображения текста, практически не снижают скорость, DrawAlphaImage снижает примерно до 2-ух кадров в секунду.
Если используются эти функции лучше перейти на канвас. DrawAlphaImage будет выполнятся намного быстрее.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: scrolly
СообщениеДобавлено: Сб янв 11, 2020 1:14 pm 
Не в сети
профессор

Зарегистрирован: Сб апр 16, 2011 8:59 am
Сообщений: 256
Благодарил (а): 4 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
ясно. Странно, что CanvasGagdet заменит рисование на окне. Попробую на нём порисовать.
Хотя я раньше использовал для GUI.

_________________
Захотелось мартышки любви со слоном, тут она и лопнула


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: scrolly
СообщениеДобавлено: Вс янв 12, 2020 6:27 am 
Не в сети
профессор

Зарегистрирован: Сб апр 16, 2011 8:59 am
Сообщений: 256
Благодарил (а): 4 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
Переделал на канвас, стало хуже. Такое впечатление, что скорость зависит от символов.


Вложения:
iso_.zip [1.62 KiB]
Скачиваний: 16

_________________
Захотелось мартышки любви со слоном, тут она и лопнула
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: scrolly
СообщениеДобавлено: Вс янв 12, 2020 7:11 am 
Не в сети
док
Аватар пользователя

Зарегистрирован: Сб мар 28, 2015 11:06 pm
Сообщений: 192
Откуда: Україна
Благодарил (а): 13 раз.
Поблагодарили: 26 раз.
Пункты репутации: 9
попробуй поменять на
Event = WaitWindowEvent(20)
и
Until Event=#PB_Event_CloseWindow


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: scrolly
СообщениеДобавлено: Вс янв 12, 2020 9:51 am 
Не в сети
профессор

Зарегистрирован: Сб апр 16, 2011 8:59 am
Сообщений: 256
Благодарил (а): 4 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
WaitWindowEvent(20) - нет такого.


с Until был косяк(
спасибо, стало лучше. о5 проморгал(

_________________
Захотелось мартышки любви со слоном, тут она и лопнула


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: scrolly
СообщениеДобавлено: Вс янв 12, 2020 1:26 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11587
Благодарил (а): 4 раз.
Поблагодарили: 485 раз.
Я ведь написал
Пётр писал(а):
В цикле должен быть только один вызов WindowEvent() или WaitWindowEvent().

Нужно
Код:
1
Event = WindowEvent()

заменить на
Код:
1
Event = WaitWindowEvent()

а
Код:
1
Until WindowEvent()=#PB_Event_CloseWindow

на
Код:
1
Until Event=#PB_Event_CloseWindow


_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB