Zurück   Flashforum > Flash > Stuff

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-01-2007, 12:56   #1 (permalink)
habs vergessen
 
Benutzerbild von pwdVergesser
 
Registriert seit: Feb 2006
Beiträge: 990
[stuff] particles

hallo zusammen,

habe mal probiert möglichst viele particle aufzusetzen,
offline schafft mein player 5000 - online bin ich mit 3000 unterwegs.

mein script habe ich mehr oder weniger ´runtergeschlonst, das kann
jeder nach belieben optimieren, umbauen usw. ...

feedback ist wie immer willkommen.

ansehen & testen

die fla ziehen

das ganze auf einen blick:
Code:

// --------------------------------------------------------------------------------------------------
 
 
stop();


// --------------------------------------------------------------------------------------------------


///////////////////////////////////
// setup particles global vars
///////////////////////////////////


var count:Number = 0;
var particles:Number = 3000;

var sArr:Array = new Array();


// --------------------------------------------------------------------------------------------------


///////////////////////////////////
// init particles
///////////////////////////////////


var i:Number = particles;

while (i > 0) {
	
	var dt:Sprite = new Sprite();
	dt.name = "dt" + String(i);
	stage.addChild(dt);
	
	dt.x = Math.round(Math.random() * 540);
	dt.y = Math.round(Math.random() * 400);
	sArr.push(new Object({vx:0,vy:0,ux:0,uy:0,dx:0,dy:0}));
	
	dt.graphics.beginFill(0xffffff,1);
	dt.graphics.drawRect(0,0,1,1);
	i--;

}



// --------------------------------------------------------------------------------------------------


///////////////////////////////////
// paint particles
///////////////////////////////////

function paintParticles (event:Event) {
	
	var i:Number = particles-1;
	
	while (i > 0) {
		
		var p = stage.getChildAt(i);
		
		if (p.name.indexOf("dt",0) != -1) {

			sArr[i].dx = stage.mouseX - p.x;
			sArr[i].dy = stage.mouseY - p.y;

			var dist = Math.sqrt(sArr[i].dx * sArr[i].dx + sArr[i].dy * sArr[i].dy);
			
			if (dist < 50) {
				sArr[i].ux = stage.mouseX - sArr[i].dx / dist * 50;
				sArr[i].uy = stage.mouseY - sArr[i].dy / dist * 50;
				sArr[i].vx += (sArr[i].ux - p.x) * .1;
				sArr[i].vy += (sArr[i].uy - p.y) * .1;
			}
			
			var va = p.rotation * Math.PI / 180;

			var vx = Math.cos(va) * (.8-(Math.sin(8)*.15+Math.sin(2)*.15+.9));
			var vy = Math.sin(va) * (.8-(Math.sin(8)*.15+Math.sin(2)*.15+.9));			
			sArr[i].vx  += vx;
			sArr[i].vy  += vy;
			sArr[i].vx *= .9;
			sArr[i].vy *= .9;

			p.x += sArr[i].vx;	
			p.y += sArr[i].vy;
			
			if (p.x > 540) {
				p.x = 0;
			}
			if (p.x < 0) {
				p.x = 540;
			}
			if (p.y > 400) {
				p.y = 0;
			}
			if (p.y < 0) {
				p.y = 400;
			}			

		}
		i--;
		
		
	}
	
}


// --------------------------------------------------------------------------------------------------


///////////////////////////////////
// init enter frame event
///////////////////////////////////

this.addEventListener(Event.ENTER_FRAME, paintParticles);
pwd
__________________
Blog/Lab Xing

Geändert von pwdVergesser (26-01-2007 um 14:33 Uhr)
pwdVergesser ist offline   Mit Zitat antworten
Alt 26-01-2007, 15:40   #2 (permalink)
Neuer User
 
Registriert seit: Apr 2002
Ort: Vorm PC
Beiträge: 1.583
warum spielst du nicht mit pixels?
Gnut ist offline   Mit Zitat antworten
Alt 26-01-2007, 16:22   #3 (permalink)
habs vergessen
 
Benutzerbild von pwdVergesser
 
Registriert seit: Feb 2006
Beiträge: 990
...stimmt eigentlich könnte man das auch gleich so angehen...
...das dann in version 0.12 =)

pwd
__________________
Blog/Lab Xing
pwdVergesser ist offline   Mit Zitat antworten
Alt 26-01-2007, 16:43   #4 (permalink)
[+]
 
Benutzerbild von André Michelle
 
Registriert seit: Dec 2002
Ort: cologne
Beiträge: 2.271
Pixel setzen geht natürlich viel schneller als Zeichnen.

Ich komme auf 50000 Partikel bei immerhin noch 50FPS im Standalone.
Angehängte Dateien
Dateityp: zip PixelRain.zip (10,0 KB, 238x aufgerufen)
__________________
aM

blog | laboratory | tonfall | processing

Audiotool.com
André Michelle ist offline   Mit Zitat antworten
Alt 26-01-2007, 18:43   #5 (permalink)
habs vergessen
 
Benutzerbild von pwdVergesser
 
Registriert seit: Feb 2006
Beiträge: 990
Zitat:
Zitat von André Michelle Beitrag anzeigen
Ich komme auf 50000 Partikel bei immerhin noch 50FPS im Standalone.
schön schön der Herr

...werde mich mal übers WE ´dran machen, meinen ansatz in die tonne kloppen und meine particles über pixel setzen... der performance-vorteil bei andrés beispiel spricht für sich selbst!

pwd
__________________
Blog/Lab Xing
pwdVergesser ist offline   Mit Zitat antworten
Alt 26-01-2007, 18:58   #6 (permalink)
Nordlicht
 
Benutzerbild von astaroth
 
Registriert seit: Jun 2001
Ort: Hamburg
Beiträge: 569
Ich muss mal den Leuten hier im AS3 - Bereich ein RIESEN - Kompliment machen.
Langsam geht das alles in die richtige Richtung, obwohl mich das ganze stark an die alte C64 - Zeit erinnert.
Das ausprobieren und letztendlich Bestmögliche aus dem zu holen, was Möglich ist.

Macht weiter so Jungs, ist wirklich sehr inspirierend.

Gruß...

...Patrick.


PS : Andre Michelle, ich bin gespannt, was einer der kreativsten Köpfe der Flasher - Szene ( Ja DU ! ) demnächst alles bringt.

Ich habe schon ein paar Ideen, welche alten C64-Games man alles mit AS3 realisieren kann.
__________________
"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen."
Wachsamkeit ist der Preis der Freiheit - Keine Zensur!

– Wau Holland –

http://www.wauland.de
astaroth ist offline   Mit Zitat antworten
Alt 27-01-2007, 08:25   #7 (permalink)
[+]
 
Benutzerbild von André Michelle
 
Registriert seit: Dec 2002
Ort: cologne
Beiträge: 2.271
Zitat:
Ich habe schon ein paar Ideen, welche alten C64-Games man alles mit AS3 realisieren kann.
Das ist nett, vielleicht schaust du dir vorher den FC64 mal an.
__________________
aM

blog | laboratory | tonfall | processing

Audiotool.com

Geändert von André Michelle (27-01-2007 um 08:30 Uhr)
André Michelle ist offline   Mit Zitat antworten
Alt 27-01-2007, 11:09   #8 (permalink)
x39
 
Benutzerbild von georgem
 
Registriert seit: Oct 2004
Ort: St.Gallen, Schweiz
Beiträge: 1.261
heiland-zack,

super beispiel von Andre, da komm ich auf 90 FPS Standalone
__________________
The Sleeper Must Awaken

www.margaris.de | www.exosolar.net
georgem ist offline   Mit Zitat antworten
Alt 27-01-2007, 12:30   #9 (permalink)
habs vergessen
 
Benutzerbild von pwdVergesser
 
Registriert seit: Feb 2006
Beiträge: 990
auch wenn du in den as-sources die anzahl der particle von 25000 auf 50000 erhöhst - da komme ich "nur noch" auf 50 fps - was im gegensatz zu meinem ansatz natürlich immer noch welten sind.

pwd
__________________
Blog/Lab Xing
pwdVergesser ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 18:35 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele