Плавная графика в C# (Windows Forms)

249
12 сентября 2017, 06:50

Пишу свой аналог игры osu!Catch the beat. Суть игры в том, что нужно ловить падающие объекты (ну для наглядности лучше загуглить игру). Графику отрисовываю на PictureBox. Есть список объектов (ну которые нужно ловить) и в событии таймера перемещаю их так:

foreach(fruit fr in f) //fruit - это класс того самого объекта
// f - список объектов
{
     fr.move();
     fr.draw(ref g);
     //g - это Graphics, созданный из PictureBox
}

Функции move() и draw() выглядят так:

public void move()
{
     p.Y += speed;
     //где p - это Point, задающий положение объекта
}
public void draw(ref Graphics g)
{
     g.DrawImage(image, p);
     //image - картинка объекта (находится в данных класса)
}

Проблема вот в чем. Интервал в таймере стоит 1ms. Если выставлять медленную скорость(конкретней - переменную speed ~ 20-30) - да, будет плавно. Но если поставить её больше (скажем 100) - то понятное дело плавность исчезнет, поскольку перемещение за раз происходит аж на 100 пикселей.

И вот как добиться нужной скорости, при этом не теряя плавность?

READ ALSO
Ошибка 404 kendoui

Ошибка 404 kendoui

Добрый день! Приложение на локальном компе работает идеальноНо на IIS 8 ошибка вылезает типа:

319
Обрезание строки в c#

Обрезание строки в c#

ЗдравствуйтеЕсть вот такая вот строка:

307
Не отображается картинка в ToolbarItem (Xamarin Forms)

Не отображается картинка в ToolbarItem (Xamarin Forms)

Вместо Name = "Корзина" Необходимо вставить картинку из пути imageResourceExtensionImages

278
Получение значения параметра

Получение значения параметра

ЗдравствуйтеВручную вызываю в коде программы обработчик события dropdownlist и передаю туда параметры

301