С Новым годом! Форум программистов, компьютерный форум, киберфорум
DirectX
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
169 / 99 / 25
Регистрация: 07.08.2016
Сообщений: 382
Записей в блоге: 1

Подскажите как правильно реализовать движение 2D текстур

28.10.2018, 11:07. Показов 2048. Ответов 3

Студворк — интернет-сервис помощи студентам
Собственно столкнулся с тем, что не знаю как правильно создать движение 2D.

К примеру вывожу по таймеру 30 раз в секунду:
VB.NET
1
2
3
4
5
6
7
8
d3ddev.Clear(Direct3D.ClearFlags.Target, Color.Black, 1, 0)
d3ddev.BeginScene()
sprite2.Begin(Direct3D.SpriteFlags.AlphaBlend)
'sprite1.Draw(texture1, Vector3.Empty, New Vector3(0, 0, 1), Color.White.ToArgb()) 'таким образом
sprite2.Draw2D(texture1, point3, 0, point2, Color.White.ToArgb())' или таким (результат одинаковый)
sprite2.End()
d3ddev.EndScene()
d3ddev.Present()
По другому таймеру к примеру 30 раз в секунду меняю координату X на N пикселей.
VB.NET
1
point2.X=point2.X+1
Если N=1 то еще куда не шло, но с его увеличением картинка размывается.
И с любым N картинка движется с периодическими рывками.

Подскажите как правильно реализовать движение 2D,
чтобы при любой скорости движения картинка не дергалась и не размывалась.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.10.2018, 11:07
Ответы с готовыми решениями:

Как правильно реализовать рандомное движение image
Условие задачи: Расположите на форме таймер и несколько изображений (массив изображений) Разработайте программный код для того чтобы...

Подскажите как правильно реализовать сортировку
Я написал сортировку для выпадающего списка (при выборе определенного пункта из списка, сортируется по выбранному пункту( т.е. полю), а как...

Как правильно реализовать запрос, подскажите пожалуйста
SELECT Arenda_prodaja_kvartir.Raion, Arenda_prodaja_kvartir.Zhiloi_kompleks, Arenda_prodaja_kvartir.Podezd,...

3
61 / 54 / 21
Регистрация: 19.10.2013
Сообщений: 117
31.10.2018, 18:20
1. System.Windows.Forms.Timer очень не точен и имеет опорный интепвал ~15мс.
2. По умолчанию, при инициализации 3D устройства устанавливается синхронизация вывода с частотой кадровой развертки (обычно 60гц).
Все это сказывается на плавности движения объектов.

Можно использовать System.Windows.Forms.Timer как триггер события, а синхронизироваться по кадровой частоте.
Для этого:
установите timer1.Interval = 1;
а при выводе добавьте
C#
1
2
3
4
5
6
private void timer1_Tick(object sender, EventArgs e)
{
   timer1.Stop();
   ...
   timer1.Start();
}
Простой пример:
spm1.zip
Если кадровая частота больше 60гц придется использовать более точный таймер, например System.Diagnostics.Stopwatch
0
61 / 54 / 21
Регистрация: 19.10.2013
Сообщений: 117
02.11.2018, 20:55
Лучший ответ Сообщение было отмечено bbbw как решение

Решение

Тот же пример на vb.net:
spmvb.zip
1
169 / 99 / 25
Регистрация: 07.08.2016
Сообщений: 382
Записей в блоге: 1
09.11.2018, 18:08  [ТС]
KolDub Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.11.2018, 18:08
Помогаю со студенческими работами здесь

Подскажите, как правильно более реализовать функцию изменения свойств кнопки?
Всем доброго времени суток. Есть задачка следующего содержания: нужно уметь отображать, редактировать, добавлять и удалять записи на форме....

Как правильно реализовать доступ во внутреннюю (корпоративную) сеть из внешней и реализовать аутентификацию
Доброго времени суток. Вобщем суть вопроса... есть настроенный в корпоративной среде Sql Server Reporting Service (сервер отчетов) на...

Как реализовать движение в консоле
Реализовать движение двух фигур по горизонтали по встречным направлениям используя ООП.

Как реализовать движение картинки?
Задача такая, выводить 1/4 картинки и под ней текст, далее если человек свайпит на картинке, то есть тянет вниз картинка выезжала дальше. ...

Как реализовать движение камеры?
Как приписать передвижение камеры в openGL? Добавлено через 47 секунд Вот код может понадобится #include "pch.h" ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru