How to make an Adventure Game / Как создать игру-квест

→There are three idle poses and three animations. The walk-right animation can be flipped in code to give four directions the player can walk: left, right, up down.
0 Имеем три позиции в состоянии покоя и три варианта анимации. Движение вправо может быть повернуто программно в коде для предостапвления четырех направлений в которых игрок может перемещаться: лево, право, вверх и вниз.
→The final step is to render a sprite for the player character and animate that sprite according to the direction the player is moving. The code that moves the character long the path already works out a direction vector that the player is moving so that direction just needs mapping to the art.
0 Последний шаг – это отрендерить спрайт для персонажа и произвести анимацию спрайта в соответстви направления движения, выбранного игроком. Код, который реализует движение персонажа вдоль пути работает по направлению вектора, по которому перемещается персонаж, так что осталось сопоставить это направление с прорисовкой анимации.
→Here's the art that I found on kafkaskoffee.com (I removed the green border in the version I used):
0 Это пример арта, который я нашел на kafkaskoffee.com (я удалил зеленый бордюр в версии, которую я использую):
→ANIMATION
0 Анимация
→5.1.1 If current point on path is the end of the path stop moving the character.
0 Если текущая точка на пути является конечной, то прекратить движение персонажа
→5.1 If so increment current point on path
0 Если верно, сдвинуть текущую точку по пути
→5. Check if the PC is near the current point on the path.
0 Проверить находится ли PC рядом с текущим положением на пути
→4. Add direction * walkspeed on to the pc_position.
0 Добавить направление * walkspeed к pc_postion
→3. Get direction of pc_position to target -> direction
0 Получить направление pc_position к target -> direction
→2. Get position of current point on path -> target
0 Получить позицию текующей точки на пути->target
→1. Get player character position -> pc_position
0 Получить позицию персонажа -> pc_position
→The actual code I'm using is here in the UpdatePath function.
0 Актуальный код я использую здесь, в функции UpdatePath.
→The path is returned as a list of points and the character can be moved along this list. Here's the basic psuedo code to move the character along the path.
0 Путь будет возвращен, как список точек и персонаж сможет перемещаться вдоль этого листа.
→The final step is to take the start and end points, the centres of the polygons the joining edge points and create a graph that can be fed into the A* algorithm.
0 Последнишак взять начальные и конечные точки, центры полигонов и соеденить узловые точки и построить граф, который сможет обеспечить работу алгоритма A*.
→Now we can test if a point is inside a polygon we can check any mouse clicks to make sure the player is clicking in a walkable area. If no polygons are intersected then the character can't possibly move there and the click and be ignored.
0 На данный момент мы можем определить если точка находится внутри полигона мы можем проверить любые клики мыши для того, что бы убедиться, что игрок кликает по зоне, в которой может перемещаться персонаж. Если нет пересекающихся полигонов, то персонаж не может передвигаться в выбранную точку и клик будет поигнорирован.
→The next test we need is the intersection test.
0 Следующая листинг нужен нам для проверки на пересечения.
→I find easy to think of the difference by concave where one of the vertices is inside the polygon. In Chinese and Japanese kanji are used to represent ideas - looking at the following two kanji; guess which means concave and which convex - cool right?
0 Мне кажется что проще представить себе разницу, вогнутые , когда одна из вершин находится внутри полигона. В Китае и Японии канжи используются для представления идеи – посмотрите на две следующих канжи;
Предположите которая из выпуклая и которая вогнутая – круто, да?
→Here's the text to see if a polygon is concave. A polygon here is just a class with a (List _vertices) list of points.
0 Здесь представлен листинг, определяющий, если полигон в конкейве. В данном случае полигон лишь (List _vertices) с набором точек.
→Something like the above code would do the trick but there's still the little question of how to check a point is in a polygon or not. In this case all polygons in the navmesh are convex and this is enforced by the navmesh editor. Convex polygons make testing intersection easier and help to create a nav mesh that's easy to work with.
0 Что-то типа вышеуказанного кода может выполнить трюк с нахождением полигона, но до сих пор остается небольшой вопрос о том, как проверить находиться ли точка внутри полигона или нет. В этом случае все толигоны в навигационно меше являются выпуклыми и это жестким образом заданом в редакторе сетки. Выпуклые полигоны делают тестовые пересечения проще и помогают создать навмеш с которым просто работать.
→A path is made from the player position to where the mouse has clicked. This means given a point (x, y) the nav mesh needs to be able to discover which polygon that point is in.
0 Пусть сториться с позиции игрока и в точку клика мышки. Это значит, что заданначя точка (x, y) навигационного меша должна уметь определять в каком полигоне она находится.
Резюме
Пол:
мужчина
Родной язык:
русский
С нами:
с 14 декабря 2010 г. (5788 дней)
Не является членом клуба.
Деятельность:
51 версия перевода с общим рейтингом 0
Карма: 1 (оценок: 1)
Написать silf личное сообщение