Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   как привязать экран к персонажу (http://www.flasher.ru/forum/showthread.php?t=211274)

delphic 24.07.2015 16:04

как привязать экран к персонажу
 
здравствуйте, столкнулся с таким делом например если тур длинный, с помощью условий сдвигаю экран, а есть ли способ как то привязать экран к герою,например если герой будет падать в низ нужно что бы и экран следовал за ним,и что то непойму как это делать
поделитесь мыслями,кто как делает?

GBee 24.07.2015 16:06

http://xitri.com/2009/07/13/scrollin...cept_hero.html

delphic 30.07.2015 09:30

Цитата:

Сообщение от GBee (Сообщение 1185219)

хммм интересно, но я что то не увидел как там камеру к персу привязать? камера просто ходит по сцене, а как следить?

например можно кодом сдвигать камеру, но это же не привязка а типа программное управление.Можете указать где привязка идет камеры к герою

caseyryan 30.07.2015 09:38

Грубо говоря принцип такой. Персонаж находится в контейнере. Если он движется на 5 пикселей право, то двигаем контейнер на 5 пикселей влево
Код AS3:

// псевдокод
hero.x += speedX;
container.x -= speedX;


delphic 30.07.2015 11:29

Цитата:

Сообщение от caseyryan (Сообщение 1185327)
Грубо говоря принцип такой. Персонаж находится в контейнере. Если он движется на 5 пикселей право, то двигаем контейнер на 5 пикселей влево
Код AS3:

// псевдокод
hero.x += speedX;
container.x -= speedX;


вообщем у меня получается так, есть тур уже нарисованный, в него загружается перс и начнет там ходить
вот так
Код AS3:

this.x += speedX;

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

Tails 30.07.2015 11:49

Камера - это понятие абстрактное, придуманное с целью упрощения восприятия для человека. По сути, камера - это просто матрица или набор свойств трансформаций для конечной отрисовки на экране. Камера указывает на то, как куда и на сколько нужно передвинуть/повернуть конечную картинку относительно экрана.

Пример простейшей камеры:
Код AS3:

class Camera{
    public var x:Number;
    public var y:Number;
}

Тут камера имеет свои x, y, задавая и изменяя которые вы сможете показывать необходимую область игрового мира.

Вы можете сделать так, что-бы камера всегда следовала за персонажем. Просто присваивая x, y камеры x, y, персонажа по ентерфрейму.
Вы можете двигать камеру любым другим способом,плавно за персонажем, на отдельные точки на карте и т.п.
Персонаж в вашем мире вообще не будет знать о существований камеры, как и любой другой объект.

При визуализации игрового мира, вы просто каждый кадр смещаете его на x, y, камеры.

delphic 31.07.2015 08:25

Цитата:

Сообщение от Tails (Сообщение 1185334)

Вы можете сделать так, что-бы камера всегда следовала за персонажем. Просто присваивая x, y камеры x, y, персонажа по ентерфрейму.

так х внутри комнаты у меня идет от 0 и до 600, и как же интересно буду присваивать к камере x если хочу ее на весть экран, то есть 600, тогда это получается у меня камера вообще в одно место улетит а герой в другом будет.

callme 31.07.2015 10:00

Забудьте про камеру.

Делайте так:

Если герой падает, надо героя оставить на месте, а все остальное перемещать вверх.
Если герой летит вверх, надо героя оставить на месте, а все остальное перемещать вниз.

То есть сам герой никуда не перемещается. Перемещается мир вокруг него.

delphic 31.07.2015 10:22

Цитата:

Сообщение от callme (Сообщение 1185357)
Забудьте про камеру.

Делайте так:

Если герой падает, надо героя оставить на месте, а все остальное перемещать вверх.
Если герой летит вверх, надо героя оставить на месте, а все остальное перемещать вниз.

То есть сам герой никуда не перемещается. Перемещается мир вокруг него.

в том то и дело если я передвигаю только мир, тобишь мувиклип в котором находится перс, то у меня герой остается там где нить а мир передвинулся, поэтому приходится двигать мир + героя тоже

Добавлено через 2 минуты
поэтому я и подумал можно ли как то привязать,что бы не было вот этого, удобно же если перс падает камера привязанная полетела с ним
а это приходится писать условия разные,ладно например по х я быстро решил, ну а если прыжек делает герой, или падает,это же .....даже слов нет немогу представить что это за кастылище

callme 31.07.2015 10:39

У меня это всего две строчки.

Код AS3:

world.x = -(hero.x - stage.stageWidth / 2);
world.y = -(hero.y - stage.stageHeight / 2);

А у вас как?


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

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