![]() |
|
||||||||||
|
|||||
|
Надобно мне нарисовать звездное небо, да чёбы красивое было - ну типа скопления малюпусеньких звёздочек были, и большие тоже присутствовали, чуть-чуть разных цветов и размеров. Нарисовал все это руками (задолбался конечно) - ролик увеличился на 20 кб. Это критично. Решил попробовать прикладным программным интерфейсом рисования убить зверя, намного удобнее будет. Все там нашел - и прямые и кривые и заливка такая-сякая, а точки нету!
this.lineStyle(1, 0xFFFFFF, 50); this.moveTo(0,0); this.lineTo(0,0); Этот код рисует дулю, полупрозрачную ![]()
__________________
Краткость - сестра таланта, если она не единственный ребенок в семье |
|
|||||
|
Нашел оригинальное решение:
this.lineStyle(1, 0xFFFFFF, 100); this.moveTo(0,0); this.lineTo(0.1,0.1); А существуют ли не оригинальные? И еще... Уменьшить тольщину линии меньше 1 можно? this.lineStyle(0.5, 0xFFFFFF, 100) эквивалентно this.lineStyle(1, 0xFFFFFF, 100);
__________________
Краткость - сестра таланта, если она не единственный ребенок в семье |
|
|||||
|
[+1.3 05.04.09]
|
Вот те функция рисует пиксель задоного радиуса, а нет диаметра
минимальный диаметер .8 , с центром в пересичении деоганалей. Во флеш нет встроеной функции точки , да она и не нужна, так же как и circle и squareObject.prototype.pointTo = point;
function point(x, y, rgb, alpha, diameter) {
m = diameter/2;
this.lineStyle(0, 0x000000, 0);
this.beginFill(rgb, alpha);
this.moveTo(x-m, y-m);
this.lineTo(x+m, y-m);
this.lineTo(x+m, y+m);
this.lineTo(x-m, y+m);
this.endFill();
}
for (i=0; i<200; i++) {
_root.pointTo(random(300), random(300), 0xFFFFFF, 100, 1);
}
__________________
Бойтесь китайцев, компы приносящих! |
|
|||||
|
Не оригинальных способов, скорее всего, нет, но чтобы ролик не увеличивался, сделай звёздочку символом и дублируй его N раз.
Ели хочешь поизвращаться можешь сделать это программно: for (k=1; k<1000; k++) { newname++; duplicateMovieClip("_root.star", newname, newname); setProperty(newname, _x, random(500)); setProperty(newname, _y, random(500)); } ![]()
__________________
O >< <3 > < Q >< |
|
|||||
|
Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
|
Брось этот код в первый фрейм пустого мувика. Это все будет весить меньше килобайта.
this.createEmptyMovieClip("StarSky", ++depth)
with (StarSky) {
colors = [0x000033, 0x000066];
alphas = [100,100];
ratios = [0, 100];
matrix = {a:0, b:450, c:0, d:300, e:0, f:0, g:0, h:300, i:0};
beginGradientFill("linear", colors, alphas, ratios, matrix);
lineTo(550,0); lineTo(550,400); lineTo(0,400)
endFill()
}
StarSky.createEmptyMovieClip("Star0", ++depth)
with (StarSky.Star0){
beginFill(0xFFFFFF,100)
lineTo(1,10)
lineTo(0,20)
lineTo(-1, 10)
endFill()
}
for(i=1; i<150; i++) {
duplicateMovieClip(StarSky.Star0,"Star"+i, ++depth)
StarSky["Star"+i]._yscale = 10
StarSky["Star"+i]._alpha = 100-random(50)
StarSky["Star"+i]._x = random(Stage.width)
StarSky["Star"+i]._y = random(Stage.height-150)
}
StarSky.Star1._x=StarSky.Star0._x;
StarSky.Star1._y=StarSky.Star0._y;
StarSky.Star1._xscale=500;
StarSky.Star0.onEnterFrame = function(){
with (StarSky.Star0){
if (!flag) {
_root.StarSky.Star1._alpha=_alpha-=10
if(_alpha<0) {flag=true; _root.StarSky.Star1._x=(_x = random(Stage.width/2)); _root.StarSky.Star1._y=10+(_y = random((Stage.height)/3))}
}else{
_root.StarSky.Star1._alpha=_alpha+=10
if (_alpha>100) {flag = false}
}
}}
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный. (S.Wizard) |
|
|||||
|
[+1.3 05.04.09]
|
Странное у тебя небо sergwizard
![]()
__________________
Бойтесь китайцев, компы приносящих! |
|
|||||
|
Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
|
Да? А что в нем странного?
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный. (S.Wizard) |
|
|||||
|
[+1.3 05.04.09]
|
Да звездочки по одной появляются. Ощющение такие как буто там спутники взрываются
![]()
__________________
Бойтесь китайцев, компы приносящих! |
|
|||||
|
Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
|
Цитата:
![]() |
|
|||||
|
Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
|
орех, сделай-ка скриншот. Интересно посмотреть, как ты это все видишь? Почему ты видишь звезды только по одной?
2Штрек А причем здесь nuran?
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный. (S.Wizard) |
![]() |
Часовой пояс GMT +4, время: 12:11. |
|
|
« Предыдущая тема | Следующая тема » |
|
|