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