Kleine Schnee-Demo

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

TheMatrix

Betreff: Kleine Schnee-Demo

BeitragSa, Feb 03, 2007 1:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe mal ein wenig meinen Schneecode modifiziert. Hiermit will ich versuchen euch den Winter doch nochmal bringen. Vielleicht kann ja jemand noch n schönen Hintergrund erstellen^^.

Lässt man das Programm länger laufen, ist alles in eurem Bildschirm vollgeschneit Very Happy .

Code: [AUSKLAPPEN]

wx = 1024 : wy = 768
Graphics wx,wy,32,1

anz = 1000 : Dim s(anz,3)
For a=1 To anz
 s(a,0) = Rnd(wx) ; X
 s(a,1) = Rnd(wy-5) ; Y
 s(a,2) = Rnd(1,3) ; Fallgeschw.
 s(a,3) = Rnd(-2,2) ; Windeinfluß
Next
img = CreateImage(wx,wy) : SetBuffer ImageBuffer(img)

For a=1 To 2500
 x = Rnd(wx)
 y = Rnd(wy-5,wy)
 c = Rnd(200,255)
 Color c,c,c : Oval x,y,Rnd(2,4),4
Next
bg = CreateImage(wx,wy) : SetBuffer ImageBuffer(bg)

   rot = 50 : gruen = 50 : blau = 70
   rot_ende = 80 : gruen_ende = 80 : blau_ende = 120
   
    size_y# = wy
    rot_step#   = (rot-rot_ende)/size_y#
    gruen_Step# = (gruen-gruen_ende)/size_y#
    blau_Step#  = (blau-blau_ende)/size_y#
   For a=1 To size_y#
   
     Color rot-rot_step#*a, gruen-gruen_step#*a, blau-blau_step#*a
    Line 1,a,wx,a

   Next
SetBuffer BackBuffer()

fps=CreateTimer(40)
While Not KeyHit(1)

  WaitTimer(fps)
  Cls

  DrawBlock bg,0,0
  DrawImage img,0,0

  For i=1 To anz
   c = s(i,2)*75

  If s(i,1)>10 And s(i,1)+s(i,2)<wy And s(i,0)>=0 And s(i,0)<wx

   SetBuffer ImageBuffer(img)
   LockBuffer ImageBuffer(img)

   For b = s(i,1) To s(i,1)+s(i,2)
   f = ReadPixelFast(s(i,0),b)+16777216
   If (f Or b>=wy-5)
      z = Rnd(13)
       If z=1 Or s(i,2)=1
          If s(i,2)>1
          UnlockBuffer ImageBuffer(img) : un=1
        b=b-1: h = Rnd(200,255)
         Color h,h,h : Oval s(i,0),b,s(i,2)*2,4
        End If
          s(i,0)=Rnd(wx) : s(i,1)=0 : Exit
       End If

     
    End If

   Next
  End If

  If un=0 Then UnlockBuffer ImageBuffer(img) Else un=0
  SetBuffer BackBuffer()
 
  s(i,0) = s(i,0) + Rnd(s(i,3))
  s(i,1) = s(i,1) + s(i,2)
   Color c,c,c : Oval s(i,0),s(i,1),s(i,2),s(i,2)

   If s(i,1)>=wy Then s(i,0)=Rnd(wx) : s(i,1)=0

  Next
 
   Flip
Wend


Gruß, Manu
°_° °.° °~° °v° .. -.-
  • Zuletzt bearbeitet von TheMatrix am Sa, Feb 03, 2007 4:28, insgesamt 6-mal bearbeitet

5k41

BeitragSa, Feb 03, 2007 1:06
Antworten mit Zitat
Benutzer-Profile anzeigen
mav bei readpixelfast!
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

the FR3AK

BeitragSa, Feb 03, 2007 1:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Problem behoben:

Code: [AUSKLAPPEN]
Graphics 640,480,32,1

anz = 1000 : Dim s(anz,3)
For a=1 To anz
s(a,0) = Rnd(640) ; X
s(a,1) = Rnd(475) ; Y
s(a,2) = Rnd(1,3) ; Fallgeschw.
s(a,3) = Rnd(-2,2) ; Windeinfluß
Next
img = CreateImage(640,480) : SetBuffer ImageBuffer(img)

For a=1 To 2500
x = Rnd(640)
y = Rnd(475,480)
c = Rnd(200,255)
Color c,c,c : Oval x,y,Rnd(2,4),4
Next
bg = CreateImage(640,480) : SetBuffer ImageBuffer(bg)

rot = 50 : gruen = 50 : blau = 70
rot_ende = 80 : gruen_ende = 80 : blau_ende = 120

size_y# = 479
rot_step# = (rot-rot_ende)/size_y#
gruen_Step# = (gruen-gruen_ende)/size_y#
blau_Step# = (blau-blau_ende)/size_y#
For a=1 To size_y#

Color rot-rot_step#*a, gruen-gruen_step#*a, blau-blau_step#*a
Line 1,a,639,a

Next
SetBuffer BackBuffer()

fps=CreateTimer(40)
While Not KeyHit(1)

WaitTimer(fps)
Cls

DrawBlock bg,0,0
DrawImage img,0,0

For i=1 To anz
c = s(i,2)*75

x = s(i,0) : If s(i,1)>10


SetBuffer ImageBuffer(img)
LockBuffer ImageBuffer(img)

For b = s(i,1) To s(i,1)+s(i,2)
f = ReadPixelFast(s(i,0),z)+16777216
If (f Or b>=475)
z = Rnd(13)
; If b>=470 Then b=470+Rnd(10)
If z=1 Or s(i,2)=1
If s(i,2)>1
UnlockBuffer ImageBuffer(img) : un=1
b=b-1: h = Rnd(200,255)
Color h,h,h : Oval s(i,0),b,s(i,2)*2,4
End If
s(i,0)=Rnd(640) : s(i,1)=0 : Exit
End If


End If

Next
SetBuffer BackBuffer()
UnlockBuffer ImageBuffer(img)
End If

s(i,0) = s(i,0) + Rnd(s(i,3))
s(i,1) = s(i,1) + s(i,2)
Color c,c,c : Oval s(i,0),s(i,1),s(i,2),s(i,2)
Next

Flip 0
Wend
 

Schnuff

BeitragSa, Feb 03, 2007 1:16
Antworten mit Zitat
Benutzer-Profile anzeigen
immernoch mav bei readpixelfast (nach ca. 30 sec)
Programmers dont die. They gosub without return...

the FR3AK

BeitragSa, Feb 03, 2007 1:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm...ne da kommt bei mir nix nach 30 sek. Confused

FireballFlame

BeitragSa, Feb 03, 2007 1:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Schnuff hat Folgendes geschrieben:
immernoch mav bei readpixelfast (nach ca. 30 sec)

DITO ... nach ca. 40sek bei mir ...


Schade eigentlich, denn des Programm ist schön ... mit höherer Auflösung und dem richtigen Hintergrund sähe das richtig genial aus Smile
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

TheMatrix

BeitragSa, Feb 03, 2007 2:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Habs oben nochmal editiert. Readpixelfast kam manchmal auf readpixelfast y>481. Hoffe es läuft nun fehlerfrei...
°_° °.° °~° °v° .. -.-

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSa, Feb 03, 2007 2:37
Antworten mit Zitat
Benutzer-Profile anzeigen
ReadPixelFast darf nicht auf mehr als Y=479...

TheMatrix

BeitragSa, Feb 03, 2007 2:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Stimmt und ich habs jetzt auch nur an den Y-Wert gedacht. Die Eingrenzung für den X-Wert hab ich jetzt auch definiert. Wenn es jetzt immer noch nicht läuft, weiß ich auch nich mehr weiter...

So, die Auflösung kann jetzt frei vergeben werden Very Happy .

Gruß, Manu
°_° °.° °~° °v° .. -.-
 

#Reaper

Newsposter

BeitragSa, Feb 03, 2007 13:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Wäre ein super Bildschirmschoner^^ Smile
(sollte da allerdings vll ein wenig schneller zuschneien, damit man den Effekt besser bemerkt Smile )
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7
 

Dreamora

BeitragSa, Feb 03, 2007 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Weder gekapselter Code noch in irgend einer Form für "allgemeine Nutzung" brauchbar fürchte ich, deswegen aus dem CodeArchiv raus verschoben.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

TheMatrix

BeitragSo, Feb 04, 2007 0:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Verstehe dich jetzt nicht ganz Dreamora.

Ich dachte das Codestücke die den Umgang mit BB zeigen sollen, immer in das Codearchive gehören?

Hab ich was falsch verstanden?

Gruß, Manu
°_° °.° °~° °v° .. -.-
 

Dreamora

BeitragSo, Feb 04, 2007 1:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Fürchte ja.
Das CodeArchiv ist für Codes die andere verwenden können also für "Funktionalität" die nutzbar ist (möglichst in Form von Funktionen. Was erst aus unzähligen Zeilen extrahiert werden muss ist recht unnütz) für andere.
Code spielereien, wenn entsprechend gross, wären ein Projekt und sonst halt ein eintrag hier.

Das Archiv jedoch soll primär dazu da sein, fertige, funktionierende Funktionen / Systeme zu beinhalten, welche man mit der Suchfunktion dann auch gescheit findet.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

TheMatrix

BeitragSo, Feb 04, 2007 2:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann raff ich das nicht, weil bei dem Thread Allgemein steht: "Fragen, die unabhängig von der Grafik gestellt werden, wie zum Beispiel Fragen zu Formeln und Sounds oder Dinge zur allgemein gültigen Syntax, wie der Umgang mit Banks oder Types".

Aber das hier ist doch keine Frage, sondern ein fertiges kleines Programm?
°_° °.° °~° °v° .. -.-
 

Krümel

BeitragSo, Feb 04, 2007 15:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab mich grad gewundert wo dein Schneecode abgeblieben ist. Ich hätte es jetzt eher unter "Blitz 2D" vermutet.
Sieht übrigens sehr schön aus !

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group