Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   as3isolib как положить спрайт в проекцию (http://www.flasher.ru/forum/showthread.php?t=172945)

djyamato 20.12.2011 18:44

as3isolib как положить спрайт в проекцию
 
Вложений: 2
Здравствуйте
При использовании IsoSprite, он кладется на сцену не "в проекции" (на скрине)
Как мне положить спрайт "в проекцию" ?
вот мой код:
Код AS3:

addChild(_container);
var _sprite:IsoSprite=new IsoSprite();
var _spriteContent:Sprite=new Sprite();
_spriteContent.graphics.beginFill(0x00ff00,1);
_spriteContent.graphics.drawRect(0,0,100,100);
_spriteContent.graphics.endFill();
_sprite.sprites=[_spriteContent];
_sprite.moveTo(198, 0, -4);
_sprite.setSize(50, 50, 0);
 
box0 = new IsoBox();
box0.setSize(350, 2, 16);
box0.moveTo(200, 0, -2);
box0.styleType = RenderStyleType.SHADED;
box0.fills = _boxFills;
box0.strokes=_boxStrokes;
 
...
 
// попытки инвалидации спрайта для тго чтобы он отрисовался "в проекции"
_sprite.invalidatePosition();
_sprite.invalidateSize();
_sprite.invalidateSkins();
_sprite.invalidateSprites();
 
scene.addChild(_sprite);
scene.render();

Мне нужно чтобы я мог под стенами клсть плоскости разных цветов как на 2м скрине с красным "полом" (тут я использовал isoBox)
может не спрайт надо использовать ?

Silicium 20.12.2011 22:30

Так зеленый спрайт - прямоугольник. Нарисуйте ромб 2:1 и сместите на полуширину влево.

djyamato 20.12.2011 22:46

Цитата:

Сообщение от Silicium (Сообщение 1052714)
Так зеленый спрайт - прямоугольник. Нарисуйте ромб 2:1 и сместите на полуширину влево.

Зеленый спрайт не повернулся в проекции как isoBox, к примеру

Mur4ik 21.12.2011 03:12

Цитата:

Сообщение от djyamato (Сообщение 1052717)
Зеленый спрайт не повернулся в проекции как isoBox, к примеру

Могу ошибаться, но вроде и не должен был. IsoSprite немного другое назначение имеет.

djyamato 21.12.2011 04:01

Цитата:

Сообщение от Mur4ik (Сообщение 1052751)
Могу ошибаться, но вроде и не должен был. IsoSprite немного другое назначение имеет.

Верно-верно. Единственное что "крутится" в этой библиотеке из примитивов это IsoBox

Silicium 21.12.2011 10:31

Что вы имеете ввиду? Разве что-то вообще должно "крутиться"? Это просто изометрический движок, который позволяет расположить экранные объекты в "изометрическом мире", без колдовства и магии. Иными словами - просто реализация сортировки. Вы сами рисуете нужный спрайт в изо-проекции и суете его на сетку.

ivaha83 22.12.2011 17:48

так используйте IsoBox, как в примере с красным полом. Или он чем-то не подходит? А если использовать IsoSprite, то он изначально должен быть нарисован в изометрии.

Котяра 22.12.2011 18:47

Изображение в изо очень легко ложится. Что бывает очень удобно.
На пол: поворот на 45 градусов и затем результат уменьшить по высоте вдвое.
Ну или нечто похожее если надо 2 другие плоскости.
PS
Цитата:

/ попытки инвалидации спрайта для тго чтобы он отрисовался "в проекции"
Инвалидация - это совсем не про то. Это установить флаг isInvalidate в true чтобы сообщить рендереру, что спрайт изменился или сместился и его нужно заново перерисовать.


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

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