Как сделать так, чтобы тень как 3 перекрывала что-то еще? - PullRequest
1 голос
/ 25 августа 2010

Итак, я портирую игру, которую я запустил в html canvas, чтобы прошить as3.

В этой игре есть танк. Этот танк имеет корпус и башню. Он может вращаться на 360 градусов, двигаться вперед и назад и поворачивать башню на 360 градусов. База танка и башня - это отдельные анимированные изображения.

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

 turret= new turretMovieClip();   
 addChild(turret)

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

var dropShadow:DropShadowFilter = new DropShadowFilter();
dropShadow.distance = 5;
dropShadow.angle = 45;
dropShadow.color = 0x000000;
etc....
this.filters = new Array(dropShadow);

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

Вот изображение, которое я сделал для иллюстрации проблемы: http://i.stack.imgur.com/EJuf3.jpg

Рис # 1 из моей старой игры. Тень правильно отбрасывает себя на резервуар и землю. На Рис. 2 показано, что сделал приведенный выше код. Это дало тень для танка и башни, но это только бросает по земле. Кто-нибудь знает, что я делаю не так? Я думаю, что я мог бы это исправить, создав мастер-класс танков, который затем создал видеоклип танка, а затем видеоклип турели. Это то, как я должен это сделать?

1 Ответ

2 голосов
/ 25 августа 2010

Самое простое было бы начать с пустого Sprite для класса Tank, состоящего из двух отдельных дочерних узлов для базы / башни.Таким образом, вы можете применить две разные тени для них.

   + Tank [Sprite]
   |
   \--+ Base [MovieClip] = Graphics + DropShadow
   |
   \--+ Turret [MovieClip] = Graphics + DropShadow
...