Java разработка игры с нуля — Радианы и удаляем лишнее — Часть 8

Автор Elena Batratskaya
Java разработка игры с нуля — Радианы и удаляем лишнее — Часть 8

Всем привет.

С вами снова. Виктор курашов и сегодня мы продолжим ты сейчас писать нашу 2D игру на Java прежде чем мы сделаем что-то новое. Я предлагаю немножечко сделать некоторые фикс и потому, что я обратил внимание, что допустим надуть шарик летит немножко не под правильным углом дали под каким-то острым углом всё произошло из-за.

Чего из-за того, что в.

Джаве используется не. Градусы радианы на. То есть если попробуем посмотреть, что у нас. Какое значение у нас принимает синус 45 да. Давайте попробуем синус 45. Давайте посмотрим по идее синус 45 должен быть равен там уже. Чему и косинус 45 то есть квадратному корню из 2 деленное на ногах посмотрим так ли — это соответствует ли действительности то чего мы с вами написали — это в классе плеер у нас находится. Так ну подвигаем под мышкой и так у нас синус 8 с половиной почему, тогда на 80А косинус 0 52 всё происходит потому, что здесь у нас используются не. Градусы, а используются у нас радианы соответственно нам нужна. Градусы перевести в радианы, что мы сейчас сделаем для этого мы используем дополнительную переменную равно так ты тур 1С — это переводит в радианы наш наш угол и теперь давайте посмотрим у нас будет равняться синус и косинус от переменной Angel промахнулся. Давайте Теперь попробуем. Ура до синус и косинус нас теперь совпадают, что и требовалось доказать и так не большой Fix здесь Google. Так ну и соответственно уберём вывод в консоль потому, что нам пока больше не нужен так попробуем работает до работает летает углом под которой нужен отлично следующее, что нам нужно сделать — это тоже небольшой Fix. Как вы помните мы в прошлый раз создавали с вами пулю еда список вопрос в том, что если мы зададимся вопросом сколько у нас получается в списке куда они деваются после того как улетают с экрана. Давайте посмотрим посмотрим какой у нас размер массива пульс сейчас так пока ноль начинаю стрелять по паре массив начинает расти и расти и расти и расти пока я собственно места не прерываю стрельбу. Насте не перестает. О чём — это говорит. Это говорит о том, что у нас с вами увеличилась у нас с вами просто беспрерывно продолжает расти массив. Паскаль точнее список количеством полей, а — это значит, что у нас начинает удлиняться вот эта вот часть то есть на её выполнение нам требуется все больше времени. Давайте посмотрим чтобы не быть голословными Long таймер система на-на-на таймер возвращает. Значение системного времени в nanotime. Пардон вот в наносекундах. Натусь секунда на миллиард и теперь давайте посмотрим вот он нас пробегает пробегает наш весь цикл до обновляет рисует рисует потому, что у него в итоге сколько — это времени занимает Land лабс равно. Давайте будем смотреть конечно не миллиардов секунд до. Давайте будем смотреть в миллисекундах начнем надо разделить на 1000000 и давайте выйдем System Out Print online мы видим на консоль просто посмотрим сколько у нас — это занимает поехали и так вот у нас радостно консоль показывает, что весь цикл игры занимает от 1 до 2 миллисекунд начинаем стрелять скорость прохода увеличивается замедляется требуется то больше то меньше. Но потихонечку она потихонечку растёт да уже 334 так далее там потом вот ты с чем дальше. Мы стреляем тем медленнее у нас обрабатывается наш цикл соответственно к чему — это приведёт, что через 2 минут игры у нас начнутся баги на у нас начнёт лагать то есть. МАЗ проход на обновление нашей нашей картинки станет меньше 24 кадров в секунду и мы будем замечать изменения. Для этого нам нужно с вами. Очистить список того как мы всё вот — это сделали. Всё Обновили надо. Очистить список. Ну давайте где-то в классе буллетс напишем нет дополнений — это будет — это будет ниток назовем его ремонт убрать Public boolean ремонт, что нам в этом методе надо проверить нам в этом методе. Ну давайте так по дефолту мы возвращаем. Фолз и нам нужно посмотреть не улетел. Алина шпуля за экрана. Потому, что если она у нас улетела экран мы можем дальше её судьба и не интересоваться соответственно надо посмотреть где у нас пуль abw.by меньше нуля.. Ну тут она уже точно за экраном True так. Давайте попробуем посмотрим, что у нас получилось соответственно теперь нам нужно у нас есть вот здесь же мы будем их убирать если, что так болен. Каримов равно давай так сделаем нет. ремонт соответственно здесь то есть у нас прошмы прошли метод на посмотрели выпадает ли Y за за экран у нас значит если он попадает в экран Town Ace ремонт становятся труд и мы соответственно проверяем их. Каримов если правда то мы делаем делаем мы удаляем этот эту пулю из списка ремонт мы удалили из списка. Ну и вычеркнуть. Потому, что при удалении при удалении объекта из списка до индекс списка сокращается на этот объект надо счётчик на немножко перевести назад. Давайте посмотрим, что у нас получилось где-нибудь здесь теперь мы будем выводить system.out. Давайте посмотрим сколько у нас остаётся пуль удаляется ли. Ура dataset до 20 дошло может даже наверное быть больше. Ага вот мы опустились у нас 37. А вот, но как пуля уходит соответственно — это допустим не очень страшно было бы на начальном этапе, но у нас же будут ещё Rogue надо будет проверять столкновение пульс врагами да то есть — это будет цикл в цикле. Да и там количество пуль будет на количество врагов и — это время прохождения нашего цикла увеличилась в геометрической прогрессии. Вот вот вот на сегодня как бы на эту на эту серию мы хотели хотелось бы поправить. Вот — это в следующую серию мы.

0 комментариев
0

Читайте также