Schnee der liegenbleibt

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Delle
Beiträge: 1132
Registriert: 10.05.2005 22:48

Schnee der liegenbleibt

Beitrag von Delle »

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?
Benutzeravatar
redacid
Beiträge: 581
Registriert: 29.08.2004 17:06

Re: Schnee der liegenbleibt

Beitrag von redacid »

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?
Dabei gäbe es zwei Probleme:

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... :roll:
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

Wie wär's mit einer unsichtbaren Maske auf der die Schneeflocken liegen bleiben?
Benutzeravatar
Delle
Beiträge: 1132
Registriert: 10.05.2005 22:48

Beitrag von Delle »

Hm, man bedenke auch z.B. fliegende Objekte auf denen auch Schnee landen soll(te)... ich hab das irgendein ein Snippet aus alten BlitzBasic-Zeiten, werd mal suchen.

Weitere Theorien sind trotzdem willkommen! ;)
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Hey, das hab ich mal gemacht.
Ich glaub um LinkedLists auszutesten (schon etwas her). :mrgreen:
Mal suchen.

Edit: Mist ich finds nicht. :cry:
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.
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
MLK
Beiträge: 267
Registriert: 01.11.2004 13:17
Wohnort: Hamburg

Beitrag von MLK »

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
Benutzeravatar
Delle
Beiträge: 1132
Registriert: 10.05.2005 22:48

Beitrag von Delle »

Batze hat geschrieben: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.
Sicher? Schau mal die Bäume werden auch VORN weiß...
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Ja, aber nur wenn oben schon Schnee liegt. :wink:

Code: Alles auswählen

Y + 1
Color = point(X,Y)
if Color <> Hintergrundfarbe and Color <> Schneefarbe
  Plot(x,y, Schneefarbe)
  Y = 0
endif
So was in der Richtung müsste den Effekt haben.
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Antworten