"Dynamischer" Desktophintergrund

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

Smily

Betreff: "Dynamischer" Desktophintergrund

BeitragFr, Jan 26, 2007 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
Wem sein Desktop zu langweilig ist, kann das ja mal ausprobieren.
Ich habs mit Blitzplus getestet, aber es müsste auch mit BB3D gehen

Ihr müsst aber vorher folgende Userlib einbinden:
https://www.blitzforum.de/foru...kwallpaper

Code: [AUSKLAPPEN]
SX = 80
sy = 60

Dim Feld(SX,SY)
Dim oldFeld(SX,SY)

SetDeskWallpaper("img.bmp")

;fileout = WriteFile("stats.txt")

If FileType("save.txt")
 filein = ReadFile("save.txt")
 For X = 0 To SX
  For y = 0 To sy
   feld(x,y) = ReadByte(filein)
  Next
 Next
Else
 For x = 0 To 159
  For y = 0 To 119
   feld(x,y) = Rand(0,2)
  Next
 Next
End if
img = CreateImage((SX+1)*10,(SY+1)*10,16,2)
SetBuffer ImageBuffer(img)
streu = 1
ftimer = CreateTimer(0.5)
Repeat

 r = 0
 b = 0

 If KeyHit(28) Feld(5,5) = 2

 For x = 0 To SX
  For Y = 0 To SY
   oldfeld(X,Y) = Feld(x,y)
  Next
 Next


 For x = 0 To sx
  For y = 0 To sy
   Select oldfeld(X,Y)
    Case 0
    Case 1
     b = b + 1
     For xdif = -streu To streu
      For ydif = -Streu To streu
       If Sqr((xdif^2) + (ydif^2)) <= streu
        nx = x + xdif
          ny = y + ydif
            If nx > sx Then nx = 0
            If nx < 0 Then nx = sx
           If ny > sy Then ny = 0
           If ny < 0 Then ny = sy
           If (Not Rand(0,2)) And (oldfeld(nx,ny) < 2) feld(nx,ny) = 1
          End if
      Next
     Next
   
    Case 2
     r = r + 1
     futtern = 0
     For xdif = -2 To 2
      For ydif = -2 To 2
       If Sqr((xdif^2) + (ydif^2)) <= 2
        nx = x + xdif
          ny = y + ydif
            If nx > sx Then nx = 0
            If nx < 0 Then nx = sx
           If ny > sy Then ny = 0
           If ny < 0 Then ny = sy
           If oldfeld(nx,ny) = 1
          If Not Rand(0,5) feld(nx,ny) = 2
             futtern = 1
           End if
          End if
      Next
     Next
     If (Not futtern) And (Not Rand(0,2)) feld(x,y) = 0
   End Select
  Next
 next



 d = d + 1
; WriteLine fileout, R + "   " + b



 Cls

 Color 255,255,255
 For x = 0 To SX
  Line X*10,0,X*10,(SY+1)*10
 next
 For y = 0 To SY
  Line 0,y*10,(SX+1)*10,y*10
 Next
 
 For x = 0 To sx
  For y = 0 To sy
   Select feld(X,Y)
    Case 0: Color 0,0,0
    Case 1: Color 255,255,0
    Case 2: Color 255,0,0
   End Select
   Rect X*10+1,Y*10+1,9,9,1
  Next
 Next
 Color 0,0,255
 Text 0,0,d

 fileout = WriteFile("save.txt")
 For X = 0 To SX
  For y = 0 To sy
   WriteByte fileout, Feld(x,y)
   Next
 Next
 CloseFile fileout
 WaitTimer ftimer
 Flip
 SaveImage(img,"img.bmp")
 SetDeskWallpaper("img.bmp")
Forever
;CloseFile fileout
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"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!"
stummi.org
  • Zuletzt bearbeitet von Smily am Fr, Jan 26, 2007 15:50, insgesamt einmal bearbeitet

d-bug

BeitragFr, Jan 26, 2007 15:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Smily0412 hat Folgendes geschrieben:
Wem sein Desktop zu langweilig ist, kann das ja mal ausprobieren.
Ich habs mit Blitzplus getestet, aber es müsste auch mit BB2D gehen


Nein, das kann mit BB2D nicht funktionieren, da dies keine Userlibs unterstützt. Du meinst sicherlich Blitz3D, oder?

cheers

Smily

BeitragFr, Jan 26, 2007 15:50
Antworten mit Zitat
Benutzer-Profile anzeigen
thx habs korrigiert
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"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!"
stummi.org

FireballFlame

BeitragFr, Jan 26, 2007 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein. Funktioniert nicht wirklich...

Zuerst einmal kam bei mir "Too many parameters" beim CreateImage. Da muss der letzte Parameter weg, den gibts nur bei B+.
Dann kam "Array indey out of bounds", weil dort eine Schleife von 0 bis 159 bzw. 119 zählt, das Array aber nur SX*SY (=80*60) groß ist.
Deshalb hab ich SX auf 800 und SY auf 600 gesetzt und gestartet. Da klemmte das Programm und verbrauchte ca. 99,999% Prozessorleistung.
Der Desktophintergrund wurde währenddessen blau.
Ich habe geduldig gewartet und siehe da - nach ungefähr einer Minute passierte endlich etwas: "Image does not exist".
Da habe ich aufgegeben.
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

StepTiger

BeitragFr, Jan 26, 2007 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann möchte ich gern anmerken, dass mein Programm damit funktioniert Smile

Code: [AUSKLAPPEN]
Graphics 800,600,32,2
SetBuffer BackBuffer()

SeedRnd MilliSecs()

cmd$=CommandLine$()

If cmd$<>""
   
   hours=Left$(cmd$,2)
   cmd$=Right$(cmd$,Len(cmd$)-3)
   mins=Left$(cmd$,2)
   cmd$=Right$(cmd$,Len(cmd$)-3)
   seks=Left$(cmd$,2)
   
Else
   
   hours=0
   mins=1
   seks=0
   
EndIf

changetime=seks+mins*60+hours*3600
changetime=changetime*1000

Type bg
   
   Field pfad$
   Field name$
   
End Type

dir$="bg"

tdir=ReadDir(dir$)
If tdir=0 Then RuntimeError "Verzeichnis "+dir$+" existiert nicht!"

ChangeDir dir$

s$=NextFile$(tdir)

While s$<>""
   
   If FileType(s$)=1 And Lower$(Right$(s$,4))=".bmp"
      
      n.bg=New bg
      n\pfad$=s$
      
      d=Instr(s$," - ")
      If d
         
         n\name$=Left$(s$,d-1)
         
      Else
         
         r=Instr(s$,".")
         If r
            
            plus$=Left$(s$,r-1)
            
         Else
            
            plus$=s$
            
         EndIf
         
         n\name$="Unnamed - "+plus$
         
      EndIf
      
   EndIf
   
   s$=NextFile$(tdir)
   
Wend

n.bg=RandomBG()

While Not KeyHit(1)
   
   Cls
   
   If n=Null
      
      n=RandomBG()
      If n=Null Then RuntimeError "No backgrounds!"
      
   EndIf
   
   SetDeskWallpaper(n\pfad$)
   
   Flip
   
   While MilliSecs()<ntime
      
      Cls
      Text 1,01,"Aktueller Hintergrund:  "+n\name$
      Text 1,15,"Dateipfad:              "+n\pfad$
      
      If otime>MilliSecs()-3000
         
         Text 1,40,"Hintergrund gewechselt!"
         
      EndIf
      
      Flip
      
      Delay MAX(ntime-MilliSecs()-1,100)
      
      If KeyHit(1)
         
         End
         
      EndIf
      
   Wend
   
   n=RandomBG()
   otime=MilliSecs()
   ntime=otime+changetime
   
Wend

End

Function RandomBG.bg()
   
   s=Rand(1,CountBGs())
   
   n.bg=SelectBG(s)
   
   Return n
   
End Function

Function SelectBG.bg(nummer)
   
   x=1
   s.bg=First bg
   
   While x<nummer
      
      x=x+1
      s=After s
      
   Wend
   
   Return s
   
End Function

Function CountBGs()
   
   x=0
   
   For r.bg=Each bg
      
      x=x+1
      
   Next
   
   Return x
   
End Function

Function MAX(old,max)
   
   If old>max Then old=max
   
   Return old
   
End Function


Erstellt entweder einen Ordner, wo ihr alle BGs reinsetzt, oder macht sonstetwas Smile
Unterstützt auf jeden Fall nur BMP.

Zugehörige Batch-Datei:
Code: [AUSKLAPPEN]
set /p h=Zeit zwischen Wechsel? (Format hh:mm:ss)   
start bgchange.exe %h%
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

FireballFlame

BeitragFr, Jan 26, 2007 22:05
Antworten mit Zitat
Benutzer-Profile anzeigen
StepTiger hat Folgendes geschrieben:
Unterstützt auf jeden Fall nur BMP.


Nö, wieso ... hab eine Minute dran gesessen ... und jetzt unterstützts auch jpg, png, pcx, tga und iff Razz ^^

Code: [AUSKLAPPEN]
Graphics 800,600,32,2
SetBuffer BackBuffer()

SeedRnd MilliSecs()

cmd$=CommandLine$()

If cmd$<>""

hours=Left$(cmd$,2)
cmd$=Right$(cmd$,Len(cmd$)-3)
mins=Left$(cmd$,2)
cmd$=Right$(cmd$,Len(cmd$)-3)
seks=Left$(cmd$,2)

Else

hours=0
mins=10
seks=0

EndIf

changetime=seks+mins*60+hours*3600
changetime=changetime*1000

Type bg

Field pfad$
Field name$

End Type

dir$=""    <=== Hier den Pfad für die Bilder eintragen!!! (und diesen Hinweis entfernen ^^)

tdir=ReadDir(dir$)
If tdir=0 Then RuntimeError "Verzeichnis "+dir$+" existiert nicht!"

ChangeDir dir$

s$=NextFile$(tdir)

While s$<>""

endung$=Lower$(Right$(s$,4))
If FileType(s$)=1 And endung=".bmp" Or endung$=".jpg" Or endung$=".png" Or endung$=".pcx" Or endung$=".tga" Or endung$=".iff"

n.bg=New bg
n\pfad$=s$

d=Instr(s$," - ")
If d

n\name$=Left$(s$,d-1)

Else

r=Instr(s$,".")
If r

plus$=Left$(s$,r-1)

Else

plus$=s$

EndIf

n\name$="Unnamed - "+plus$

EndIf

EndIf

s$=NextFile$(tdir)

Wend

n.bg=RandomBG()

While Not KeyHit(1)

Cls

If n=Null

n=RandomBG()
If n=Null Then RuntimeError "No backgrounds!"

EndIf

bild=LoadImage(n\pfad$)
SaveImage bild,"C:\Aktueller Desktophintergrund.bmp"
SetDeskWallpaper("C:\Aktueller Desktophintergrund.bmp")

Flip

While MilliSecs()<ntime

Cls
Text 1,01,"Aktueller Hintergrund: "+n\name$
Text 1,15,"Dateipfad: "+n\pfad$

If otime>MilliSecs()-3000

Text 1,40,"Hintergrund gewechselt!"

EndIf

Flip

Delay MAX(ntime-MilliSecs()-1,100)

If KeyHit(1)

End

EndIf

Wend

n=RandomBG()
otime=MilliSecs()
ntime=otime+changetime

Wend

End

Function RandomBG.bg()

s=Rand(1,CountBGs())

n.bg=SelectBG(s)

Return n

End Function

Function SelectBG.bg(nummer)

x=1
s.bg=First bg

While x<nummer

x=x+1
s=After s

Wend

Return s

End Function

Function CountBGs()

x=0

For r.bg=Each bg

x=x+1

Next

Return x

End Function

Function MAX(old,max)

If old>max Then old=max

Return old

End Function




Wer Langeweile hat, könnte ja auch noch für B3D einbauen, dass es 3D-Modelle unterstützt (laden, rendern, SaveBuffer z.B.) oder was weiß ich ^^



Jetzt braucht man nur noch sowas hier Smile





@Smily0412: Machst du dein Programm auch noch lauffähig? ^^ Würd mich auch interessieren 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
  • Zuletzt bearbeitet von FireballFlame am Sa, Jan 27, 2007 0:09, insgesamt einmal bearbeitet

StepTiger

BeitragFr, Jan 26, 2007 23:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Huch! Ich sehe jetzt erst deinen Post.
Hab mich heute abend schon lange daran gesetzt Smile

Download gibts in wenigen Minuten hier:
hier

Viel Spaß Smile
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

Smily

BeitragSa, Jan 27, 2007 18:55
Antworten mit Zitat
Benutzer-Profile anzeigen
sry ich hab kein b3d und kann es deswegen auch nicht dafür umschreiben ^^
hier ist aber eine exe datei:
http://phpprogger.ph.funpic.de/dyndesk.exe
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"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!"
stummi.org

FireballFlame

BeitragSa, Jan 27, 2007 21:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Lol, ist das ne Räuber-Beute-Simulation? ^^
Sieht irgendwie lustig aus, verbraucht aber 55% CPU Twisted Evil

€:@StepTiger: Ich hab festgestellt, dass es effektiver ist, dein Programm sich nach einmaligem Wechseln beenden zu lassen und dafür als Windows-Task zu planen ^^
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
  • Zuletzt bearbeitet von FireballFlame am Sa, Jan 27, 2007 21:18, insgesamt einmal bearbeitet

FireballFlame

BeitragSa, Jan 27, 2007 21:17
Antworten mit Zitat
Benutzer-Profile anzeigen
(Bitte löschen, versehentlicher Doppelpost)
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

Smily

BeitragSa, Jan 27, 2007 21:30
Antworten mit Zitat
Benutzer-Profile anzeigen
FireballFlame hat Folgendes geschrieben:
Lol, ist das ne Räuber-Beute-Simulation? ^^
Sieht irgendwie lustig aus, verbraucht aber 55% CPU Twisted Evil


Ja ist es.
Also bei mir verbraucht es nur zw 10 und 20%
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"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!"
stummi.org

FireballFlame

BeitragSa, Jan 27, 2007 21:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Aaah, was hast du denn fürnen High-End-Pc? ^^
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

Smily

BeitragSa, Jan 27, 2007 21:36
Antworten mit Zitat
Benutzer-Profile anzeigen
bin gerade an einem Anderen Computer.
Aber wenn ich mich richtig erinnere ~3GHz mit ca 1GB Ram
Gruß, Smily0412
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"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!"
stummi.org

StepTiger

BeitragSa, Jan 27, 2007 21:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Meins läuft (zumindest bei mir) bei 0%, bei jedem screenwechsel 2%

mit der bat datei kann man auch die geschwindigkeit ändern.
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

FireballFlame

BeitragSa, Jan 27, 2007 21:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber ich hab nebenbei Battlefield gespielt und man merkte an den fps, dass es an war Wink
Dashalb hab ichs jetzt als Win-Task eingerichtet und nun blättert der stündlich zwischen meinen Lieblings-jpg's um ^^
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

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group