Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Создание полигонального спрайта (http://www.flasher.ru/forum/showthread.php?t=147665)

Vasylbo 10.12.2010 13:26

Создание полигонального спрайта
 
Есть флешка в которой надо рисовать физические объекты. Все рисуется, создается массив точек, в физ движке оптимизируется и тд.. Проблема состоит в том что я не могу создать адекватный спрайт к этому объекту, только контур. А хочется хотя бы внутреннюю заливку объекта, а в идеале текстурку.
Подскажите пожалуйста, может ктото уже имел с этим дело.

Dukobpa3 10.12.2010 13:36

А как рисуется?

Поидее вот так:
Код AS3:

var image:Sprite = new Sprite();
var shape:Shape = new Shape();
 
shape.graphics.beginFill(_color); //начинаем заливать
shape.graphics.moveTo(0, _height);
shape.graphics.lineTo(_width * 0.5, 0);
shape.graphics.lineTo(_width, _height);
shape.graphics.lineTo(0, _height);
shape.graphics.endFill(); // зканчиваем заливать. Если щелей нету, то область зальется.
 
image.addChild(shape);

Здесь у меня рисуется треугольник.

Ну и собственно всё. С текстуркой сложнее, по идее надо из этого шейпа сделать маску и наложить на спрайт текстуры. Но я с масками не игрался ни разу.

bav 10.12.2010 13:36

Код AS3:

var sp:Sprite = new Sprite()// Создаем спрайт
var gr:Graphics = sp.graphics;  // Ссылка на свойство graphics для краткости.
 
gr.lineStyle(3, 0x000000); // Толщина линии – 3, цвет – черный.
gr.beginFill(0xFF0000); // Цвет заливки – красный.
// Рисуем треугольник.
gr.moveTo(point1.x, point1.y);
gr.lineTo(point2.x, point2.y);
gr.lineTo(point3.x, point3.y);
gr.lineTo(point1.x, point1.y);
gr.endFill();

Почитайте про класс Graphics. Там есть метод beginBitmapFill().

-De- 10.12.2010 13:39

http://help.adobe.com/en_US/FlashPla...riangles%28%29

Dukobpa3 10.12.2010 13:43

Круто, у автора теперь есть код двух треугольников)

Vasylbo 10.12.2010 19:51

Спасибо большое всем.
Дело в том что обрисовку делает сам движок (nape), и я думал что он тоже через graphics рисует, а получается просто контур. Поетому даже не пробовал так же делать :)


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

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