PDA

Volledige versie bekijken : Realistische werkende brandblusser


fledermaus
%Europe/Berlin %501 %2007, 13:01
Ha!

Omdat vorige topic met scytale zoveel fun was, maken we er ineens maar een battle van:

de uitdaging is een zo realistisch mogelijke brandblusser te maken met volgende voorwaarden:

1. situatie: brandblusser staat op de stage, hendel gewoon, geen schuim, niet gebonden aan de cursor dus "hij staat daar maar".
2. zodra de bezoeker de brandblusser aanklikt EN de muisknop ingedrukt houdt:
- schuim begint te spuiten
- hendel (of dergelijke) ingedrukt (actief)
- Mouse.hide();
3. zodra de gebruiker de muisbutton loslaat:
- schuim stopt
- brandblusser "vliegt" zachtjes terug naar zijn oorspronkelijke plaats
- gewone muiscursor herstellen

Misschien extra: zet er een vuurtje bij dat na 5 seconden aanraking van het schuim uitdooft (iets met hittest vermoed ik maar hoe die timing moet?!).

En voor de echte "die-hards": maak er een grappige advertentie mee of zo...

Lijkt me fun, ik ben benieuwd LOL

Succes en scytale: alvast bedankt om zover te raken !

fledermaus
%Europe/Berlin %514 %2007, 13:20
vuurtje toegevoegd... Mouse.hide etc...

Ruben!
%Europe/Berlin %549 %2007, 14:10
het klinkt wel als een grappige battle, maar ik snap het nog niet helemaal? heb je een voorbeeldje ofzo?

fledermaus
%Europe/Berlin %555 %2007, 14:20
ja hier is een voorbeeldje (in bijlage): let wel, het schuim, dat oorspronkelijk het probleem was, vreet cpu vermogen en dient misschien vervangen te worden!

De brandblusser kan al gesleept worden, maar het vuurtje wordt nog niet gedoofd.

Ik werk er verder aan...

fledermaus
%Europe/Berlin %559 %2007, 14:25
Dit is de code om de brandblusser en het schuim te activeren en te slepen. Maar er is nog een probleem: op het einde van de clip wil ik graag dat de brandblusser terug op zijn plaats staat. Dit via BackToX en BackToY die ik in het begin vastleg. Maar dat blijkt niet te werken. Iemand een idee? Bedoeling is dus dat die brandblusser zachtjes terug naar zijn plaats vliegt maar 'k ben precies verkeerd bezig.

onClipEvent (load) {
// start out not dragging
dragging = false;
FoamIt._alpha = 0;
BackToX = femc._x;
BackToY = femc._y;
}

onClipEvent (mouseDown) {
if (this.hitTest(_root._xmouse, _root._ymouse)) {
// follow the mouse from now on
dragging = true;
Mouse.hide();
FoamIt._alpha = 100;
}
}

onClipEvent (enterFrame) {
if (dragging) {
// set to location of the mouse
this._x = _root._xmouse;
this._y = _root._ymouse;
}
}

onClipEvent (mouseUp) {
if (this.hitTest(_root._xmouse, _root._ymouse)) {
// don't follow the mouse any longer
dragging = false;
FoamIt._alpha = 0;
femc._x = BackToX;
femc._y = BackToY;
Mouse.show();
}
}

fledermaus
%Europe/Berlin %574 %2007, 14:46
Nieuwe code met werkende hittest: te vervangen op symbol "drag this thing". Het terugsturen van de brandblusser naar zijn oorspronkelijke locatie werkt nog wel niet.

onClipEvent (load) {
// start out not dragging
dragging = false;
FoamIt._alpha = 0;
BackToX = femc._x;
BackToY = femc._y;
}

onClipEvent (mouseDown) {
if (this.hitTest(_root._xmouse, _root._ymouse)) {
// follow the mouse from now on
dragging = true;
Mouse.hide();
FoamIt._alpha = 100;
}
}

onClipEvent (enterFrame) {
if (dragging) {
// set to location of the mouse
this._x = _root._xmouse;
this._y = _root._ymouse;
if (_root.FFire.hitTest = true) {
_root.SSmoke._alpha = 0;
_root.FFire._alpha = 0;
}
}
}

onClipEvent (mouseUp) {
if (this.hitTest(_root._xmouse, _root._ymouse)) {
// don't follow the mouse any longer
dragging = false;
FoamIt._alpha = 0;
femc._x = BackToX;
femc._y = BackToY;
Mouse.show();
}
}

Ruben!
%Europe/Berlin %589 %2007, 15:09
zo is de battle niet leuk meer heh, als we alle code voorgeschoteld krijgen:P een swf'je ergens online als voorbeeld en dan ieder voor zichzelf proberen iets te maken, met je eigen draai eraan... en vragen in het AS-forum en code tussen [AS]-tags;) dan blijft dit topic ook nog een beetje overzichtelijk:)

Scytale333
%Europe/Berlin %594 %2007, 15:16
Ja dat dacht ik ook al haha :D
Anders is het geen battle meer :P

fledermaus
%Europe/Berlin %599 %2007, 15:22
ah oei, groot gelijk: ik had dit maar online gezet omdat er iemand om gevraagd had. 'k Zal het direct deleten, 't is ook maar m'n eerste battleke hé.

EDIT: Is dus gebeurd en sorry scytale maar ons schuim doet enorm lastig als je de brandblusser wil implementeren in een filmpje.

Trouwens: mijn geklungel kan je altijd bekijken via www.michaelmartens.be - Ik werk live op die server dus je kan alle fouten live meemaken :D

Scytale333
%Europe/Berlin %637 %2007, 16:18
Ziet er al goed uit, werk je met photoshop?

fledermaus
%Europe/Berlin %709 %2007, 18:01
ja daar komt inderdaad wel wat photoshop aan te pas. Maar heel die website heeft eigenlijk maar één doel: photoshop, flash, dreamweaver en wie weet wat nog leren.

Misschien dat ik er nadien wel iets nuttig opzet maar voorlopig primeert de brandblusser LOL

Scytale333
%Europe/Berlin %725 %2007, 18:24
Ik heb mijn voortgang ook even online gezet:

http://www.benjaminlit.nl/brandblusser.html

Ik heb er een functie aan gegeven dat de bus op kan.

ps. er staat op jouw profiel dat je FLash MX gebruikt. Ik denk dat je Flash 8 gebruikt toch?

fledermaus
%Europe/Berlin %731 %2007, 18:34
ja 't is inderdaad flash 8 - 'k zal dat profiel eens moeten aanpassen.

Trouwens, 'k ga nu ff een pintje pakken met vrienden, maar ik heb net je website gezien:

MAN WAT PRACHTIG !! ik ben echt benieuwd naar het resultaat als ik straks terugkom !! echt waar heel mooi !!

-Rutger-
%Europe/Berlin %840 %2007, 21:10
Ik ga proberen om het ook te maken, ik ben nog niet zo bekend met de tween class, dus dat wordt even prutsen :P!
fledermaus, dat vuurtje bij jouw voorbeeld is van fleasy op flashden he? :P

Thierry
%Europe/Berlin %874 %2007, 21:59
Sorry dat ik dit zeg hoor maar ik vind dit niet echt een goede battle. In een vorig topic vraagt fledermaus of iemand weet hoe je een realistische brandblusser kunt maken omdat hij er een op zijn site wil hebben. Vervolgens ontstaat er een 'chat' tussen fledermaus en Scytale333 waarin jullie beginnen te praten over het maken van die brandblusser.

Vervolgens wordt er voorgesteld om hier een battle van te maken. Nu krijg ik dus de indruk dat dit meer een manier is om goede brandblussers te verkrijgen dan een battle om brandblussers te maken. Later we eerlijk zijn, er is niet veel interesse in deze 'battle' voor zover ik kan zien. Er zijn maar een paar verschillende mensen die hier op hebben gereageerd en dit topic begint wederom op een chat tussen fledermaus en Scytale333 te lijken.

-Rutger-
%Europe/Berlin %890 %2007, 22:22
Sorry ik doe niet meer mee... Ik wist niet dat er een ander topic was...

Scytale333
%Europe/Berlin %920 %2007, 23:06
begint wederom op een chat tussen fledermaus en Scytale333 te lijken.

Ja daar heb je gelijk in.
Ik heb voor de rest ook nog nooit in battleforum gekeken dus weet niet zo goed hoe het werkt.
Voor de rest zie ik 0 battles staan

//edit
Kom jij anders met een leuke battle :)

fledermaus
%Europe/Berlin %278 %2007, 07:40
how how how, dit is geen battle om lekker gemakkelijk een probleem op te lossen zodat ik zonder veel moeite een brandblusapparaat op m'n site kan zetten (wat trouwens compleet overbodig is maar soit). Die andere topic ging erover een noob te leren waarom sommige fla'kes niet werken als je de publish settings op flash player 7 of 8 zet, terwijl het perfect werkt onder 6 en lager. Dit noobke heeft dus dankzij de vorige topic geleerd dat bij de conversie van AS1 naar AS2 door flash weleens een fout gemaakt wordt ivm "add" en "+". Ook weet ik uit de vorige topic dat je enkel filters kan gebruiken als je publiceert in flash player 8, dus enkel technische issues dus.

Ik zie het probleem niet, eigenlijk. Ik dacht dat een battle iets was waarbij je een probleem/uitdaging voorstelde waarbij ieder op z'n eigen manier een oplossing zoekt, niet?

BTW: de website die vernoemd wordt, is een aaneenschakeling van bestaande tutorials, op een bepaalde manier gemanipuleerd zodat ik kan bijleren, niks meer. Idem dito voor de code...

Ea.Z
%Europe/Berlin %377 %2007, 10:04
Dit is geen battle om lekker gemakkelijk een probleem op te lossen zodat ik zonder veel moeite een brandblusapparaat op m'n site kan zetten . Fijn zo. :)
FLA's moeten niet gepost worden. Mag natuurlijk wel. Code mag zeker besproken en gepost worden in mate van jullie eigen keuze.

Veel succes ermee.
Ben benieuwd naar de eerste resultaten :)

Scytale333
%Europe/Berlin %469 %2007, 12:15
Ok dan,

Dit is mijn inzending:


http://www.benjaminlit.nl/brandblusser.html

Scytale333
%Europe/Berlin %469 %2007, 12:16
Ok dan,

Dit is mijn inzending:

http://www.benjaminlit.nl/brandblusser.html

//edit hmmm post ineens 2 berichtjes.. vaag 8~

fledermaus
%Europe/Berlin %481 %2007, 12:33
da's gewoon prachtig, en vooral snel !! Hoe moet ik dit in godsnaam overtreffen? Door een brandslang te maken die afrolt? Door een automatisch sprinklersysteem te bouwen?

Ik zal maar gewoon verdergaan met mijn blusapparaatje en deze keer hopelijk zonder dat het schuim mijn laptopje doet crashen LOL

Ea.Z
%Europe/Berlin %798 %2007, 20:09
Mooie eerste inzending Scytale. Heb je ergens een vuur tutorial gevolgd? Het vuur komt me namelijk bekend voor ;)

Leuk gedaan :)

Flashingback
%Europe/Berlin %820 %2007, 20:42
Het is alleen de brandblusser geworden.Ik had heb geen zin meer om het vuur te maken :). www.flashingback.be/brandblusser

fledermaus
%Europe/Berlin %880 %2007, 22:08
Het is alleen de brandblusser geworden.Ik had heb geen zin meer om het vuur te maken :). www.flashingback.be/brandblusser

Hey dat is best wel cool: zelf zonder vuurtje is het wel dik ok! De schaduw en de manier waarop je de brandblusser loslaat is leuk.

Het schuim ook! Hoe heb je de dropshadow gedaan? In flash of photoshop?

Flashingback
%Europe/Berlin %890 %2007, 22:21
De dropshadow is in flash gedaan. Het was meer projectje voor mezelf om AS3.0 wat meer onder de knie te krijgen.

ath92
%Europe/Berlin %947 %2007, 23:44
Jammergenoeg stottert die van FB erg bij mij. die andere vind ik wel mooi al, vooral ook leuk dat er tekst bij staat waaraan je kunt zien hoever je al bent en dat de blusser op gegeven moment op is.

fledermaus
%Europe/Berlin %366 %2007, 09:47
Omdat ik een complete noob ben qua flash en actionscript, duurt het bij mij veel langer. Had ik het maar bij linux, firewalls, apache en dergelijke gehouden voor ik aan deze battle begon :-D

In ieder geval: voor diegenen die denken dat ik het opgegeven heb, NO WAY!

Het doel van deze battle is bijleren en sinds jullie hier na tien minuten al een eindresultaat online kunnen zetten, ben ik zo gefrustreerd dat ik het tot een goed einde zal brengen. Voila!

Hier dus de testfile: http://www.michaelmartens.be/Data/firetest.html

Het Photoshop gedeelte zal ik later wel doen, da's op dit moment nog niet zo belangrijk. Alle tips welkom.

HUIDIG PROBLEEM: het schuim, mijn koninkrijk voor vlot werkend schuim !!
TO DO LIST:

- graphics (als laatste, eerst alle code in orde hebben)
- vuur
- schuim (is het moeilijkste, vind ik)
- beperkt schuim

********************
voor rutger en thierry:

rutger wat je zegt is niet de bedoeling hoor: heel de website van mij is één aaneenschakeling van tutorials. het idee van die brandblusser begon bij particlesengine, een probleem van flash player 8 en vorige versies. Waar ik als noob uiteraard niks van begreep. Als ik gewoon een brandblusser nodig had voor mijn website, had ik dat wel gewoon bij "werk gezocht" gezet of ergens een topic gemaakt "wie kan voor mij een stomme brandblusser maken?".

Ik heb voor mijn website helemaal geen brandblusser nodig, die hele website is trouwens complete "crap". Maar wel de enige manier om de relatie tussen alle symbolen te leren. Als die brandblusser (ooit eens) afgewerkt is, dan moet ik die nog aan het werk zien te krijgen in de algemene movie van de website.

't Is echt waar gewoon de bedoeling om flash te leren, verder absoluut niks. Ik had al een vrij goede brandblusser gevonden, ergens op ffiles of zoiets. Maar ik was gefascineerd door "hoe doet men dat toch in godsnaam"?!

Vandaar het idee van er een battle van te maken...

In de battle staat er een link naar mijn ... zeer bescheiden progressie. Als je al kan spreken van progressie :D

Scytale333
%Europe/Berlin %412 %2007, 10:53
Mooie eerste inzending Scytale. Heb je ergens een vuur tutorial gevolgd? Het vuur komt me namelijk bekend voor ;)

Leuk gedaan :)

Nee ik heb gewoon hetzelfde principe gebruikt als de brandblusser zelf. Alleen de breedte random gedaan waar het vuurparticle begint en hem dan recht omhoog laten gaan.
Het vuur zelf heb ik even snel getekent in flash. doorzichtig gemaakt en een blur erop :P

Scytale333
%Europe/Berlin %414 %2007, 10:56
Oorspronkelijk gepost door Flashingback
Jammergenoeg stottert die van FB erg bij mij.

Misschien kost je dropshadow en een te hoge blur voor teveel proccesor. Ik heb mijn blur op quality 1.

En de vuur interval staat bij mij op 10, anders haperde hij ook een beetje. Ik denk dat je daar een beetje mee moet spelen tot hij lekker loopt.

Hij ziet er wel erg gaaf uit. Grappig ook dat hij naar beneden stuitert :D

fledermaus
%Europe/Berlin %416 %2007, 11:00
Ik denk dat ik in die particle engine wat dien te spelen met onderstaande code:

// Sets random values to be used in the parametric motion
randomX = random(1)-4;
fallFactor = random(1)+2;
ySpeed = random(10)+2;

Maar het wil maar niet lukken. Het schuim zou een parabolisch effect moeten geven maar doet met deze settings net het omgekeerde: in het begin valt het schuim en naarmate het verder gaat, begint het horizontaal stabiel te worden...

RandomX staat voor het verschil qua vertrek en verloop op horizontaal vlak?
fallfactor is hoe snel de particles vallen: vermoedelijk zit het hem hier?
yspeed is gewoon de snelheid van rechts naar links.

UPDATE: grafisch een beetje aanpassen wegens hoofd "overcoded".

fledermaus
%Europe/Berlin %729 %2007, 18:30
********, mijn hitttest wil maar niet werken. Kan iemand me helpen?

Ik heb op de stage 2 movieclips, brandblusser en vuurtje, en een tekstveld met de naam hitstatus. Allen hebben dezelfde instancename.

Ik zet in het eerste frame van de hoofdmovie volgende code:

vuurtje.onEnterFrame = function() {
hitstatus.text = this.hitTest(brandblusser);
};

Het veld hitstatus zegt onmiddellijk False maar springt nooit naar True? De filmpjes staan niet in dezelfd layer maar dat is volgens mij niet nodig...

Scytale333
%Europe/Berlin %737 %2007, 18:41
iK Heb de hittest op de vlammen afzonderlijk zitten
if(this.hitTest(_root.mHitvlak)){
_root.blussen();
}

in blussen heb ik dan de functie gezet wat hij moet gaan doen.

fledermaus
%Europe/Berlin %753 %2007, 19:04
dus, wat ik probeer qua code op het symbool vuurtje te zetten, is hetvolgende:

onClipEvent (enterFrame) {
if (_root.vuurtje, hitTest(_root.brandblusser)) {
_root.hitstatus.text = "Bezig met blussen";
} else {
_root.hitstatus.text = "Blus de brand...";
}
}

Dit is maar om te testen. Dus hij zou de tekst van het tekstfield moeten wijzigen als "brandblusser" contact heeft met "vuurtje". Maar voor de één of andere reden blijft ie gewoon staan op Blus de brand... Geen contact gedetecteerd dus :@

fledermaus
%Europe/Berlin %840 %2007, 21:10
ok, zoals je hier kan zien, werkt het ongeveer:

http://www.michaelmartens.be/Data/firetest.html

Maar er zijn toch nog enkele problemen. Ik begin met het voornaamste.

1. volgende code heb ik gezet in op het object "vuur":
UPDATE: dit probleem is opgelost door binnen het symbool brandblusser een hitarea te maken.

onClipEvent (enterFrame) {
if (_root.vuurtje, hitTest(_root.brandblusser)) {
_root.hitstatus.text = "Bezig met blussen...";
} else {
_root.hitstatus.text = "Zou je niet blussen?";
}
}


Ik heb de indruk dat hij "aan het blussen is", zodra de cursor op x-niveau ter hoogte komt van het vuur, dus niet echt wanneer de twee elkaar raken. Hoe kan dit?

2. dit is de code die op het object brandblusser staat en ondermeer de animatie verzorgd:


onClipEvent (load) {
// niet automatisch beginnen volgen
dragging = false;
//brandblusser afzetten, schuim af
// brandblusser afzetten
this.SlangAan._alpha = 0;
this.SlangAf._alpha = 100;
this.SlangAf.gotoAndPlay(15);
this.BasisAan._alpha = 0;
this.BasisAf._alpha = 100;
// oorspronkelijke coordinaten bepalen
this.BackToX = this._x;
this.BackToY = this._y;
}

onClipEvent (mouseDown) {
if (this.hitTest(_root._xmouse, _root._ymouse)) {
// bepaal de begincoordinaten
this.startX = this._x;
this.startY = this._y;
// begin te volgen
dragging = true;
Mouse.hide();
// brandblusser aanzetten
this.SlangAan._alpha = 100;
this.SlangAan.play(1);
this.SlangAf._alpha = 0;
}
}

onClipEvent (enterFrame) {
if (dragging) {
// updaten van de muis en blijven volgen
this._x = _root._xmouse;
this._y = _root._ymouse;
// brandblusser afzetten
}
}

onClipEvent (mouseUp) {
// muis niet meer volgen
dragging = false;
// terug naar oorspronkelijke plaats
this.onEnterFrame = function()
{
this._x += (this.startX - this._x)/8;
this._y += (this.startY - this._y)/8;
if(Math.abs(this._x - this.startX) < 2 && Math.abs(this._y - this.startY) < 3)
{
delete this.onEnterFrame;
}
}
// brandblusser afzetten
this.SlangAan._alpha = 0;
this.SlangAf._alpha = 100;
this.SlangAf.play();
this.BasisAan._alpha = 0;
this.BasisAf._alpha = 100;
// muiscursor herstellen
Mouse.show();
}


Als je echter een paar keer op het apparaat klikt zonder de blussequentie te vervolledigen, dan begint het ding te flippen. Tijdens de scene dat de brandblusser terugvliegt naar zijn oorspronkelijke plaats, zou hij dus nieuwe nieuwe mousedowns moeten negeren... Iemand een idee?

Ooit komt het wel in orde, hoop ik. Alsvast bedankt voor de hulp, dit is zeer leerrijk.

Ruben!
%Europe/Berlin %962 %2007, 00:06
mijn (voorlopige) inzending (http://www.freewebs.com/rubencronie/brandblusser.html)

Het vuur heb ik maar niet echt geanimeerd, dat trok mijn pc namelijk niet in combinatie met de particles. Om dan toch nog iets aan visualisatie te doen heb ik maar de alpha stapsgewijs verlaagt van het vuur P)

fledermaus
%Europe/Berlin %964 %2007, 00:08
tja, 't blijkt dus te werken, de hittest is opgelost. Nog 1 probleem...

Als het vuur geblust is, zou ie naar scene "geblust" moeten gaan: hij verandert we de tekst zoals hieronder weergegeven, maar naar de volgende scene gaan weigert ie te doen. Onderstaande code staat op de movie "vuurtje".


onClipEvent (enterFrame) {
if (_root.vuurtje, hitTest(_root.brandblusser.hitarea)) {
_root.hitstatus.text = "Bezig met blussen...";
_root.vuurtje._height = _root.vuurtje._height - 1;
if (_root.vuurtje._height < 100) {
_root.rook._alpha = 0;
}
if (_root.vuurtje._height < 5) {
_root.hitstatus.text = "Goed gedaan, 't is geblust!";
_root.promotietekst.text = "Voor een veilig internet:" + chr(13) + "installeer toch maar een firewall.";
_global.gotoAndPlay(nextScene);
}
_root.hoogtevanhetvuurtje.text = Math.round(_root.vuurtje._height);
} else {
if (_root.vuurtje._height > 5) {
_root.hitstatus.text = "Zou je niet eens beginnen blussen?";
}
}
}

fledermaus
%Europe/Berlin %966 %2007, 00:11
@ Rc.D.sign, leuk om zien hoe mensen zo'n battle op verschillende manieren aanpakken!

Amai, ik denk dat ik er ben:

voor de battle:http://www.michaelmartens.be/Data/firetest.html
geïntegreerd in m'n website in een grote fla (voor de fun): www.michaelmartens.be

Het is toch niet evident om zomaar symbolen van één fla naar een andere te kopiëren maar ik ben dankzij deze battle iets slimmer geworden op gebied van actionscript.

't Is nog niet helemaal perfect maar toch. Zoals hierboven vermeld wilt hij echt niet naar de tweede scene, geen idee waarom of waar te zoeken :(

theFlashWizard
%Europe/Berlin %644 %2007, 16:28
Hey jongens, ik zag deze post en moest meteen aan jullie denken:
http://theflashblog.com/index.php?paged=3#post-259
Misschien ter inspiratie? :P

fledermaus
%Europe/Berlin %652 %2007, 16:40
he da's wel knap ! Hopelijk komt die extentie snel uit voor het publiek...

Helaas zijn particle engines enorm belastend voor de cpu: bezoek deze website eens en via taskmanager een oogje op je cpu houden: http://desuade.com/