Я надеюсь, что мы все сыграли Zelda: A Link to the Past, пожалуйста, поправьте меня, если я ошибаюсь, но я хочу подражать такому 2D-движению персонажа сверху вниз с оттенком коррекции. Это было сделано в других играх, но я чувствую, что эта ссылка будет легче всего относиться. Более конкретно, вид движения и коррекции, о которых я говорю:
- Плавающее движение, не ограниченное движением, основанным на тайлах, например, Покемон и другие игры, в которых одним касанием панели движения вы перемещаетесь на одну клетку в этом кардинальном направлении. Это плавающее движение должно быть в состоянии достичь диагонального движения.
- Если вы идете на запад и подходите к стене, которая имеет диагональную форму в направлении северо-восток / юго-запад, вы попадаете в движение по юго-западу, даже если продолжаете удерживать левую (запад) на контроллере. Это должно работать для обеих диагоналей, корректирующих в обоих направлениях.
- Если вы находитесь в нескольких пикселях от того, чтобы идти прямо в дверь или коридор, вас корректируют в том, чтобы идти по коридору или по коридору, то есть столкновение с углом заставляет вас толкаться в коридор / дверь.
Я охотился за эффективными способами добиться этого и мне не повезло. Чтобы было ясно, я говорю о движении человеческого персонажа, а не о движении NPC. Доступны ли их ресурсы для такого рода движений? Уравнения или алгоритмы, объясненные в вики или что-то?
Я использую XNA Framework, есть ли что-нибудь, чтобы помочь с этим?