Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 12/27/2012 in all areas

  1. http://jsfiddle.net/SzpwF/3/ Лучше использовать готовые формулы (x = x0 + v0*t + g*t*t/2) вместо интегрирования, так как интегрирование со временем дает заметную ошибку.
    2 points
  2. ball.vy - это скорость мячика по оси Y (т.е. вниз) world.gravity - это гравитация (в реальном мире сила притяжения Земли равна 9.8 метров в секунду в квадрате), для игры и вообще для анимаций это слишком быстро, т.к. там масштабы мира дургие. Поэтому везде (ну может не везде - я в книгах читал) ставят гравитацию от балды. Я поставил 0.9, т.к. это выглядит реалистично. Скорость - это вектор, ускорение - тоже вектор. Получается что скорость мяча в начале анимации это вектор (0, 0), а сила притяжения (ускорение) это вектор (0, 0.9). По правилам сложения векторов нужно сложить их соответствующие компоненты. Т.е. допустим у нас есть 2 вектора - вектор А(x, y) и вектор B(x, y), чтобы их сложить надо сделать так: A + B = (A.x + B.x, A.y + B.y) Нас интересует только движение вниз, поэтому мы на координату X можем забить. Вот и получается, что скорость равна: ball.vy = ball.vy + world.gravity; или короче ball.vy += world.gravity; Ну а world.friction это коэффициент трения. Вообще он рассчитывается по разным формулам в зависимости от того трение о воздух у нас или трение качения или, например, трение скольжения. В целом для игр его тоже можно взять от балды Что я и сделал. Точные формулы расчета трения можно нагуглить - «коэффициент трения» в Google.. На этот коэффициент надо умножить вектор скорости. Сам коэффициент - это не вектор, а скаляр, т.е. просто число. Чтобы умножить вектор на скаляр надо умножить все его компоненты на скаляр: A * number = (A.x * number, B.x * number) Мы помним, что нас интересует только A.y (т.е. ball.vy), т.к. шар по горизонтали у нас не движется. Значит надо вектор скорости умножить на коэффициент: ball.vy = ball.vy * world.friction; или короче ball.vy *= world.friction; Кстати, я напортачил с трением Вот правильные расчеты: http://jsfiddle.net/qgm2G/1/ (если world.friction = 1, то трения нет, чем ближе world.friction к нулю, тем больше трение). Как по мне наиболее реалистично смотрится коэффициент 0.98 UPD: Если дальше углубляться в физику, то можно ввести еще коэффициент упругости шарика. Сейчас я для простоты считаю что он равен 1, т.е. шарик у нас абсолютно упругий (считай резиновый), а не из пластелина. Поэтому упругость я не учитываю.
    2 points
  3. Электронная версия сейчас продаётся в books.ru за ту цену, которую сам назначишь, поэтому можно не заниматься пиратством ради экономии копеек.
    2 points
  4. Вы меня извините за такой непрошеный совет, но вы уверены, что хотите название именно в духе "PR-maker"? Просто я недавно устраивала мозговой штурм в поисках названия и читала кое-какие статьи о нейминге: названия типа Web Management, iConsulting, PR-maker и пр. не очень хорошо запоминаются, не цепляют. А вот если вы назовете себя, например, Фломастер (или англоязычное интересное слово для западной аудитории), то задержитесь в головах. К тому же удобнее будет фирменный стиль к такому названию привязать.
    1 point
  5. Если можете читать по-английски, то вот замечательный туториал, который вам пригодится (он правда для флеша, но под канвас адаптируется очень легко).
    1 point
  6. Great Rash, Спасибо, все теперь понятно. freeneutron, Если решать эту задачу таким способом и, допустим, уже по двум осям с произвольным направлением движения, то при каждом столкновении высчитывается вектор скорости тела (значения Vx и Vy), timestamp заново сбрасывается на Date.now() и пускаем тело по формуле равноускоренного движения с новыми начальными значениями до следующего столкновения. Правильно?
    1 point
  7. Через http://jsfiddle.net ничего нет вроде. Никакого белого. А тут у вас хостинг может что то творит. Тем более он рекламный. У меня вообще 2 дива с рамкой. В IE 1 див. И прекратите писать в блокноте
    1 point
  8. http://jsfiddle.net/qgm2G/ UPD: Возможно я с трением напутал...
    1 point
  9. http://artpolikarpov.ru/2011/09/25/1/
    1 point
  10. Все из той же оперы. БОМ. Вот это вы увидите, если скопируете код в блокнот: Меня все игнорируют?
    1 point
  11. Не знаю, не слишком долго этим занимаюсь.
    -1 points
This leaderboard is set to Kiev/GMT+02:00
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy