[B2d] Falling Sand Game

Übersicht BlitzBasic Codearchiv

Gehe zu Seite Zurück  1, 2, 3, 4, 5  Weiter

Neue Antwort erstellen

StepTiger

BeitragSa, Nov 18, 2006 19:43
Antworten mit Zitat
Benutzer-Profile anzeigen
http://www.naglmax.de/
http://fallingsandgame.com/sand/index.html

das erste funktioniert bei verbundenen Gefäßen, glaube ich ^^
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.

Mr.Keks

BeitragSo, Nov 19, 2006 20:14
Antworten mit Zitat
Benutzer-Profile anzeigen
heyho!

habe heute wieder etwas weitergebastelt. folgende änderungen: leicht verbessertes verhalten bei den verschiedenen teilchen; grün wird nach ner weile zu öl... wuchert sonst so unaufhaltsam; schwarze löcher saugen alles auf.

user posted image
(der lila punkt ist das schwarze loch Smile)

download vom alten link:
http://www.mrkeks.net/files/sand.bb
MrKeks.net

Kryan

BeitragSo, Nov 19, 2006 20:48
Antworten mit Zitat
Benutzer-Profile anzeigen
ehm...ich verstehe irgendwie nicht, was ihr an diesem spiel so interessant findet?!
erklärt doch mal Smile
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

Mr.Keks

BeitragSo, Nov 19, 2006 20:55
Antworten mit Zitat
Benutzer-Profile anzeigen
es ist kein spiel, sondern ein spielzeug bzw. eine spielerei. weiß ehrlichgesagt auch nicht, warum ich es toll finde... aber hey, was ist toller daran, virtuelle siedlungen aufzubauen oder virtuelle leben zu beenden als daran virtuelle sandhaufen aufzuhäufen? (=
es nimmt einen halt gefangen. und man bastelt etwas rum. immerwieder kommt was neues heraus. und dann muss man ja das selbst gesähte grünzeug und feuer wieder irgendwie unter kontrolle bringen und und und Smile
MrKeks.net

Jan_

Ehemaliger Admin

BeitragSo, Nov 19, 2006 22:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Mein Filter funktioniert, schon seit ca. 2 Stunden!

user posted image
between angels and insects

Te(Y)House

BeitragMo, Nov 20, 2006 17:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
noch nen paar Ideen für die nächste Version: (Bitte bitte umsetzen Very Happy)

- Diese Schwarze loch was alles anzieht muss vom Spieler frei setzbat sein

- Der Schnee oder andere Dinge werden von dem Loch unendlich lang angezogen,
z.B. wenn ich unten auf dem Boden nen Mini Schneehausfen habe dann wird daraus nen riesen haufen den man net mehr wegbekommt! Ändern ^^

- Noch nen paar neue Elemente wie: Bomben, Eis, Wind !?

Ansonsten echt geil!!!

Freue mich schon super auf die nächste Version und hoffe du setzt einige meiner
Vorschläge um!



Mfg.
Te(Y)House

Goodjee

BeitragMo, Nov 20, 2006 18:07
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habe heute versucht eine unlöschbare öllampge zu bauen...aber das feuer brennt einfach zu schnell alles weg und fackelt dann auch meine pflanzen ab...
aber hat mich trotzdem bestimmt 30 minuten gefesselt..
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/
 

Mr Hopp

BeitragMo, Nov 20, 2006 18:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey Jan_! Genau das hab ich auch als erstes gemacht Very Happy
Zitat:
Wie poste ich falsch?

Nachdem ich Google, die FAQ's und die Boardsuche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen, in den falschen Unterforen, mit kreativen Titeln und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann.

Black Spider

BeitragDi, Nov 21, 2006 17:10
Antworten mit Zitat
Benutzer-Profile anzeigen
@TeyHouse:
setze ein Code: [AUSKLAPPEN]
   ElseIf KeyHit(15) ; wolke
b.blackhole = New blackhole
b\x         = MouseX()
b\y         = MouseY()
b\size      = 200
unter das "ElseIf KeyDown(157)" und du erstellst bei druck auf Tab ein schwarzes Loch...

Ist übrigens suageil das Game und macht richtig laune ^^
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif

Lunatix

BeitragDi, Nov 21, 2006 18:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Woha es wird immer geiler!!

Ich sagte es immer wieder, Kekse sind eben die besten Ina's ;D;D;D
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...
 

snörkl

BeitragDi, Nov 21, 2006 19:26
Antworten mit Zitat
Benutzer-Profile anzeigen
also, hab jetzt die version des schwarzen löcher machens fortgesetzt(wenn man gedrückt hält macht man mehrere-frisst massig fps! und am anfang ist nicht automatisch eins gesetzt)

hier ist der code. Wem das zu blöd ist der verändere die schwarzelöchersetzen version von keyhit zu keydown und suche am anfang nach "new blackhole" und lösche die folgenden zeilen.

Code: Code: [AUSKLAPPEN]
Graphics 640,480,16,2
SetBuffer BackBuffer()


Type blackhole
   Field x,y
   Field size,dir
End Type

Const sizex = 639
Const sizey = 300

Global ri

;image = CreateImage(sizex,sizey)
bank = CreateBank(sizex*sizey+1)


Repeat
   Cls
   
   ;PokeByte bank,Rand(sizex-1)*sizey+sizey-1,2
   ;PokeByte bank,Rand(sizex-1)*sizey+sizey-1,1
   If Not KeyDown(57)
      PokeByte bank,(sizex/4+Rand(-20,20))*sizey+sizey-1,1
      PokeByte bank,(sizex*3/4+Rand(-20,20))*sizey+sizey-1,2
      PokeByte bank,(sizex*2/4+Rand(-20,20))*sizey+sizey-1,4
      PokeByte bank,(sizex*2/4+Rand(-20,20))*sizey+sizey-1,4
   EndIf
   
   If MouseDown(1) ; Wand erstellen
      For x = MouseX()-3 To MouseX()+3
         For y = MouseY()-3 To MouseY()+3
            If x > 0 And y > 0 And x < sizex-2 And y < sizey-2 Then PokeByte bank,x*sizey+sizey-y,3
         Next
      Next
   ElseIf MouseDown(2) ; Löschen
      For x = MouseX()-3 To MouseX()+3
         For y = MouseY()-3 To MouseY()+3
            If x > 0 And y > 0 And x < sizex-2 And y < sizey-2 Then PokeByte bank,x*sizey+sizey-y,0
         Next
      Next
   ElseIf MouseDown(3) ; Feuer!!
      For x = MouseX()-1 To MouseX()+1
         For y = MouseY()-3 To MouseY()+3
            If x > 0 And y > 0 And x < sizex-2 And y < sizey-2 Then PokeByte bank,x*sizey+sizey-y,5
         Next
      Next
   ElseIf KeyDown(28) ; Grün
      For x = MouseX()-1 To MouseX()+1
         For y = MouseY()-1 To MouseY()+1
            If x > 0 And y > 0 And x < sizex-2 And y < sizey-2 Then PokeByte bank,x*sizey+sizey-y,6
         Next
      Next
   ElseIf KeyDown(157) ; wolke
          ElseIf KeyDown(15) ; wolke
b.blackhole = New blackhole
b\x         = MouseX()
b\y         = MouseY()
b\size      = 200
      For x = MouseX()-2 To MouseX()+2
         For y = MouseY()-2 To MouseY()+2
            If x > 0 And y > 0 And x < sizex-2 And y < sizey-2 Then PokeByte bank,x*sizey+sizey-y,7
         Next
      Next
   EndIf
   
   UpdateSand(bank)
   
   UpdateBlackHoles(bank)
   
   fps# = (fps*19+1000/(MilliSecs()-ms))/20
   ms = MilliSecs()
   Color 255,255,255
   Text 500,0,fps
   Flip 0
Until KeyHit(1)
End

Function UpdateBlackHoles(bank)
   For b.blackhole = Each blackhole
      For i2 = 0 To 60
         le = Rand(b\size/2,b\size)
         dir# = Rnd(360)
         s# = Sin(dir)
         c# = Cos(dir)
         x2 = b\x
         y2 = b\y
         For i = 1 To le
            x = b\x + c*i
            y = b\y + s*i
            x2 = b\x + c*(i+1)
            y2 = b\y + s*(i+1)
            If x > 1 And y > 1 And x < sizex-2 And y < sizey-2 Then
               t2 = PeekByte(bank,x2*sizey-y2)
               PokeByte bank,x*sizey-y,t2
            EndIf
            x2 = x
            y2 = y
         Next
         ;Line b\x,b\y,b\x+c*le,b\y+s*le
         Color 200,0,200
         Rect b\x-2,b\y-2,4,4
      Next
   Next
End Function

Function UpdateSand(bank)
   LockBuffer BackBuffer()
   
   For i = 1 To 1
      ri = 1-ri
      x = (sizex-1)*(ri=1)
      Ende = (sizex-1)*(ri=0)
      While (x < ende And ri = 0) Or (x > ende And ri = 1)
         If ri = 1 Then x = x - 1 Else x = x + 1
         typo = 1
         For y = 0 To sizey-1
            typ = PeekByte(bank,x*sizey+y)
            showtyp = typ
            
            Select typ
            Case 1,2,4
               moved = 0
               If typo = 0 Or (typ=1 And (typo=2 Or typo=4)) Or (typ=2 And typo=4) Then
                  If typo = 0 Or Rand(0,1)
                     PokeByte bank,x*sizey+y,typo
                     PokeByte bank,x*sizey+y-1,typ
                     typ = typo
                  EndIf
               ElseIf y > 0
                  If typ = 2 Or typ = 4
                     If x < 1
                        typ3 = typ
                     Else
                        typ3 = PeekByte(bank,x*sizey-sizey+y)
                     EndIf
                     
                     If x > sizex-2
                        typ2 = typ
                     Else
                        typ2 = PeekByte(bank,x*sizey+sizey+y)
                     EndIf
                     
                     
                     If typ2 = typ And (typ3 = 0 Or (typ3 = 4 And typ=2))
                        PokeByte bank,x*sizey+y,typ3
                        PokeByte bank,x*sizey-sizey+y,typ
                        typ = typ3
                        moved = 1
                     ElseIf typ3 = typ And (typ2 = 0 Or (typ2 = 4 And typ=2))
                        PokeByte bank,x*sizey+y,typ2
                        PokeByte bank,x*sizey+sizey+y,typ
                        typ = typ2
                        moved = 1
                     EndIf
                  EndIf
                  If typ = 2 Or typ = 4
                     If x < 1
                        typ3 = typ
                     Else
                        typ3 = PeekByte(bank,x*sizey-sizey+y)
                     EndIf
                     
                     If x > sizex-2
                        typ2 = typ
                     Else
                        typ2 = PeekByte(bank,x*sizey+sizey+y)
                     EndIf
                  
                     
                     If typ2 = typ And (typ3 = 0 Or (typ3 = 4 And typ=2))
                        PokeByte bank,x*sizey+y,typ3
                        PokeByte bank,x*sizey-sizey+y,typ
                        typ = typ3
                        moved = 1
                     ElseIf typ3 = typ And (typ2 = 0 Or (typ2 = 4 And typ=2))
                        PokeByte bank,x*sizey+y,typ2
                        PokeByte bank,x*sizey+sizey+y,typ
                        typ = typ2
                        moved = 1
                     EndIf
                  EndIf
                  If typ = 2 Or typ = 4
                     If x < 1
                        typ3 = typ
                     Else
                        typ3 = PeekByte(bank,x*sizey-sizey+y)
                     EndIf
                     
                     If x > sizex-2
                        typ2 = typ
                     Else
                        typ2 = PeekByte(bank,x*sizey+sizey+y)
                     EndIf
                  
                     
                     If typ2 = typ And (typ3 = 0 Or (typ3 = 4 And typ=2))
                        PokeByte bank,x*sizey+y,typ3
                        PokeByte bank,x*sizey-sizey+y,typ
                        typ = typ3
                        moved = 1
                     ElseIf typ3 = typ And (typ2 = 0 Or (typ2 = 4 And typ=2))
                        PokeByte bank,x*sizey+y,typ2
                        PokeByte bank,x*sizey+sizey+y,typ
                        typ = typ2
                        moved = 1
                     EndIf
                  EndIf
                  
               
                  If Rand(1,2) = 1 And x < sizex-2
                     typ2 = PeekByte(bank,x*sizey+sizey+y-1)
                     If typ2 = 0 Or (typ2 = 2 And typ=1 And Rand(0,1)) Or (typ2 = 4 And Rand(0,1))
                        PokeByte bank,x*sizey+y,typ2
                        PokeByte bank,x*sizey+sizey+y-1,typ
                        typ = typ2
                        moved = 1
                     ElseIf Rand(0,1) And x < sizex-3
                        typ2 = PeekByte(bank,x*sizey+sizey*2+y-1)
                        If typ2 = 0 Or (typ2 = 2 And typ=1 And Rand(0,1)) Or (typ2 = 4 And Rand(0,1))
                           PokeByte bank,x*sizey+y,typ2
                           PokeByte bank,x*sizey+sizey*2+y-1,typ
                           typ = typ2
                           moved = 1
                        EndIf
                     EndIf
                  ElseIf x > 1
                     typ2 = PeekByte(bank,x*sizey-sizey+y-1)
                     If typ2 = 0 Or (typ2 = 2 And typ=1 And Rand(0,1)) Or (typ2 = 4 And Rand(0,1))
                        PokeByte bank,x*sizey+y,typ2
                        PokeByte bank,x*sizey-sizey+y-1,typ
                        typ = typ2
                        moved = 1
                     ElseIf Rand(0,1) And x > 2
                        typ2 = PeekByte(bank,x*sizey-sizey*2+y-1)
                        If typ2 = 0 Or (typ2 = 2 And typ=1 And Rand(0,1)) Or (typ2 = 4 And Rand(0,1))
                           PokeByte bank,x*sizey+y,typ2
                           PokeByte bank,x*sizey-sizey*2+y-1,typ
                           typ = typ2
                           moved = 1
                        EndIf
                     EndIf
                  EndIf   
               EndIf
            Case 5
               If Rand(50)=1
                  PokeByte bank,x*sizey+y,0
                  typ = 0
               ElseIf Rand(0,1) And y < sizey-2
                  typ2 = PeekByte(bank,x*sizey+y+1)
                  Select typ2
                  Case 0
                     If Rand(2)=2
                        PokeByte bank,x*sizey+y,typ2
                        PokeByte bank,x*sizey+y+1,typ
                        typ = typ2
                     EndIf
                  Case 1
                     If Rand(10)=2
                        PokeByte bank,x*sizey+y,0
                        typ = 0
                     EndIf
                  Case 2
                     PokeByte bank,x*sizey+y,0
                     typ = 0
                  Case 4,6
                     If Rand(0,1)
                        PokeByte bank,x*sizey+y+1,typ
                        typ = typ
                     EndIf
                  End Select
               ElseIf Rand(0,1) And y > 1
                  If Rand(0,1) And x < sizex-2
                     typ2 = PeekByte(bank,x*sizey+sizey+y)
                     Select typ2
                     Case 0
                        If Rand(20)=2
                           PokeByte bank,x*sizey+y,typ2
                           PokeByte bank,x*sizey+sizey+y-1,typ
                           typ = typ2
                        EndIf
                     Case 1
                        If Rand(10)=2
                           PokeByte bank,x*sizey+y,0
                           typ = 0
                        EndIf
                     Case 2
                        If Rand(2)=1
                           PokeByte bank,x*sizey+y,0
                           typ = 0
                        EndIf
                     Case 4,6
                        If Rand(0,1)
                           PokeByte bank,x*sizey+sizey+y-1,typ
                           typ = typ
                        EndIf
                     End Select
                  ElseIf x > 1 And Rand(0,1)
                     typ2 = PeekByte(bank,x*sizey-sizey+y-1)
                     Select typ2
                     Case 0
                        If Rand(20=2)
                           PokeByte bank,x*sizey+y,typ2
                           PokeByte bank,x*sizey-sizey+y-1,typ
                           typ = typ2
                        EndIf
                     Case 1
                        If Rand(10)=2
                           PokeByte bank,x*sizey+y,0
                           typ = 0
                        EndIf
                     Case 2
                        If Rand(2)=1
                           PokeByte bank,x*sizey+y,0
                           typ = 0
                        EndIf
                     Case 4,6
                        If Rand(0,1)
                           PokeByte bank,x*sizey-sizey+y-1,typ
                           typ = typ
                        EndIf
                     End Select
                  Else
                     typ2 = PeekByte(bank,x*sizey+y+1)
                     Select typ2
                     Case 0
                        If Rand(10)=5
                           PokeByte bank,x*sizey+y,typ2
                           PokeByte bank,x*sizey+y+1,typ
                           typ = typ2
                        EndIf
                     Case 1
                        If Rand(10)=2
                           PokeByte bank,x*sizey+y,0
                           typ = 0
                        EndIf
                     Case 2
                        PokeByte bank,x*sizey+y,0
                        typ = 0
                     Case 4,6
                        If Rand(0,1)
                           PokeByte bank,x*sizey+y+1,typ
                           typ = typ
                        EndIf
                     End Select
                  EndIf
               Else
                  If Rand(0,1) And x < sizex-2
                     typ2 = PeekByte(bank,x*sizey+sizey+y)
                     Select typ2
                     Case 0
                        PokeByte bank,x*sizey+y,typ2
                        PokeByte bank,x*sizey+sizey+y,typ
                        typ = typ2
                     Case 1
                        If Rand(10)=2
                           PokeByte bank,x*sizey+y,0
                           typ = 0
                        EndIf
                     Case 2
                        If Rand(2)=1
                           PokeByte bank,x*sizey+y,0
                           typ = 0
                        EndIf
                     Case 4,6
                        If Rand(0,1)
                           PokeByte bank,x*sizey+sizey+y,typ
                           typ = typ
                        EndIf
                     End Select
                  ElseIf x > 1
                     typ2 = PeekByte(bank,x*sizey-sizey+y)
                     Select typ2
                     Case 0
                        PokeByte bank,x*sizey+y,typ2
                        PokeByte bank,x*sizey-sizey+y,typ
                        typ = typ2
                     Case 1
                        If Rand(10)=2
                           PokeByte bank,x*sizey+y,0
                           typ = 0
                        EndIf
                     Case 2
                        If Rand(2)=1
                           PokeByte bank,x*sizey+y,0
                           typ = 0
                        EndIf
                     Case 4,6
                        If Rand(0,1)
                           PokeByte bank,x*sizey-sizey+y,typ
                           typ = typ
                        EndIf
                     End Select
                  EndIf
               EndIf
            Case 6
               r = Rand(1,40)
               Select r
               Case 1
                  If x > 1 And y < sizey-2
                     typ2 = PeekByte(bank,x*sizey-sizey+y+1)
                     If typ2 = 2
                        PokeByte bank,x*sizey-sizey+y+1,typ
                     EndIf
                  EndIf
               Case 2
                  If y < sizey-2
                     typ2 = PeekByte(bank,x*sizey+y+1)
                     If typ2 = 2
                        PokeByte bank,x*sizey+y+1,typ
                     EndIf
                  EndIf
               Case 3
                  If x < sizex-2 And y < sizey
                     typ2 = PeekByte(bank,x*sizey+sizey+y+1)
                     If typ2 = 2
                        PokeByte bank,x*sizey+sizey+y+1,typ
                     EndIf
                  EndIf
               Case 4
                  If x > 1
                     typ2 = PeekByte(bank,x*sizey-sizey+y)
                     If typ2 = 2
                        PokeByte bank,x*sizey-sizey+y,typ
                     EndIf
                  EndIf
               Case 5
                  If x < sizex-2
                     typ2 = PeekByte(bank,x*sizey+sizey+y)
                     If typ2 = 2
                        PokeByte bank,x*sizey+sizey+y,typ
                     EndIf
                  EndIf
               Case 6
                  If x > 1 And y >1
                     typ2 = PeekByte(bank,x*sizey-sizey+y-1)
                     If typ2 = 2
                        PokeByte bank,x*sizey-sizey+y-1,typ
                     EndIf
                  EndIf
               Case 7
                  If y > 1
                     typ2 = PeekByte(bank,x*sizey+y-1)
                     If typ2 = 2
                        PokeByte bank,x*sizey+y-1,typ
                     EndIf
                  EndIf
               Case 8
                  If x < sizex-2 And y > 1
                     typ2 = PeekByte(bank,x*sizey+sizey+y-1)
                     If typ2 = 2
                        PokeByte bank,x*sizey+sizey+y-1,typ
                     EndIf
                  EndIf
               Case 38
                  If Rand(20)=1 Then   PokeByte bank,x*sizey+y,4
               End Select
            Case 7
               If Rand(0,30)=4 And y > 1
                  typ2 = PeekByte(bank,x*sizey+y-1)
                  If typ2 = 0
                     PokeByte bank,x*sizey+y-1,2
                  EndIf
               EndIf
            End Select
            
            typo = typ
            
            ;If iterations = i
               Select showtyp
               Case 0 ; nichts
                  col = 0
               Case 1 ; sand
                  col = $ffffff
               Case 2 ; wasser
                  col = $0000ff
               Case 3 ; stein
                  col = $888888
               Case 4 ; öl
                  col = $aa9933
               Case 5 ; feuer
                  col = $ff4400
               Case 6 ; gras
                  col = $00cc11
               Case 7 ; wolke
                  col = $40a0ff
               End Select
               If col WritePixelFast x,sizey-y,col
            ;EndIf
         Next
      Wend
   Next
   
   UnlockBuffer BackBuffer()
End Function


mfg
Snörkl

StepTiger

BeitragDi, Nov 21, 2006 22:37
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab mich jetzt auch mal an dem Code versucht und habe es so gemacht, dass man die Geschwindigkeit ändern kann!
Code: [AUSKLAPPEN]
Graphics 640,480,16,2
SetBuffer BackBuffer()


Type blackhole
   Field x,y
   Field size,dir
End Type

Const sizex = 639
Const sizey = 300

Global ri

;image = CreateImage(sizex,sizey)
bank = CreateBank(sizex*sizey+1)

;b.blackhole = New blackhole
;b\x         = 200
;b\y         = 140
;b\size      = 200

Global CountSalz=1
Global CountWasser=1
Global CountOil=1

Repeat
   Cls
   
   t=t+1
   
   CountSalz=CountSalz+KeyHit(22)-KeyHit(36)
   If CountSalz<0 Then CountSalz=CountSalz+6
   CountSalz=CountSalz Mod 6
   
   CountWasser=CountWasser+KeyHit(24)-KeyHit(38)
   If CountWasser<0 Then CountWasser=CountWasser+6
   CountWasser=CountWasser Mod 6
   
   CountOil=CountOil+KeyHit(23)-KeyHit(37)
   If CountOil<0 Then CountOil=CountOil+6
   CountOil=CountOil Mod 6
   
   ;PokeByte bank,Rand(sizex-1)*sizey+sizey-1,2
   ;PokeByte bank,Rand(sizex-1)*sizey+sizey-1,1
   If Not KeyDown(57)
      For c=1 To CountSalz
         PokeByte bank,(sizex/4+Rand(-20,20))*sizey+sizey-1,1
      Next
      For c=1 To CountWasser
         PokeByte bank,(sizex*3/4+Rand(-20,20))*sizey+sizey-1,2
      Next
      For c=1 To CountOil
         PokeByte bank,(sizex*2/4+Rand(-20,20))*sizey+sizey-1,4
      Next
   EndIf
   
   If MouseDown(1) ; Wand erstellen
      For x = MouseX()-3 To MouseX()+3
         For y = MouseY()-3 To MouseY()+3
            If x > 0 And y > 0 And x < sizex-2 And y <= sizey Then PokeByte bank,x*sizey+sizey-y,3
         Next
      Next
   ElseIf MouseDown(2) ; Löschen
      For x = MouseX()-3 To MouseX()+3
         For y = MouseY()-3 To MouseY()+3
            If x > 0 And y > 0 And x < sizex-2 And y <= sizey Then PokeByte bank,x*sizey+sizey-y,0
         Next
      Next
   ElseIf MouseDown(3) ; Feuer!!
      For x = MouseX()-1 To MouseX()+1
         For y = MouseY()-3 To MouseY()+3
            If x > 0 And y > 0 And x < sizex-2 And y <= sizey Then PokeByte bank,x*sizey+sizey-y,5
         Next
      Next
   ElseIf KeyDown(28) ; Grün
      For x = MouseX()-1 To MouseX()+1
         For y = MouseY()-1 To MouseY()+1
            If x > 0 And y > 0 And x < sizex-2 And y <= sizey Then PokeByte bank,x*sizey+sizey-y,6
         Next
      Next
   ElseIf KeyDown(157) ; wolke
      For x = MouseX()-2 To MouseX()+2
         For y = MouseY()-2 To MouseY()+2
            If x > 0 And y > 0 And x < sizex-2 And y <= sizey Then PokeByte bank,x*sizey+sizey-y,7
         Next
      Next
   EndIf
   
   UpdateSand(bank)
   
   UpdateBlackHoles(bank)
   
   fps# = (fps*19+1000/(MilliSecs()-ms))/20
   ms = MilliSecs()
   Color 255,255,255
   Text 500,0,fps
   Text 0,300,CountSalz
   Text 300,300,CountOil
   Text 600,300,CountWasser
   Flip 0
Until KeyHit(1)
End

Function UpdateBlackHoles(bank)
   For b.blackhole = Each blackhole
      For i2 = 0 To 60
         le = Rand(b\size/2,b\size)
         dir# = Rnd(360)
         s# = Sin(dir)
         c# = Cos(dir)
         x2 = b\x
         y2 = b\y
         For i = 1 To le
            x = b\x + c*i
            y = b\y + s*i
            x2 = b\x + c*(i+1)
            y2 = b\y + s*(i+1)
            If x > 1 And y > 1 And x < sizex-2 And y < sizey-2 Then
               t2 = PeekByte(bank,x2*sizey-y2)
               PokeByte bank,x*sizey-y,t2
            EndIf
            x2 = x
            y2 = y
         Next
         ;Line b\x,b\y,b\x+c*le,b\y+s*le
         Color 200,0,200
         Rect b\x-2,b\y-2,4,4
      Next
   Next
End Function

Function UpdateSand(bank)
   LockBuffer BackBuffer()
   
   For i = 1 To 1
      ri = 1-ri
      x = (sizex-1)*(ri=1)
      Ende = (sizex-1)*(ri=0)
      While (x < ende And ri = 0) Or (x > ende And ri = 1)
         If ri = 1 Then x = x - 1 Else x = x + 1
         typo = 1
         For y = 0 To sizey-1
            typ = PeekByte(bank,x*sizey+y)
            showtyp = typ
            
            Select typ
            Case 1,2,4
               moved = 0
               If typo = 0 Or (typ=1 And (typo=2 Or typo=4)) Or (typ=2 And typo=4) Then
                  If typo = 0 Or Rand(0,1)
                     PokeByte bank,x*sizey+y,typo
                     PokeByte bank,x*sizey+y-1,typ
                     typ = typo
                  EndIf
               ElseIf y > 0
                  If typ = 2 Or typ = 4
                     If x < 1
                        typ3 = typ
                     Else
                        typ3 = PeekByte(bank,x*sizey-sizey+y)
                     EndIf
                     
                     If x > sizex-2
                        typ2 = typ
                     Else
                        typ2 = PeekByte(bank,x*sizey+sizey+y)
                     EndIf
                     
                     
                     If typ2 = typ And (typ3 = 0 Or (typ3 = 4 And typ=2))
                        PokeByte bank,x*sizey+y,typ3
                        PokeByte bank,x*sizey-sizey+y,typ
                        typ = typ3
                        moved = 1
                     ElseIf typ3 = typ And (typ2 = 0 Or (typ2 = 4 And typ=2))
                        PokeByte bank,x*sizey+y,typ2
                        PokeByte bank,x*sizey+sizey+y,typ
                        typ = typ2
                        moved = 1
                     EndIf
                  EndIf
                  If typ = 2 Or typ = 4
                     If x < 1
                        typ3 = typ
                     Else
                        typ3 = PeekByte(bank,x*sizey-sizey+y)
                     EndIf
                     
                     If x > sizex-2
                        typ2 = typ
                     Else
                        typ2 = PeekByte(bank,x*sizey+sizey+y)
                     EndIf
                  
                     
                     If typ2 = typ And (typ3 = 0 Or (typ3 = 4 And typ=2))
                        PokeByte bank,x*sizey+y,typ3
                        PokeByte bank,x*sizey-sizey+y,typ
                        typ = typ3
                        moved = 1
                     ElseIf typ3 = typ And (typ2 = 0 Or (typ2 = 4 And typ=2))
                        PokeByte bank,x*sizey+y,typ2
                        PokeByte bank,x*sizey+sizey+y,typ
                        typ = typ2
                        moved = 1
                     EndIf
                  EndIf
                  If typ = 2 Or typ = 4
                     If x < 1
                        typ3 = typ
                     Else
                        typ3 = PeekByte(bank,x*sizey-sizey+y)
                     EndIf
                     
                     If x > sizex-2
                        typ2 = typ
                     Else
                        typ2 = PeekByte(bank,x*sizey+sizey+y)
                     EndIf
                  
                     
                     If typ2 = typ And (typ3 = 0 Or (typ3 = 4 And typ=2))
                        PokeByte bank,x*sizey+y,typ3
                        PokeByte bank,x*sizey-sizey+y,typ
                        typ = typ3
                        moved = 1
                     ElseIf typ3 = typ And (typ2 = 0 Or (typ2 = 4 And typ=2))
                        PokeByte bank,x*sizey+y,typ2
                        PokeByte bank,x*sizey+sizey+y,typ
                        typ = typ2
                        moved = 1
                     EndIf
                  EndIf
                  
               
                  If Rand(1,2) = 1 And x < sizex-2
                     typ2 = PeekByte(bank,x*sizey+sizey+y-1)
                     If typ2 = 0 Or (typ2 = 2 And typ=1 And Rand(0,1)) Or (typ2 = 4 And Rand(0,1))
                        PokeByte bank,x*sizey+y,typ2
                        PokeByte bank,x*sizey+sizey+y-1,typ
                        typ = typ2
                        moved = 1
                     ElseIf Rand(0,1) And x < sizex-3
                        typ2 = PeekByte(bank,x*sizey+sizey*2+y-1)
                        If typ2 = 0 Or (typ2 = 2 And typ=1 And Rand(0,1)) Or (typ2 = 4 And Rand(0,1))
                           PokeByte bank,x*sizey+y,typ2
                           PokeByte bank,x*sizey+sizey*2+y-1,typ
                           typ = typ2
                           moved = 1
                        EndIf
                     EndIf
                  ElseIf x > 1
                     typ2 = PeekByte(bank,x*sizey-sizey+y-1)
                     If typ2 = 0 Or (typ2 = 2 And typ=1 And Rand(0,1)) Or (typ2 = 4 And Rand(0,1))
                        PokeByte bank,x*sizey+y,typ2
                        PokeByte bank,x*sizey-sizey+y-1,typ
                        typ = typ2
                        moved = 1
                     ElseIf Rand(0,1) And x > 2
                        typ2 = PeekByte(bank,x*sizey-sizey*2+y-1)
                        If typ2 = 0 Or (typ2 = 2 And typ=1 And Rand(0,1)) Or (typ2 = 4 And Rand(0,1))
                           PokeByte bank,x*sizey+y,typ2
                           PokeByte bank,x*sizey-sizey*2+y-1,typ
                           typ = typ2
                           moved = 1
                        EndIf
                     EndIf
                  EndIf   
               EndIf
            Case 5
               If Rand(50)=1
                  PokeByte bank,x*sizey+y,0
                  typ = 0
               ElseIf Rand(0,1) And y < sizey-2
                  typ2 = PeekByte(bank,x*sizey+y+1)
                  Select typ2
                  Case 0
                     If Rand(2)=2
                        PokeByte bank,x*sizey+y,typ2
                        PokeByte bank,x*sizey+y+1,typ
                        typ = typ2
                     EndIf
                  Case 1
                     If Rand(10)=2
                        PokeByte bank,x*sizey+y,0
                        typ = 0
                     EndIf
                  Case 2
                     PokeByte bank,x*sizey+y,0
                     typ = 0
                  Case 4,6
                     If Rand(0,1)
                        PokeByte bank,x*sizey+y+1,typ
                        typ = typ
                     EndIf
                  End Select
               ElseIf Rand(0,1) And y > 1
                  If Rand(0,1) And x < sizex-2
                     typ2 = PeekByte(bank,x*sizey+sizey+y)
                     Select typ2
                     Case 0
                        If Rand(20)=2
                           PokeByte bank,x*sizey+y,typ2
                           PokeByte bank,x*sizey+sizey+y-1,typ
                           typ = typ2
                        EndIf
                     Case 1
                        If Rand(10)=2
                           PokeByte bank,x*sizey+y,0
                           typ = 0
                        EndIf
                     Case 2
                        If Rand(2)=1
                           PokeByte bank,x*sizey+y,0
                           typ = 0
                        EndIf
                     Case 4,6
                        If Rand(0,1)
                           PokeByte bank,x*sizey+sizey+y-1,typ
                           typ = typ
                        EndIf
                     End Select
                  ElseIf x > 1 And Rand(0,1)
                     typ2 = PeekByte(bank,x*sizey-sizey+y-1)
                     Select typ2
                     Case 0
                        If Rand(20=2)
                           PokeByte bank,x*sizey+y,typ2
                           PokeByte bank,x*sizey-sizey+y-1,typ
                           typ = typ2
                        EndIf
                     Case 1
                        If Rand(10)=2
                           PokeByte bank,x*sizey+y,0
                           typ = 0
                        EndIf
                     Case 2
                        If Rand(2)=1
                           PokeByte bank,x*sizey+y,0
                           typ = 0
                        EndIf
                     Case 4,6
                        If Rand(0,1)
                           PokeByte bank,x*sizey-sizey+y-1,typ
                           typ = typ
                        EndIf
                     End Select
                  Else
                     typ2 = PeekByte(bank,x*sizey+y+1)
                     Select typ2
                     Case 0
                        If Rand(10)=5
                           PokeByte bank,x*sizey+y,typ2
                           PokeByte bank,x*sizey+y+1,typ
                           typ = typ2
                        EndIf
                     Case 1
                        If Rand(10)=2
                           PokeByte bank,x*sizey+y,0
                           typ = 0
                        EndIf
                     Case 2
                        PokeByte bank,x*sizey+y,0
                        typ = 0
                     Case 4,6
                        If Rand(0,1)
                           PokeByte bank,x*sizey+y+1,typ
                           typ = typ
                        EndIf
                     End Select
                  EndIf
               Else
                  If Rand(0,1) And x < sizex-2
                     typ2 = PeekByte(bank,x*sizey+sizey+y)
                     Select typ2
                     Case 0
                        PokeByte bank,x*sizey+y,typ2
                        PokeByte bank,x*sizey+sizey+y,typ
                        typ = typ2
                     Case 1
                        If Rand(10)=2
                           PokeByte bank,x*sizey+y,0
                           typ = 0
                        EndIf
                     Case 2
                        If Rand(2)=1
                           PokeByte bank,x*sizey+y,0
                           typ = 0
                        EndIf
                     Case 4,6
                        If Rand(0,1)
                           PokeByte bank,x*sizey+sizey+y,typ
                           typ = typ
                        EndIf
                     End Select
                  ElseIf x > 1
                     typ2 = PeekByte(bank,x*sizey-sizey+y)
                     Select typ2
                     Case 0
                        PokeByte bank,x*sizey+y,typ2
                        PokeByte bank,x*sizey-sizey+y,typ
                        typ = typ2
                     Case 1
                        If Rand(10)=2
                           PokeByte bank,x*sizey+y,0
                           typ = 0
                        EndIf
                     Case 2
                        If Rand(2)=1
                           PokeByte bank,x*sizey+y,0
                           typ = 0
                        EndIf
                     Case 4,6
                        If Rand(0,1)
                           PokeByte bank,x*sizey-sizey+y,typ
                           typ = typ
                        EndIf
                     End Select
                  EndIf
               EndIf
            Case 6
               r = Rand(1,40)
               Select r
               Case 1
                  If x > 1 And y < sizey-2
                     typ2 = PeekByte(bank,x*sizey-sizey+y+1)
                     If typ2 = 2
                        PokeByte bank,x*sizey-sizey+y+1,typ
                     EndIf
                  EndIf
               Case 2
                  If y < sizey-2
                     typ2 = PeekByte(bank,x*sizey+y+1)
                     If typ2 = 2
                        PokeByte bank,x*sizey+y+1,typ
                     EndIf
                  EndIf
               Case 3
                  If x < sizex-2 And y < sizey
                     typ2 = PeekByte(bank,x*sizey+sizey+y+1)
                     If typ2 = 2
                        PokeByte bank,x*sizey+sizey+y+1,typ
                     EndIf
                  EndIf
               Case 4
                  If x > 1
                     typ2 = PeekByte(bank,x*sizey-sizey+y)
                     If typ2 = 2
                        PokeByte bank,x*sizey-sizey+y,typ
                     EndIf
                  EndIf
               Case 5
                  If x < sizex-2
                     typ2 = PeekByte(bank,x*sizey+sizey+y)
                     If typ2 = 2
                        PokeByte bank,x*sizey+sizey+y,typ
                     EndIf
                  EndIf
               Case 6
                  If x > 1 And y >1
                     typ2 = PeekByte(bank,x*sizey-sizey+y-1)
                     If typ2 = 2
                        PokeByte bank,x*sizey-sizey+y-1,typ
                     EndIf
                  EndIf
               Case 7
                  If y > 1
                     typ2 = PeekByte(bank,x*sizey+y-1)
                     If typ2 = 2
                        PokeByte bank,x*sizey+y-1,typ
                     EndIf
                  EndIf
               Case 8
                  If x < sizex-2 And y > 1
                     typ2 = PeekByte(bank,x*sizey+sizey+y-1)
                     If typ2 = 2
                        PokeByte bank,x*sizey+sizey+y-1,typ
                     EndIf
                  EndIf
               Case 38
                  If Rand(20)=1 Then   PokeByte bank,x*sizey+y,4
               End Select
            Case 7
               If Rand(0,30)=4 And y > 1
                  typ2 = PeekByte(bank,x*sizey+y-1)
                  If typ2 = 0
                     PokeByte bank,x*sizey+y-1,2
                  EndIf
               EndIf
            End Select
            
            typo = typ
            
            ;If iterations = i
               Select showtyp
               Case 0 ; nichts
                  col = 0
               Case 1 ; sand
                  col = $ffffff
               Case 2 ; wasser
                  col = $0000ff
               Case 3 ; stein
                  col = $888888
               Case 4 ; öl
                  col = $aa9933
               Case 5 ; feuer
                  col = $ff4400
               Case 6 ; gras
                  col = $00cc11
               Case 7 ; wolke
                  col = $40a0ff
               End Select
               If col WritePixelFast x,sizey-y,col
            ;EndIf
         Next
      Wend
   Next
   
   UnlockBuffer BackBuffer()
End Function


uj, ik und il Laughing

^---Das ist ein Code... Mal sehen, ob ihr ihn rausbekommt. Very Happy (@Christoph, laut Paragraph... Very Happy)
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.
 

snörkl

BeitragMi, Nov 22, 2006 13:12
Antworten mit Zitat
Benutzer-Profile anzeigen
gefällt mir^^ nur hast du wahrscheinlich ausversehen die schwarze löcher funktion rausgenommen Very Happy

D2006

Administrator

BeitragMi, Nov 22, 2006 13:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Dafür kann man bei dir keine Wolken setzen. Was schade ist, denn imho sind die schwarzen Löcher voll doof.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

Christoph

BeitragMi, Nov 22, 2006 17:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Die machen alles kaputt *schluchz* Wink

Man sollte eine Taste machen, die die schwarzen Löcher wieder löscht. Smile
 

snörkl

BeitragMi, Nov 22, 2006 17:46
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, oder verschiedene arten von schwarzen löchern generieren können! Also solche, die dann deine Steine nicht ansaugen^^- wenn man einen filter baut, der am ende die steine wegsaugen soll, geht dass nicht weil dein filter mit eingesaugt wird xD

mfg
Snörkl

FireballFlame

BeitragSa, Nov 25, 2006 0:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Geil.
Ich hab mich jetzt über eine Stunde lang am Stück nur damit beschäftigt, Wolken zu setzen, Pflanzen zu pflanzen, Öl zu sammeln, Wolken zu löschen, Feuer zu legen, zuzuschauen wie alles abfackelt, dann wieder Wolken zu setzen, Pflanzen zu pflanzen, Öl zu sammeln, Wolken zu löschen, Feuer zu legen, zuzuschauen wie alles abfackelt, dann wieder Wolken zu setzen, Pflanzen zu pflanzen, Öl zu sammeln, Wolken zu löschen, Feuer zu legen, zuzuschauen wie alles abfackelt . . .

Ich find das so klasse ... das ist nichts weiter als ein lächerliches 500-Zeilen-Programm, ohne Medias usw. - und es macht mehr Spaß als so manches für teures Geld im Handel käufliche Game ...

Mr.Keks

BeitragSa, Nov 25, 2006 22:49
Antworten mit Zitat
Benutzer-Profile anzeigen
freut mich zu lesen, dass ihr alle genau so viel spaß wie ich an dem zeugs habt! Smile

und weiter gings. with new and improved formula: jetzt auch gas (co2 nach verbrennen und wasserdampf, der wieder kondensiert). co2 wird von pflanzen aufgesogen, wasserdampf kondensiert von selbst zu wasser zurück. die gase haben sogar ganze zwei dichtezustände! (= außerdem gibts jetzt säure (mit s zu erstellen...) die ist chemisch nicht ganz korrekt, aber egal. sie verteilt sich in wasser und alles andere ätzt sie weg. wenn sie nicht gerade was wegätzt oder sich in wasser löst, verhält sie sich wie ne flüssigkeit.

user posted image
(feuer ist jetzt orange, das rote hingegen ist säure)

download wieder vom alten link:
http://www.mrkeks.net/files/sand.bb
MrKeks.net

Pdd

BeitragSa, Nov 25, 2006 23:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Juhu! Gleich mal antesten! Wie ist denn die Tastenbelegungn so?
Lieber Apfel als Birne.

FireballFlame

BeitragSo, Nov 26, 2006 2:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Auch sehr nett!
Säure und Kohlendioxod sind mir allerdings zu hartnäckig, die kriegt man ja garnicht wieder weg (auch die Pflanzen atmen net besonders viel - da hilft dann nur noch RMB, aba das is ja doof)
Säure müsste im Wasser langsam verschwinden, und CO2 auch, find ich...
Ach ja, und die Pflanzen sterben zu schnell Wink
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

Gehe zu Seite Zurück  1, 2, 3, 4, 5  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group