Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.12.2005, 15:28
Andromed вне форума Посмотреть профиль Отправить личное сообщение для Andromed Найти все сообщения от Andromed
  № 21  
Ответить с цитированием
Andromed

Регистрация: Aug 2005
Сообщений: 83
кстати немножко не в тему я тут поковырялся нашел исходники RFE быстро подправил чтобы работало с OpenGL 1.5 2.0, также чтобы коректно экспортируемый скрипт работал в 8-ке (там зарезервруемое слово появилось transform)... вопрос такой нет желания держать постоянную ссылку ? на вашем сайте (когда я его писал флешер ру был в ауте, пришлось выкладывать на флештиачер).. банер и ссылку в прогармме пихну (главное наличие картинки 190*75) Если есть желание можно связаться по почте

Старый 19.12.2005, 17:22
Andromed вне форума Посмотреть профиль Отправить личное сообщение для Andromed Найти все сообщения от Andromed
  № 22  
Ответить с цитированием
Andromed

Регистрация: 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;
}
)

Старый 19.12.2005, 17:56
Ion вне форума Посмотреть профиль Найти все сообщения от Ion
  № 23  
Ответить с цитированием
Ion
Banned
[5 01.09.2006]

Регистрация: Jun 2005
Сообщений: 1,805
Крутизна подобных эффектов в том, что они не теряют красоты при низком качве, что позволяет повысить производительность

Старый 19.12.2005, 18:38
Andromed вне форума Посмотреть профиль Отправить личное сообщение для Andromed Найти все сообщения от Andromed
  № 24  
Ответить с цитированием
Andromed

Регистрация: Aug 2005
Сообщений: 83
это да.. ради этого все и затевалось все переходим в low режим , вообщето дело не в самих эффектах.. на сколько они красивы или нет, это второстепенно, просто расматриваются разные фишки типа копирования мувиклипа в bmpData и использование его содержмиого .. и т.д. и т.п., эффект это просто для наглядности.. было бы глупо взять мувик скопировать его в картинку и помеянть пиксели местами типа красный на черный и прочее.. хотя можно впринципе описать разные фильтры как в фотошопе.. анпрмире сепия сделать вроде просто будет сохранить цвет в матрицу colorTransform
изменить все значения Offset на темножелтый а все Multiplier оставить без изменения .. это так мысли вслух

Старый 19.12.2005, 19:42
c++ вне форума Посмотреть профиль Отправить личное сообщение для c++ Найти все сообщения от c++
  № 25  
Ответить с цитированием
c++
[+ 1.10 09.12.2005]
[+ 1.1 20.12.05]

Регистрация: Dec 2005
Сообщений: 67
Сделал светящимися фейерверками надпись небольшую - прикольно
Захотел её в существующую flash сцену loadMovie...

Загружается, но бежит точка, но ни надписи ни эффектов...
Если в первом кадре сцены пишем "_lockroot = true;", то рисуется ок, но эффект брызг находится в самом низу сцену, а не около рисующей точки...

Что надо исправить?

Старый 20.12.2005, 05:46
MOHCTEP вне форума Посмотреть профиль Отправить личное сообщение для MOHCTEP Найти все сообщения от MOHCTEP
  № 26  
Ответить с цитированием
MOHCTEP

Регистрация: Dec 2002
Адрес: Живу вот где-то
Сообщений: 493
Мопть!
Я в осадке, как тот дождик!
Andromed - сплошные регардсы тебе! И спасибо!

Старый 20.12.2005, 11:08
Andromed вне форума Посмотреть профиль Отправить личное сообщение для Andromed Найти все сообщения от Andromed
  № 27  
Ответить с цитированием
Andromed

Регистрация: Aug 2005
Сообщений: 83
да не зачто ...

Старый 20.12.2005, 11:36
motor4ik вне форума Посмотреть профиль Отправить личное сообщение для motor4ik Посетить домашнюю страницу motor4ik Найти все сообщения от motor4ik
  № 28  
Ответить с цитированием
motor4ik
 
Аватар для motor4ik

Регистрация: Jun 2005
Адрес: Moscow - immigrate from Volgodonsk
Сообщений: 2,534
лнтающие какашки супер, главное алгоритм, а кому какие какашки летающие нравятся, сам доделает :=) Андромед респект :=)

Старый 20.12.2005, 12:48
c++ вне форума Посмотреть профиль Отправить личное сообщение для c++ Найти все сообщения от c++
  № 29  
Ответить с цитированием
c++
[+ 1.10 09.12.2005]
[+ 1.1 20.12.05]

Регистрация: Dec 2005
Сообщений: 67
=Andromed=

Сделал светящимися фейерверками надпись небольшую - прикольно
Захотел её в существующую flash сцену loadMovie...

Загружается, бежит точка, но ни надписи ни эффектов...
Если в первом кадре сцены пишем "_lockroot = true;", то рисуется ок, но эффект брызг находится в самом низу сцену, а не около рисующей точки...

Что надо исправить, подскажите, пожалста?

Старый 20.12.2005, 15:29
motor4ik вне форума Посмотреть профиль Отправить личное сообщение для motor4ik Посетить домашнюю страницу motor4ik Найти все сообщения от motor4ik
  № 30  
Ответить с цитированием
motor4ik
 
Аватар для motor4ik

Регистрация: Jun 2005
Адрес: Moscow - immigrate from Volgodonsk
Сообщений: 2,534
уууу...с с+++ все стало на свои места, все ясно :=)

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:34.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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