HTML5/JavaScript 2.5D - Создание земли в собственной плоскости

Итак, мне действительно интересно начать проект HTML5/JavaScript, который имитирует тип типа 2.5D: http://superflashbros.net/2009/02/22/blue-rabbits-climate-chaos/

Я лично стараюсь держаться подальше от сторонних скриптов и просто держать ядро ​​кода чистым JavaScript. Однако мои знания о тригге не самые лучшие, так что будет самым подходящим способом решения этой перспективы? Я, по сути, хочу игру, сделанную с 2D спрайтами, но наземный (и, возможно, здания, как в флеш-игре) перекошен, чтобы придать ему ощущение 3D. Я не хочу создавать движок "7-го режима" (например, игры SNES, такие как Mario Kart), так как из моего понимания, которое рисует землю в секциях.

Любые советы или ресурсы, которые я должен изучить?

3
задан clicheName 06 июля '12 в 3:52
источник поделиться

2 ответов

Я прошу вас больше узнать об этом, и, как вы знаете, я попытался сделать это, и я достиг хорошего результата, но я остановил этот проект из-за моей новой работы.

В любом случае, вы можете заглянуть в некоторые игровые движки, написанные в javascript для стартеров, вот список известных игровых движков, которые могут вам понравиться:

1- Three.Js

2- GameQuery (плагин JQuery)

3- Изогенный двигатель

Вы также можете проверить это сообщение в блоге для получения дополнительной информации 66 + Open Source JavaScript Game Engine для серьезных разработчиков

Примечание: Я знаю, что вам нравится кодировать свои собственные javascripts и доверять мне, это привычная очень хорошая, но мой совет - попробовать хотя бы один движок Javascript (если вы можете попробовать более одного, это будет хорошо), чтобы увидеть, как работают разные двигатели и как они работают под капотом, что мой друг вдохновит вас, а также поможет вам понять эти двигатели, чтобы даже сделать свой собственный движок (это НЕ невозможно).

Я не говорю, что вы должны стараться как можно больше (это будет явно бессмысленно), но я говорю вам делать небольшие (крошечные, если возможно) игры с двигателем выбора, я хочу получить представление о том, как движки Javascript работают в 2D, затем перейдите на 2.5D или даже 3D, используя технологию WebGL.

5
ответ дан Aamer 08 июля '12 в 8:45
источник поделиться

Я проверил вашу ссылочную игру и понял, что вы подразумеваете под "2.5D". По моему мнению, лучший способ решить эту проблему - создать псевдо-третье измерение, преобразуя координаты x, y объектов. У вас будет функция, которая сделает для вас трансформацию, и вот мое лучшее предположение о примере.

// This function takes in a x- and y-coordinates of an object corner and returns the
// coordinates of the corresponding back corner of an object.
var transform = function(x,y) {
  // The farther the character is from the object, the more skew there would be.
  // Here "char" is your globally recognized game character. If it was not in the scope
  // of the function you'd have to pass it as a parameter.
  var skew = (char.x > x) ? (char.x - x) : (x - char.x);
  var newx = (skew * 0.1); // obviously this would be variable depending on your liking

  // If the object corner is not on the ground (y == 0) then subtract from it value,
  // otherwise add.
  var newy = (y > 0) ? (y - 10) : (y + 10);
};

В моем примере 10 - количество единиц расстояния для изменения y-координаты на. Вот как выглядит ваша примерная игра. Надеюсь, что мой вклад поможет,

Рейган

2
ответ дан reagan 15 июля '12 в 7:17
источник поделиться

Другие вопросы по меткам