Я пытаюсь сделать игру Астероиды. Моя проблема, которую я имею прямо сейчас, это если вы нажмете клавишу со стрелкой ВВЕРХ, она переместит «корабль» на 10 пикселей вверх. И если вы нажмете клавишу «ВЛЕВО», она повернет «корабль» на 5 градусов влево, вопрос, который я ввожу в игру, когда вы поворачиваете налево или вправо. И затем попытайтесь подняться. Он не будет двигаться в обратном направлении. Он просто переместит повернутый «корабль» на 10 градусов в направлении Y.Астероиды Игра Движение В C#
То, что я собираюсь сделать, - это переменная, называемая направлением, подумайте об этой переменной как о круге с 360 градусами. То, что я пытаюсь сделать, - это каждый раз, когда я нажимаю на стрелку влево, он вычитает 5 из направления, которое начинается с 0 и идет назад от 360 и, таким образом, устанавливает его на 355. Затем я разделил бы 355 на 10 и получал бы 35.5. Затем я разделил бы 10 на 35,5 и получил 0,355. Затем я вычитал 0,355 из 10 (двигаясь вверх по Y). И вычтите его из 0 (перемещение влево в X). Таким образом, я бы двигал 9.645 вверх по Y и перемещал 0,355 влево в X.
Проблема, с которой я столкнулся, - это «корабль» в астероидах. У меня есть Graphics.FillPie, в котором нужны инты для использования в качестве Угол запуска и угол развертки, однако, как вы можете видеть, мне придется работать с удвоениями или плаваниями. Я почти уверен, что это слишком сложно, и я уверен, что есть что-то в 100 раз проще, я что-то думаю по линии линейного алгоритма Брешенема. Если бы кто-нибудь мог помочь, предложив что-то проще или исправить мою проблему, это было бы очень признательно. Заранее спасибо.
tigonometry поможет здесь. Я понятия не имею, как вы придумали свой алгоритм, и его вероятность, что даже если он будет работать в некоторых случаях, он вернет причудливые результаты в общем случае. – ldog