Как создать плавную анимацию с помощью C# Windows forms?

из-за моего школьного проекта я должен создать игру, используя только Windows forms..

Я решил создать 2D гоночную игру. Так что теперь мне нужно переместить изображение машины. Чтобы переместить его, я попытался оживить автомобиль с помощью события KeyDown, однако анимация действительно колеблется.. Есть ли другой способ создания анимации? или можно как-то это исправить? (Для автомобиля я использую PictureBox, который пристыкован к форме, и в его случае рисования я перерисовываю автомобиль в правом окне должностное положение.)

3 ответов


этот пост должен решить ваши проблемы: простая анимация-использование-C-windows-forms

Он подробно описывает, как он обошел анимацию кодирования в форме windows и охватывает некоторые из ваших вопросов.

Если это не решит его, посмотрите, используя некоторые библиотеки XNA, как сказал Фримен.


из деталей, которые вы предоставили, я могу сказать это, если вы хотите создать мини-игру, я бы рекомендовал вам использовать WPF с некоторыми библиотеками XNA, потому что WinForms на самом деле не вырезан, чтобы включить очень импресивный графический опыт, а скорее он благоприятствует созданию простых инструментов GUI. Иногда даже двойная буферизация не очень помогает.


ну вы можете сделать движения-анимации.

        int x = pictureBox1.Location.X;
        int y = pictureBox1.Location.Y;
        if (e.KeyCode == Keys.Right) x += 1;
        else if (e.KeyCode == Keys.Left) x -= 1;
        pictureBox1.Location = new Point(x, y);

чтобы сделать его быстрее, измените x+=1 x - =1 и y+=1 y - =1; на большие числа, такие как y x - =3; так что в этой треске вы вы клавиши со стрелками, но только вправо и влево, потому что вы будете управлять foward жатвы, так что вы только двигаться вправо и влево