![]() |
|
||||||||||
|
|||||
|
Регистрация: Apr 2009
Сообщений: 78
|
Есть задача создать псевдоизометрический вид. Сам подходящим способом нашел для себя поворот на 45 градусов и сжатие по высоте вдвое (как это описано тут: http://xitri.com/2008/10/17/two-step-isometric.html). Только вот чтото не получается у меня никак.
Вот такой код у меня: package src.game { import flash.display.DisplayObjectContainer; import flash.display.Sprite; import flash.events.MouseEvent; public class TileMap extends Sprite { private var map:Array; private var tileW:Number; private var tileH:Number; public static const WALKABLE:Number = 0; private var mapW:Number; private var mapH:Number; private var graphicsContainer:Sprite; public function TileMap(_parent:DisplayObjectContainer) { super(); map = [ [1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 1], [1, 0, 0, 1, 0, 0, 0, 1], [1, 0, 0, 1, 1, 0, 0, 1], [1, 0, 0, 0, 0, 0, 0, 1], [1, 0, 0, 1, 1, 0, 0, 1], [1, 0, 1, 1, 0, 1, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1], ]; tileW = 60; tileH = 60; mapW = map[0].length; mapH = map.length; buildMap(); this.addChild(graphicsContainer); } private function buildMap():void { graphicsContainer = new Sprite(); for (var i:int = 0; i < mapH; ++i) { for (var j:int = 0; j < mapW; ++j) { var tile:Sprite = new Sprite(); tile.name = "t_" + i + "_" + j; tile.x = j * tileW; tile.y = i * tileH; tile.graphics.lineStyle(0, 0x004080); var fillColor:int = (map[i][j] == WALKABLE) ? 0x000000 : 0xFFFFFF; tile.graphics.beginFill(fillColor); tile.graphics.drawRect(0, 0, tileW, tileH ); tile.graphics.endFill(); tile.addEventListener(MouseEvent.CLICK, function(e:MouseEvent) { e.currentTarget.alpha = 0; } ); graphicsContainer.addChild(tile); } } } } } Подскажите, ребят ![]() |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Конверт в конверте.
Контейнер помести в спрайт, контейнер поверни на 45°. Внешний спрайт сожми по вертикали в два раза))
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 78
|
Wolsh, спасибо! С меня тонны нефти
)) |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:57. |
|
|
« Предыдущая тема | Следующая тема » |
|
|