Проблема с быстрым перемещением Изображения
Вложений: 1
Задача: цепляем изображение Курсором и перетаскиваем.
Проблема: Image отстает при "быстром" перемещении курсора, а если сказать точнее - нужно передвигать оооочень аккуратно. Кто знает как решить проблему? Вот простой пример: Код:
Graphics 800, 600 |
Ответ: Проблема с быстрым перемещением Изображения
Никак. Указатель мыши обновляется и рисуется отдельно от остальной графики и ГУИ в Винде. Он рисутеся чуть не прямо в видеопамять.
|
Ответ: Проблема с быстрым перемещением Изображения
Врет. Попросту запоминаем, если MouseHit() и мышь пересекает картинку, запоминаем координаты (относительные) щелчка+Переменную Var в true, потом в цикле
if(MouseDown() and Var) координаты картинки=кординаты мыши-относительные координаты |
Ответ: Проблема с быстрым перемещением Изображения
Используй фантазию, на блице многое сделать можно.
Код:
Graphics3D 800, 600, 32, 0 |
Ответ: Проблема с быстрым перемещением Изображения
|
Ответ: Проблема с быстрым перемещением Изображения
Да тут над всеми кроме сквида можно ржать, за хардварным курсором никогда неуспеть.
|
Ответ: Проблема с быстрым перемещением Изображения
Цитата:
pax да, что-то пропустил пару лишних команд, когда правил код. Сейчас исправлю. |
Ответ: Проблема с быстрым перемещением Изображения
RBK спасибо, код то что надо.
Фантазии нет, потому и обращаюсь к "фантазерам". |
Ответ: Проблема с быстрым перемещением Изображения
Обращайся конечно, здесь всегда есть люди способные ответить на сложный (или не очень сложный) вопрос.
Фантазию надо развивать, она важный элемент творчества. |
Ответ: Проблема с быстрым перемещением Изображения
Как вариант - отключить виндовый курсор и нарисовать свой собственный.
|
Ответ: Проблема с быстрым перемещением Изображения
Цитата:
(см. код в первом посте, курсор уже отключен и нарисован собственный) |
Ответ: Проблема с быстрым перемещением Изображения
Цитата:
А если по делу то как ты считаешь, вычисление скоростей мышки по X и Y происходит в тоже самое время как ты желаешь узнать координаты мышки, или всёже немного раньше? Правильным будет по зажатию мышки выставлять флаг указывающий что начан процес Drag&Drop запоминать начальное положение картинки и курсора. Далее рисовать курсор по координатам, а картинку по координатам расчитываемым по формуле: new_image_x = last_image_x + (current_cursor_x - last_cursor_x) и аналогично для y. По отпускании мыши мы можем провреить допустимость такого перемещения и если надо отменить его (просто востановив положение картинки по предварително сохраненым координатам), или скорректировать и утвердить полученные координаты по выше приведенной формуле в качестве текущих. Касаемо твоего кода, можно попробывать тупо вычислять новое положение картинки после рисования курсора по координатам. Хотя асинхронность изменения координат мыши непозволит достигнуть требуемой синхронизации без фиксации координат в переменных и вычисления скоростей перемещения на их основе). |
Ответ: Проблема с быстрым перемещением Изображения
Цитата:
Давай разберем код вместе, если запустить и посмотреть не хочешь: Цитата:
Цитата:
speed_cursor_x=speed_cursor_x+(current_cursor_x - last_cursor_x) вот както так работает MouseXSpeed() Цитата:
P.S. SBJoker ты сообщай кому пишешь ответ, а то возможны такие недоразумения.(в ответе ничего менять не буду, пусть будет комментарием к коду, пост№4) |
Ответ: Проблема с быстрым перемещением Изображения
|
Ответ: Проблема с быстрым перемещением Изображения
:)
Ладно, на вопрос темы мы все ответили, новых вопросов не было: тему можно закрывать |
Часовой пояс GMT +4, время: 20:03. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot