http://www.odiesoft.de/amstrad/snow.html
Wie bekommt man sowas hin?
Idee von mir wäre jeweils für jede Flocke abzufragen, welche Farbe das nächste Pixel hat. Wenn nicht schwarz, dann aufhören weiterzurieseln und eine neue Schneeflocke starten.
Dürfte doch funzen oder?
Schnee der liegenbleibt
Re: Schnee der liegenbleibt
Dabei gäbe es zwei Probleme:Delle hat geschrieben: Idee von mir wäre jeweils für jede Flocke abzufragen, welche Farbe das nächste Pixel hat. Wenn nicht schwarz, dann aufhören weiterzurieseln und eine neue Schneeflocke starten.
Dürfte doch funzen oder?
1. du könntest nur schwarzen Hintergrund benutzen (->langweilig)
2. die Schneeflocken würden nur oben und an den Seiten der Bäume liegenbleiben - vorne würden sie gar nicht erst hinkommen, da sie dafür ja theoretisch einen Weg über das Grün finden müssten, was bei deiner Methode nicht möglich wäre.
Frag mich nicht, wie es besser geht, aber deine Methode hat definitiv noch ein paar Macken...
Hey, das hab ich mal gemacht.
Ich glaub um LinkedLists auszutesten (schon etwas her).
Mal suchen.
Edit: Mist ich finds nicht.
Irgendwie waren meine Flocken "klug" genug um rauszufinden ob sie weiter fallen dürfen.
Odiesoft hat's sich ja wohl einfach gemacht, und einfach nur dann weitergefallen wenn der nächste Punkt weiß oder Schwarz ist.
So werden die Bäume wohl so.
Mach am besten eine Maske wie bereits vorgeschlagen, sonst kannst du dich nur an Farben orientieren.
Ich glaub um LinkedLists auszutesten (schon etwas her).
Mal suchen.
Edit: Mist ich finds nicht.
Irgendwie waren meine Flocken "klug" genug um rauszufinden ob sie weiter fallen dürfen.
Odiesoft hat's sich ja wohl einfach gemacht, und einfach nur dann weitergefallen wenn der nächste Punkt weiß oder Schwarz ist.
So werden die Bäume wohl so.
Mach am besten eine Maske wie bereits vorgeschlagen, sonst kannst du dich nur an Farben orientieren.
ich hab das mal gemacht. entweder du hast eine einzige hintergrundfarbe, dann geht es mit:
if Point(flockenposition) <> hintergrundfarbe UND <> EigeneFarbe UUUND Random(intensität der verteilung auf dem objekt) DANN von FliegendenFlockenListe nach LiegendenFlockenListe verschieben
besser wenn es nur auf einem einfarbigen hintergrund liegen bleiben soll, dann point(objektfarbe) ...
spritepixelcollision() geht natürlich auch
if Point(flockenposition) <> hintergrundfarbe UND <> EigeneFarbe UUUND Random(intensität der verteilung auf dem objekt) DANN von FliegendenFlockenListe nach LiegendenFlockenListe verschieben
besser wenn es nur auf einem einfarbigen hintergrund liegen bleiben soll, dann point(objektfarbe) ...
spritepixelcollision() geht natürlich auch
Ja, aber nur wenn oben schon Schnee liegt.
So was in der Richtung müsste den Effekt haben.
Code: Alles auswählen
Y + 1
Color = point(X,Y)
if Color <> Hintergrundfarbe and Color <> Schneefarbe
Plot(x,y, Schneefarbe)
Y = 0
endif