Я новичок в мире libgdx, я разрабатываю бесконечную игру. Мне любопытно узнать, если игрок работает в течение нескольких часов, и его позиция продолжает меняться, скажем, его значение x многократно увеличивается, то что произойдет, если позиция пересечет пределы плавающего максимума. Некоторые из обсуждений предполагают, что нам нужно сбросить координаты через определенные моменты времени http://answers.unity3d.com/questions/491411/best-practices-for-endless-runner-type-games.html. Но я не уверен, как добиться этого в libgdx.
Как сбросить координаты, если они пересекают пределы плавающей запятой в бесконечно работающей игре в libgdx
Ответы (1)
Каким бы ни был ваш метод поддержания уровня «бесконечным» (фактически не используя «бесконечную» память), вы можете связать «сброс» вашего персонажа и положения уровня наиболее удобным образом.
Во многих случаях вашему персонажу даже не нужно «на самом деле» двигаться — уровень может просто двигаться мимо него влево… подобно тому, как люди используют беговую дорожку для бега, но на самом деле они остаются на месте. Уничтожайте части, которые перемещаются за пределы экрана влево, и держите их справа.
В качестве альтернативы, персонаж может бежать, и в какой-то удобный момент вы можете переместить весь уровень и персонажа обратно в исходное положение, и никто не будет мудрее. Просто это должно произойти "все сразу", без физических методов перемещения и для каждой позиции, которую вы сохраняете. На более медленных устройствах, в зависимости от количества объектов, которые вы должны переместить, это может привести к задержке на один кадр... так что используйте с осторожностью.