Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Движение в перспективе (http://www.flasher.ru/forum/showthread.php?t=93388)

$mival 20.03.2007 14:46

Движение в перспективе
 
Вложений: 1
Сразу хочу извиниться за тему, пользовался поиском. Вроде ничего нет, хотя по любому обсуждалось.
В общем требуется сделать движение игроков на игровом поле в перспективе. Возьмем к примеру одного игрока, одного соперника и поле. Игрок стоит всегда снизу экрана. Когда он передвигается по оси У, он сам стоит на месте а поле двигается у него под ногами. Само движение поля в перспективе программно не движется, а просто есть набор отрендеренных в максе картинок, которые вставлены в клип и переключается в зависимости от передвижения игрока по оси У (осуществляется стрелочками вверх/вниз). Влево/вправо же игрок сам двигается, а сцена стоит на месте. Проблема происходит когда добавляем соперника. Он стоит впереди и тут во всю используется перспектива. То есть при приближении меняется его размеры, скорость движения по Х и У. Когда мы движем игрока по У, сцена двигается (перебор кадров сцены идет) под ногами игрока вместе с соперником. Это мне непонятно как делается. Плюс ко всему ещё соперник может сам передвигаться по полю, что добавляет проблем.

etc 20.03.2007 14:58

http://ru.wikipedia.org/wiki/%D0%9F%...B8%D0%B2%D0%B0

iNils 20.03.2007 15:14

Может помочь.
http://www.flasher.ru/forum/attachme...6&d=1158784102

$mival 20.03.2007 18:50

ага, пригодится :umnik2:
благодарю

$mival 20.03.2007 22:21

Вот только одно осталось загадкой: изменение размеров объекта при приближении/удалении объект к/от горизонта. Это изменение нелинейно, в смысле меняется НЕ прямопропорционально расстоянию.
Т.е. есть к примеру объект, находящийся на горизонте. Мы к нему идём-идём... он сначала практически не увеличивается. Потом начинает увеличиваться все быстрее и наконец видет в 100% размере. Увеличение идет по нарастающей. Вот где бы посмотреть эту зависимость?

etc 20.03.2007 22:43

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

$mival 20.03.2007 22:52

понятненько

$mival 22.03.2007 08:01

Все-таки меня недопоняли :D

Очень наглядный пример здесь (850 Кбайт).
Нарисовал рельсы, как посоветовал __etc.
Там объект движется от дальней стенки, но он движется равномерно, а должен сначала как-то тормозить а по приближению ускоряться!

etc 22.03.2007 13:28

Так равномерно он должен двигаться в пространстве, а не так просто.

$mival 22.03.2007 13:55

в смысле так просто?
У меня равномерно идет наращение _xscale & _yscale от 1 до 100

etc 22.03.2007 14:27

Ну для псевдо перспективы можешь по синусу пустить, нелинейно.

iNils 22.03.2007 14:42

Обычный 3D движок. У объекта Y константа и равна 0.

etc 22.03.2007 15:01

Примерно так: _xscale = 100*(1/(1-z/perspective)), где z — координата z объекта, а perspective подбирается так, чтобы было похоже :)

$mival 22.03.2007 15:57

Цитата:

Сообщение от __etc
Примерно так: _xscale = 100*(1/(1-z/perspective)), где z — координата z объекта, а perspective подбирается так, чтобы было похоже :)

интересная штука. что-то вырисовывается.
А вот про "У": это как? объект всегда прилипший к верху экрана чтоли? :o

vapes 22.03.2007 16:08

вижу у тебя трехмерное зрение не развито

etc 22.03.2007 16:08

Цитата:

Сообщение от $mival
интересная штука. что-то вырисовывается.
А вот про "У": это как? объект всегда прилипший к верху экрана чтоли? :o

Нет, имелось ввиду в пространстве (наверное). Фиксированы X и Y.

vapes, если у тебя развито, то продемонстрируй.

$mival 22.03.2007 16:18

Цитата:

Сообщение от vapes
вижу у тебя трехмерное зрение не развито

если б оно было не развито, то та флешка, на которую я сослался в последний раз показалась бы мне идеалом :D
Просто не хватает кое-каких знаний.

vapes 22.03.2007 19:05

Вложений: 1
Вложение 16823
сам накалякал ,впринципе должно помочь, там нету as и все изменяется прямопропорционально что будет легко для кодирования

$mival 22.03.2007 21:15

Мдя, и после этого у меня трехмерное зрение не развито? :mosking:
У тебя рамка с человечком двигается равномерно (визуально). В реальности же она рядом с экраном движется со скоростью Х, а рядом с горизонтом (ну или противоположная от глаза стенкой комнаты в нашем случае) рамка уже имеет скорость >X по любому.

Цитата:

Сообщение от vapes
Вложение 16823... там нету as и все изменяется прямопропорционально что будет легко для кодирования

Читай с начала топика. У меня камера движется вдоль поля равномерно. Отсюда изменения непропорциональные, т.е. не равномерные.


Часовой пояс GMT +4, время: 03:47.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.