Создавать светлячков в Javascript? - PullRequest
0 голосов
/ 12 сентября 2009

Я хочу создать несколько случайно летающих объектов в 3D-игре. Вы можете представить их как светлячков. Теперь есть несколько задач, которые можно с ними сделать, включая:

  • Они обычно летают случайно (конечно).
  • Они могут улететь или улететь в некоторых условиях.

Я должен написать немного Javascript, чтобы делать эти вещи, но я не знаю, как это сделать. Вы можете мне помочь? Большое спасибо!

РЕДАКТИРОВАТЬ: Я думаю, мне понадобятся эти функции:

function Fly()
{
   //control the gameObject to fly randomly
}

function FlyAway()
{

}

function FlyBack()
{

}

Ответы [ 4 ]

1 голос
/ 12 сентября 2009

Я бы посоветовал вам взглянуть на тег canvas , но тогда он не будет работать в IE, так как я не знаю, будут ли 3D-эффекты работать на excanvas .

Это дает вам рисованную поверхность для создания графики.

Возможно, вам понадобится написать собственные примитивные функции для графики, но это очень выполнимо.

EDIT: вам нужно будет использовать объектно-ориентированный javascript для каждой из ваших светлячков, что поможет вам перемещать каждого из них в каждом кадре.

Если вы покажете свою попытку рисовать графику, вы можете получить дополнительную помощь.

0 голосов
/ 12 сентября 2009

Мой подход будет

  1. случайным образом создайте уравнение x / y (может быть из заданного набора, если вы не знаете, как это на 100% рандомизировать).
  2. Решите, случайно, если вы идете по х или Y.
  3. определите количество шагов, которые вы делаете на оси, которую вы выбрали в шаге 2.
  4. переместите элемент в соответствии с х / у, полученным из уравнения на шаге 1.
  5. Когда вы закончили перемещать все шаги (количество шагов указано в шаге 3), вернитесь к шагу 1. В цикле.
0 голосов
/ 12 сентября 2009

Я сделал библиотеку абстракций, которая может помочь здесь:

DP_PanelManager

Библиотека делает движущиеся объекты довольно простыми - в нижней части страницы есть пример под названием «Бесполезная анимация» - это в основном шахматная доска, где каждый квадрат произвольно перемещается, изменяет размер и изменяет непрозрачность.

Что-то в этом роде с меньшим количеством панелей и небольшой математикой для более плавного перемещения (что-то вроде , это должно быть достаточно легко изменить) должно приблизить вас.

Компонент также имеет упрощенные функции для обнаружения столкновений и расстояния между панелями (с опорой - функция скажет вам, насколько далеко расположены две панели И в каком направлении они лежат).

Надеется, что это даст вам старт.

0 голосов
/ 12 сентября 2009

Столько, сколько я ненавижу потворствуя использованию Flash, это действительно звучит как работа Flash.

Однако, если вы настаиваете на использовании JavaScript, я бы пролистал некоторые эксперименты Chrome для 3D-примеров (w / canvas): http://www.chromeexperiments.com/

...