![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2005
Сообщений: 83
|
кстати немножко не в тему я тут поковырялся нашел исходники RFE быстро подправил чтобы работало с OpenGL 1.5 2.0, также чтобы коректно экспортируемый скрипт работал в 8-ке (там зарезервруемое слово появилось transform)... вопрос такой нет желания держать постоянную ссылку ? на вашем сайте (когда я его писал флешер ру был в ауте, пришлось выкладывать на флештиачер).. банер и ссылку в прогармме пихну (главное наличие картинки 190*75) Если есть желание можно связаться по почте
![]() |
|
|||||
|
Регистрация: Aug 2005
Сообщений: 83
|
еще один пример пиксельный огонь отличие от лого в том что цвет пикселей берется из програмно созданного градиента
средствами getPixel32 пример тут http://www.vipsauna.com/test/pixel_fire.html исходник тут http://www.vipsauna.com/test/pixel_fire.fla
Stage.scaleMode = 'noScale';
this.createEmptyMovieClip("gradient", 2);
import flash.geom.*;
var fillType:String = "linear";
var colors:Array = [0xFF2222, 0xDFAA31, 0xB9594F, 0xAEAEAE, 0x000000];
var alphas:Array = [100, 80, 70, 50, 90];
var ratios:Array = [0, 30, 50, 70, 0xFF];
var matrix:Matrix = new Matrix();
matrix.createGradientBox(300, 1, 0, 0, 0);
var spreadMethod:String = "pad";
gradient.beginGradientFill(fillType, colors, alphas, ratios, matrix, spreadMethod);
gradient.moveTo(0, 0);
gradient.lineTo(300, 0);
gradient.lineTo(300, 5);
gradient.lineTo(0, 5);
gradient.lineTo(0, 0);
gradient.endFill();
var gradientCanvas = new flash.display.BitmapData(300, 5, false, 0xFFCC0000);
gradientCanvas.draw(gradient);
/////////////////////////////////////////////////////////////////
this.createEmptyMovieClip("fire", 1);
var fireConvas = new flash.display.BitmapData(300, 300, true, 0);
fire.attachBitmap(fireConvas, 1);
var fade = new flash.geom.ColorTransform();
fade.alphaMultiplier = 0.8;
var fireDiametr = 40;
var fireFading = 10;
var grav = -0.2;
var maxparticles = 220;
var particleNum = 4;
var particleglowcolor = 0xFFCC00;
var particles = new Array();
var glow = new flash.filters.GlowFilter(particleglowcolor, 5, 15, 15);
var floor = 280;
fire.filters = [glow];
fire.blendMode = "add";
onEnterFrame = function () {
for (var i = particleNum; i>=0; i--) {
particles.unshift(createParticle(Stage.width/2+40*(Math.random()-0.5), floor, 0, random(1)+1));
}
if (particles.length>maxparticles) {
particles.length = maxparticles;
}
for (i in particles) {
currparticle = particles[i];
var particlecolor = 0xFFFF6633;
var particlecolorAlpha = 0x50FF6633;
var pixelW = (floor-currparticle.y)/0.7;
if (pixelW>300) {
pixelW = 300;
}
particlecolor = gradientCanvas.getPixel32(pixelW, 0);
fireConvas.setPixel32(currparticle.x, currparticle.y, particlecolor);
fireConvas.setPixel32(currparticle.x+1, currparticle.y, particlecolor);
fireConvas.setPixel32(currparticle.x-1, currparticle.y, particlecolor);
fireConvas.setPixel32(currparticle.x, currparticle.y-1, particlecolor);
fireConvas.setPixel32(currparticle.x, currparticle.y+1, particlecolor);
moveParticle(currparticle);
}
fireConvas.colorTransform(fireConvas.rectangle, fade);
};
function createParticle(x, y, angle, power) {
var prt = {};
prt.x = x;
prt.y = y;
angle = -angle-Math.PI+Math.PI*Math.random()*2;
power = -power/2+power+0.5*power*Math.random();
prt.vx = Math.cos(angle)*power;
prt.vy = -Math.sin(angle)*power;
return prt;
}
function moveParticle(particle) {
particle.x += particle.vx;
particle.y += particle.vy;
var fl = fireDiametr-(floor-particle.y)/fireFading;
var right = Stage.width/2+fl;
var left = Stage.width/2-fl;
if (particle.x>right) {
particle.x = right;
particle.vx *= -Math.random()*5;
}
if (particle.x<left) {
particle.x = left;
particle.vx *= -Math.random()*5;
}
particle.vy += grav;
}
|
|
|||||
|
Banned
[5 01.09.2006]
Регистрация: Jun 2005
Сообщений: 1,805
|
Крутизна подобных эффектов в том, что они не теряют красоты при низком качве, что позволяет повысить производительность
|
|
|||||
|
Регистрация: Aug 2005
Сообщений: 83
|
это да..
ради этого все и затевалось все переходим в low режим , вообщето дело не в самих эффектах.. на сколько они красивы или нет, это второстепенно, просто расматриваются разные фишки типа копирования мувиклипа в bmpData и использование его содержмиого .. и т.д. и т.п., эффект это просто для наглядности.. было бы глупо взять мувик скопировать его в картинку и помеянть пиксели местами типа красный на черный и прочее.. хотя можно впринципе описать разные фильтры как в фотошопе.. анпрмире сепия сделать вроде просто будет сохранить цвет в матрицу colorTransformизменить все значения Offset на темножелтый а все Multiplier оставить без изменения .. это так мысли вслух ![]() |
|
|||||
|
[+ 1.10 09.12.2005]
[+ 1.1 20.12.05] Регистрация: Dec 2005
Сообщений: 67
|
Сделал светящимися фейерверками надпись небольшую - прикольно
![]() Захотел её в существующую flash сцену loadMovie... Загружается, но бежит точка, но ни надписи ни эффектов... ![]() Если в первом кадре сцены пишем "_lockroot = true;", то рисуется ок, но эффект брызг находится в самом низу сцену, а не около рисующей точки... ![]() Что надо исправить? |
|
|||||
|
Регистрация: Dec 2002
Адрес: Живу вот где-то
Сообщений: 493
|
Мопть!
Я в осадке, как тот дождик! Andromed - сплошные регардсы тебе! И спасибо! |
|
|||||
|
Регистрация: Aug 2005
Сообщений: 83
|
да не зачто
... |
|
|||||
|
Регистрация: Jun 2005
Адрес: Moscow - immigrate from Volgodonsk
Сообщений: 2,534
|
лнтающие какашки супер, главное алгоритм, а кому какие какашки летающие нравятся, сам доделает :=) Андромед респект :=)
|
|
|||||
|
[+ 1.10 09.12.2005]
[+ 1.1 20.12.05] Регистрация: Dec 2005
Сообщений: 67
|
=Andromed=
Сделал светящимися фейерверками надпись небольшую - прикольно Захотел её в существующую flash сцену loadMovie... Загружается, бежит точка, но ни надписи ни эффектов... ![]() Если в первом кадре сцены пишем "_lockroot = true;", то рисуется ок, но эффект брызг находится в самом низу сцену, а не около рисующей точки... ![]() Что надо исправить, подскажите, пожалста? |
|
|||||
|
Регистрация: Jun 2005
Адрес: Moscow - immigrate from Volgodonsk
Сообщений: 2,534
|
уууу...с с+++ все стало на свои места, все ясно :=)
|
![]() |
![]() |
Часовой пояс GMT +4, время: 18:37. |
|
|
« Предыдущая тема | Следующая тема » |
|
|