0 / 0 / 0
Регистрация: 10.03.2019
Сообщений: 10
|
||||||
1 | ||||||
Плавное перемещение по координатам13.03.2019, 17:04. Показов 5955. Ответов 9
Метки движение персонажа (Все метки)
Пытался симулировать физику, реализовывал падение с высоты. Столкнулся с тем, что при увеличении скорости объект телепортируется, а мне нужно, чтобы он просто быстрее перемещался, подскажите, как сделать
Добавлено через 1 минуту Код, если нужно
0
|
13.03.2019, 17:04 | |
Ответы с готовыми решениями:
9
Как задать плавное перемещение картинки в PictureBox (или перемещение самого PictureBox) из точки А в точку Б по прямой? Плавное перемещение контролов Плавное перемещение прямоугольника по PictureBox Плавное перемещение картинки по форме |
0 / 0 / 0
Регистрация: 10.03.2019
Сообщений: 10
|
||||||
13.03.2019, 17:41 [ТС] | 3 | |||||
Я понимаю, что возможно с точки зрения физики я делаю что-то не так, но с точки зрения программирования, как мне сделать плавное перемещение так, чтобы с "разной скоростью" оно происходило то быстрее, то медленнее
Добавлено через 24 минуты Подправил код, добавил второй объект
0
|
13 / 11 / 2
Регистрация: 07.03.2019
Сообщений: 29
|
|
13.03.2019, 17:53 | 5 |
Не очень понятно, но тут уже подход не очень. Thread.Sleep(100) замораживает поток и никакие виндовые события не отрабатывают. Нужно сделать Timer с минимальным интервалом, и по событию Tick менять pictureBox1.Top.
Дополню. Timer.Tick может отрабатывать неравномерно, поэтому нужно запоминать время последнего вызова и пропорционально увеличивать сдвиг.
1
|
1514 / 905 / 328
Регистрация: 17.05.2015
Сообщений: 3,418
|
||||||
13.03.2019, 19:40 | 6 | |||||
Сообщение было отмечено LBw как решение
Решение
LBw, можно сделать так. Условно приравняйте 1 м/с к 1 пикс/сек.
Идеально гладко бегать шарик начинает к ~20 пикс/с. Если скорость меньше - увы, перемещать шарик меньше чем на пиксель не позволяют технологии
1
|
13 / 11 / 2
Регистрация: 07.03.2019
Сообщений: 29
|
|
13.03.2019, 19:47 | 7 |
FillEllipse вроде как может принимать float - можно и не попиксельно отображать.
1
|
1514 / 905 / 328
Регистрация: 17.05.2015
Сообщений: 3,418
|
|
13.03.2019, 19:59 | 8 |
xewelus, я имею ввиду на физическом уровне. Вот у меня на мониторе в ширину 1920 точек, т.е. 1920 положений шарика, как мне отобразить больше?) Ответ - никак
0
|
13 / 11 / 2
Регистрация: 07.03.2019
Сообщений: 29
|
|||||||||||
13.03.2019, 20:22 | 9 | ||||||||||
Ну если задать нецелое число, то сработает сглаживание, так что движение будет выглядеть гораздо плавнее.
Добавлено через 1 минуту И кстати для ускорения отображения полезно задавать в Invalidate нужный прямоугольник для перерисовки, чтобы не перерисовывался весь экран. Добавлено через 20 минут Ну и вот еще что стоит прописать, чтобы было по-взрослому:
0
|
1514 / 905 / 328
Регистрация: 17.05.2015
Сообщений: 3,418
|
|
13.03.2019, 21:28 | 10 |
xewelus, ну вообще да, если инкременировать 0.1f и включить все настройки выглядит значительно лучше. Движется плавно.
0
|
13.03.2019, 21:28 | |
13.03.2019, 21:28 | |
Помогаю со студенческими работами здесь
10
Плавное перемещение элемента с контрола на контрол Организовать плавное и медленное перемещение объекта Плавное перемещение (button) из FlowLayoutPanel1 в FlowLayoutPanel2 Как сделать плавное перемещение нарисованной фигуры по форме? Запретить перемещение кнопок к указанным координатам Плавное перемещение картинок в форме Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |