2012-05-25 3 views
0

В настоящее время я делаю игру на C#, используя Direct X 9.0. У меня почти все завершено, но у меня проблемы с физикой прыжка. У меня есть переменные, объявленные для координат Y и X.Как сделать прыжок персонажа в C#/Direct X 9.0?

Мне было интересно, был ли простой способ сделать это. Я искал высокий и низкий для ответа, но ответы, которые я нашел, либо неактуальны, либо используют другой язык программирования, такой как XNA.

В настоящее время у меня есть переменная bool, чтобы проверить, было ли нажато W, которое запускает любой код, чтобы заставить его прыгать. Я возился, например.

if (Form1.jump == true) 
{ 
    Playerypos = Playerypos - vel; 
    Playerxpos = Playerxpos + vel; 
    //Form1.jump = false; 
} 

Что плохо работает.

+0

Я уверен, что ребята здесь могут помочь, но, может быть, лучше здесь, так как его игровая специфика: http://gamedev.stackexchange.com/ – WraithNath

+4

'if (Form1.jump == true)' ಠ_ಠ – qJake

ответ

1

Вам нужно немного больше для прыжков, чем для передвижения: вам нужна концепция ускорения.

Обычно, когда вы обнаруживаете нажатой клавишу перехода, вы устанавливаете вертикальное ускорение на некоторое положительное значение. Ваша физическая петля должна быть изменена, чтобы постоянно добавлять ваше ускорение в вашу позицию, а затем добавить гравитацию к вашему ускорению (таким образом, уменьшая ее, а затем поверните ее отрицательно, чтобы отступить назад). Закрепите свою позицию на вашей земле/плоскости/минимальное возможное положение (*), и вы настроены!

(*) Никогда не так просто, как кажется, вам придется реализовать какой-то алгоритм raycasting здесь, потому что вы будете прыгать с большими ионами и может провалиться сквозь землю. Думайте, что box-intersects-line вместо point-in-line.

+0

Спасибо за ваш ответ , он очистил несколько бит вверх. – user1417695

 Смежные вопросы

  • Нет связанных вопросов^_^