[B2d] Falling Sand Game
Übersicht

Gehe zu Seite Zurück 1, 2, 3, 4, 5 Weiter
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
oha, ja eigentlich sollte sich säure selbst verflüchtigen... hatte da nen kleinen fehler im code. und ich habe jetzt auch eingebaut, dass die gase einfach oben aus dem bildschirm entweichen können ![]() |
||
MrKeks.net |
snörkl |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
könntest du eine säure machen die nur sachen wie öl usw. wegätzt, aber die steine heil lässt? die könnte man dann sozusagen als endzerstörung anwenden^^. Kannst du auch noch mal ein schwarzes loch hinzufügen, bei dem man den radius einstellen kann, welches dann vielleicht statt der säure die die steine auslässt zu gebrauchen ist (also auch keine steine reinzieht)? | ||
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn du mal die erstellungszeilen des schwarzen lochs entkommentierst, wirst du sehen, dass es keine steine reinzieht ^^. hat aber einige bugs, darum habe ich es rausgenommen. und der radius lässt sich durchaus einstellen. | ||
MrKeks.net |
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
so, vor allen dingen bugfixes. wie angekündigt, nerven gase und säuren jetzt nicht mehr so viel rum. außerdem sieht jetzt alles etwas schicker aus, da nach oben zeigende flächenenden heller, nach unten zeigende dunkler werden (=. ist allerdings schon durchaus etwas speedkostend. naja.
außerdem gibts wieder zwei neue typen: heizer (entzündet zeugs bzw. verdampft wasser) und kühler (macht wasserdampf wieder flüssig) ermöglichen neue spielereien. ![]() zu bewundern: meine destille. wasser (blau) wird an den heizern (orange) zu dampf (dunkelblau). der steigt auf und wird an den kühlern (hellblau) wieder zu flüssigem wasser und fällt runter ins nächste becken. links wird dann sogar nochmal weiter destiliert. ist jetzt irgendwie lahm, aber theoretisch kann man ja säure im wasser lösen und so, damit detilieren mehr spaß macht ![]() download wieder vom alten link: http://www.mrkeks.net/files/sand.bb |
||
MrKeks.net |
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jo, Heizung und Kühlung mag ich.
Die Säure ist jetzt fast schon ein bissl zu schwach - aber auf jeden Fall verschwindet sie jetzt wieder. Dafür sind es jetzt die Pflanzen! Die Pflanzen!!!! Argh!!!!!!! Die kriegt man nicht mehr weg!!!!! ^^ Außerdem verbreiten sich Pflanzen schneller als Feuer, glaub ich *löl* Zumindest im Wasser... Aber das ganze gefällt mir trotzdem sehr gut ![]() |
||
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 So, Nov 26, 2006 15:27, insgesamt einmal bearbeitet
![]() |
Pdd |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du bist ein Gott! ![]() Man das macht gleich 5 mal soviel Spass wie vorher, und da wars schon geil! //EDIT: Aber dü könntest trotzdem mal Förderbaänder, Gebläse und so einbauen ^^ //e2: Das nenn ich "Geschlossener Kreislauf" xD |
||
Lieber Apfel als Birne. |
![]() |
Te(Y)House |
![]() Antworten mit Zitat ![]() |
---|---|---|
was ist aus den schwarzen Löchenr geworden?
Könntest du sie bitte wieder einbauen? Aber so das man sie per Taste Setzen kann! |
||
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hey! Ich finde das echt genial, was hier entsteht, und wollte auch mal einen (kleinen) Beitrag leisten. Ich habe die gesammte Steuerung auf die Maus konzentriert...vll gefällt's euch ja ![]() Code: Graphics 640,480,16,2
SetBuffer BackBuffer() Type blackhole Field x,y Field size,dir Field donotabsorb 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 ;b\donotabsorb = 3 Global CountSalz=1 Global CountWasser=1 Global CountOil=1 Global tool$="Stein" Global auswahl Repeat Cls modul 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 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) And tool$="Stein" ; 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-1 And y < sizey-1 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-1 And y < sizey-1 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-1 And y < sizey-1 Then PokeByte bank,x*sizey+sizey-y,5 Next Next ElseIf MouseDown(1) And tool$="Gras" ; 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-1 And y < sizey-1 Then PokeByte bank,x*sizey+sizey-y,6 Next Next ElseIf MouseDown(1) And tool$="Wolke" ; wolke For x = MouseX()-2 To MouseX()+2 For y = MouseY()-2 To MouseY()+2 If x > 0 And y > 0 And x < sizex-1 And y < sizey-1 Then PokeByte bank,x*sizey+sizey-y,7 Next Next ElseIf MouseDown(1) And tool$="Säure" ; säure For x = MouseX()-3 To MouseX()+3 For y = MouseY()-3 To MouseY()+3 If x > 0 And y > 0 And x < sizex-1 And y < sizey-1 Then PokeByte bank,x*sizey+sizey-y,10 Next Next ElseIf MouseDown(1) And tool$="Heizer" ; herd For x = MouseX()-3 To MouseX()+3 For y = MouseY()-3 To MouseY()+3 If x > 0 And y > 0 And x < sizex-1 And y < sizey-1 Then PokeByte bank,x*sizey+sizey-y,11 Next Next ElseIf MouseDown(1) And tool$="Kühler" ; kühler For x = MouseX()-3 To MouseX()+3 For y = MouseY()-3 To MouseY()+3 If x > 0 And y > 0 And x < sizex-1 And y < sizey-1 Then PokeByte bank,x*sizey+sizey-y,12 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 > 0 And y > 0 And x < sizex-1 And y < sizey-1 Then If x2 > 2 And y2 > 2 And x2 < sizex-3 And y2 < sizey-3 Then t2 = PeekByte(bank,x2*sizey-y2) Else t2 = 0 EndIf If b\donotabsorb=0 Then PokeByte bank,x*sizey-y,t2 Else If t2 = b\donotabsorb Then t2=0 Else t2 = PeekByte(bank,x2*sizey-y2) EndIf If PeekByte(bank,x*sizey-y) <> b\donotabsorb PokeByte bank,x*sizey-y,t2 EndIf EndIf 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 off = x*sizey+y typ = PeekByte(bank,off) showtyp = typ showtyp2 = PeekByte(bank,off+1) Select typ Case 1,2,4,10 ; salz, wasserr, öl, säure moved = 0 If typ = 10 And Rand(5)=5; ätzen ; lösen! If False ; rem Select Rand(0,1) Case 0 If x > 1 And x < sizex-2 typ2 = PeekByte(bank,off-sizey) typ3 = PeekByte(bank,off+sizey) If typ2 <> 2 And typ3 = 2 Then PokeByte bank,off+sizey,typ PokeByte bank,off,typ3 typ = typ3 ElseIf typ2 = 2 And typ3 <> 2 Then PokeByte bank,off-sizey,typ PokeByte bank,off,typ2 typ = typ2 ElseIf typ2 <> 2 And typ3 <> 2 And Rand(1) And x > 2 And x < sizex-3 typ2 = PeekByte(bank,off-sizey*2) typ3 = PeekByte(bank,off+sizey*2) If typ2 <> 2 And typ3 = 2 Then PokeByte bank,off+sizey*2,typ PokeByte bank,off,typ3 typ = typ3 ElseIf typ2 = 2 And typ3 <> 2 Then If Rand(1) Then PokeByte bank,off-sizey*2,typ PokeByte bank,off,typ2 typ = typ2 EndIf EndIf EndIf Case 1 If y > 1 And y < sizey-2 typ2 = PeekByte(bank,off-1) typ3 = PeekByte(bank,off+1) If typ2 <> 2 And typ3 = 2 Then PokeByte bank,off+1,typ PokeByte bank,off,typ3 typ = typ3 ElseIf typ2 = 2 And typ3 <> 2 Then PokeByte bank,off-1,typ PokeByte bank,off,typ2 typ = typ2 ElseIf typ2 <> 2 And typ3 <> 2 And Rand(1) And y > 2 And y < sizey-3 typ2 = PeekByte(bank,off-2) typ3 = PeekByte(bank,off+2) If typ2 <> 2 And typ3 = 2 Then PokeByte bank,off+2,typ PokeByte bank,off,typ3 typ = typ3 ElseIf typ2 = 2 And typ3 <> 2 Then If Rand(1) Then PokeByte bank,off-2,typ PokeByte bank,off,typ2 typ = typ2 EndIf EndIf EndIf End Select ; endrem Else r = Rand(1,10) Select r Case 1 If x > 0 And y < sizey-1 typ2 = PeekByte(bank,x*sizey-sizey+y+1) If typ2 = 2 If Rand(0,400) Then PokeByte bank,x*sizey-sizey+y+1,typ PokeByte bank,off,typ2 typ = typ2 ElseIf typ2 <> 0 And typ2 < 10 And Rand(0,1) If Rand(0,1) Then PokeByte bank,off-sizey+1,typ PokeByte bank,off,8 typ = 8 EndIf EndIf Case 2 If y < sizey-1 typ2 = PeekByte(bank,off+1) If typ2 = 2 If Rand(0,400) Then PokeByte bank,off+1,typ PokeByte bank,off,typ2 typ = typ2 ElseIf typ2 <> 0 And typ2 < 10 And Rand(0,1) If Rand(0,1) Then PokeByte bank,off+1,typ PokeByte bank,off,8 typ = 8 EndIf EndIf Case 3 If x < sizex-1 And y < sizey typ2 = PeekByte(bank,x*sizey+sizey+y+1) If typ2 = 2 If Rand(0,400) Then PokeByte bank,x*sizey+sizey+y+1,typ PokeByte bank,off,typ2 typ = typ2 ElseIf typ2 <> 0 And typ2 < 10 And Rand(0,1) If Rand(0,1) Then PokeByte bank,off+sizey+1,typ PokeByte bank,off,8 typ = 8 EndIf EndIf Case 4 If x > 0 typ2 = PeekByte(bank,x*sizey-sizey+y) If typ2 = 2 If Rand(0,400) Then PokeByte bank,x*sizey-sizey+y,typ PokeByte bank,off,typ2 typ = typ2 ElseIf typ2 <> 0 And typ2 < 10 And Rand(0,1) If Rand(0,1) Then PokeByte bank,off-sizey,typ PokeByte bank,off,8 typ = 8 EndIf EndIf Case 5 If x < sizex-1 typ2 = PeekByte(bank,x*sizey+sizey+y) If typ2 = 2 If Rand(0,400) Then PokeByte bank,x*sizey+sizey+y,typ PokeByte bank,off,typ2 typ = typ2 ElseIf typ2 <> 0 And typ2 < 10 And Rand(0,1) If Rand(0,1) Then PokeByte bank,off+sizey,typ PokeByte bank,off,8 typ = 8 EndIf EndIf Case 6 If x > 0 And y >0 typ2 = PeekByte(bank,x*sizey-sizey+y-1) If typ2 = 2 If Rand(0,400) Then PokeByte bank,x*sizey-sizey+y-1,typ PokeByte bank,off,typ2 typ = typ2 ElseIf typ2 <> 0 And typ2 < 10 And Rand(0,1) If Rand(0,1) Then PokeByte bank,off-sizey-1,typ PokeByte bank,off,8 typ = 8 EndIf EndIf Case 7 If y > 0 typ2 = PeekByte(bank,off-1) If typ2 = 2 If Rand(0,400) Then PokeByte bank,off-1,typ PokeByte bank,off,typ2 typ = typ2 ElseIf typ2 <> 0 And typ2 < 10 And Rand(0,1) If Rand(0,1) Then PokeByte bank,off-1,typ PokeByte bank,off,8 typ = 8 EndIf EndIf Case 8 If x < sizex-1 And y > 0 typ2 = PeekByte(bank,x*sizey+sizey+y-1) If typ2 = 2 If Rand(0,400) Then PokeByte bank,x*sizey+sizey+y-1,typ PokeByte bank,off,typ2 typ = typ2 ElseIf typ2 <> 0 And typ2 < 10 And Rand(0,1) If Rand(0,1) Then PokeByte bank,off+sizey-1,typ PokeByte bank,off,8 typ = 8 EndIf EndIf End Select EndIf EndIf If typo = 0 Or typo = 8 Or typo=9 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,off,typo PokeByte bank,off-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) Or ((typ3=8 Or typ3=9) And Rand(0,2)=1)) PokeByte bank,off,typ3 PokeByte bank,x*sizey-sizey+y,typ typ = typ3 moved = 1 ElseIf typ3 = typ And (typ2 = 0 Or (typ2 = 4 And typ=2) Or ((typ2=8 Or typ2=9) And Rand(0,2)=1)) PokeByte bank,off,typ2 PokeByte bank,x*sizey+sizey+y,typ typ = typ2 moved = 1 EndIf EndIf If typ = 2 Or typ = 4 Or typ = 10 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,off,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,off,typ2 PokeByte bank,x*sizey+sizey+y,typ typ = typ2 moved = 1 EndIf 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,off,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,off,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,off,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,off,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,off,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,off,typ2 PokeByte bank,x*sizey-sizey*2+y-1,typ typ = typ2 moved = 1 EndIf EndIf EndIf EndIf Case 5 ; feuer If Rand(50)=1 PokeByte bank,off,8 If PeekByte(bank,off+1) = 2 Then PokeByte bank,off,9 typ = 8 ElseIf Rand(0,1) And y < sizey-2 typ2 = PeekByte(bank,off+1) Select typ2 Case 0 If Rand(2)=2 PokeByte bank,off,typ2 PokeByte bank,off+1,typ typ = typ2 EndIf Case 1,11 If Rand(10)=2 PokeByte bank,off,0 typ = 0 EndIf Case 2,12 PokeByte bank,off,9 typ = 9 Case 4,6 If Rand(0,1) PokeByte bank,off+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,off,typ2 PokeByte bank,x*sizey+sizey+y-1,typ typ = typ2 EndIf Case 1,11 If Rand(10)=2 PokeByte bank,off,0 typ = 0 EndIf Case 2,12 If Rand(2)=1 PokeByte bank,off,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,off,typ2 PokeByte bank,x*sizey-sizey+y-1,typ typ = typ2 EndIf Case 1,11 If Rand(10)=2 PokeByte bank,off,0 typ = 0 EndIf Case 2,12 If Rand(2)=1 PokeByte bank,off,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,off+1) Select typ2 Case 0 If Rand(10)=5 PokeByte bank,off,typ2 PokeByte bank,off+1,typ typ = typ2 EndIf Case 1,11 If Rand(10)=2 PokeByte bank,off,0 typ = 0 EndIf Case 2,12 PokeByte bank,off,0 typ = 0 Case 4,6 If Rand(0,1) PokeByte bank,off+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,off,typ2 PokeByte bank,x*sizey+sizey+y,typ typ = typ2 Case 1,11 If Rand(10)=2 PokeByte bank,off,0 typ = 0 EndIf Case 2,12 If Rand(2-(typ2=12))=1 PokeByte bank,off,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,off,typ2 PokeByte bank,x*sizey-sizey+y,typ typ = typ2 Case 1,11 If Rand(10)=2 PokeByte bank,off,0 typ = 0 EndIf Case 2,12 If Rand(2-(typ2=12))=1 PokeByte bank,off,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 ; pflanze 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 ElseIf typ2 = 8 And Rand(1) PokeByte bank,x*sizey-sizey+y+1,0 EndIf EndIf Case 2 If y < sizey-2 typ2 = PeekByte(bank,off+1) If typ2 = 2 PokeByte bank,off+1,typ ElseIf typ2 = 8 And Rand(1) PokeByte bank,x*sizey+y-1,0 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 ElseIf typ2 = 8 And Rand(1) PokeByte bank,x*sizey+sizey+y+1,0 EndIf EndIf Case 4 If x > 1 typ2 = PeekByte(bank,x*sizey-sizey+y) If typ2 = 2 PokeByte bank,x*sizey-sizey+y,typ ElseIf typ2 = 8 And Rand(1) PokeByte bank,x*sizey-sizey+y,0 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 ElseIf typ2 = 8 And Rand(1) PokeByte bank,x*sizey+sizey+y,0 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 ElseIf typ2 = 8 And Rand(1) PokeByte bank,x*sizey-sizey+y-1,0 EndIf EndIf Case 7 If y > 1 typ2 = PeekByte(bank,off-1) If typ2 = 2 PokeByte bank,off-1,typ ElseIf typ2 = 8 And Rand(1) PokeByte bank,x*sizey+y-1,0 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 ElseIf typ2 = 8 And Rand(1) PokeByte bank,x*sizey+sizey+y-1,0 EndIf EndIf Case 38 If Rand(20)=1 Then PokeByte bank,off,4 End Select Case 7 ; wolke If Rand(0,30)=4 And y > 1 typ2 = PeekByte(bank,off-1) If typ2 = 0 PokeByte bank,off-1,2 EndIf EndIf Case 8,9 ; wasser/co2-gas moved = 0 typo = PeekByte(bank,off+1) If Rand(300)=1 And typ = 9 Then typ = 2 PokeByte bank,off,typ Else If y < sizey-1 And Rand(0,6)=2 And typo = 0 ;<> 3 And typo <> 6 And typo <> 7 And typo <> 11 And typo<>12 PokeByte bank,off,typo If y < sizey-2 Then PokeByte bank,off+1,typ typ = typo Else ; expandieren Select Rand(0,1) Case 0 If x > 1 And x < sizex-2 typ2 = PeekByte(bank,off-sizey) typ3 = PeekByte(bank,off+sizey) If typ2 <> 0 And typ3 = 0 Then PokeByte bank,off+sizey,typ PokeByte bank,off,typ3 typ = typ3 ElseIf typ2 = 0 And typ3 <> 0 Then PokeByte bank,off-sizey,typ PokeByte bank,off,typ2 typ = typ2 ElseIf typ2 = 0 And typ3 = 0 And Rand(0,1) And y < sizey-1 typ2 = PeekByte(bank,off+1) If typ2 Then Select Rand(0,1) Case 0 PokeByte bank,off-sizey,typ PokeByte bank,off,0 typ = 0 Case 1 PokeByte bank,off+sizey,typ PokeByte bank,off,0 typ = 0 End Select ElseIf y < sizey-2 typ2 = PeekByte(bank,off+2) If typ2 Then Select Rand(0,1) Case 0 PokeByte bank,off-sizey,typ PokeByte bank,off,0 typ = 0 Case 1 PokeByte bank,off+sizey,typ PokeByte bank,off,0 typ = 0 End Select EndIf EndIf ElseIf typ2 <> 0 And typ3 <> 0 And x > 2 And x < sizex-3 And False typ2 = PeekByte(bank,off-sizey*2) typ3 = PeekByte(bank,off+sizey*2) If typ2 <> 0 And typ3 = 0 Then PokeByte bank,off+sizey*2,typ PokeByte bank,off,typ3 typ = typ3 ElseIf typ2 = 0 And typ3 <> 0 Then PokeByte bank,off-sizey*2,typ PokeByte bank,off,typ2 typ = typ2 EndIf EndIf EndIf Case 1 If y > 1 And y < sizey-2 typ2 = PeekByte(bank,off-1) typ3 = PeekByte(bank,off+1) If typ2 <> 0 And typ3 = 0 Then PokeByte bank,off+1,typ PokeByte bank,off,typ3 typ = typ3 ElseIf typ2 = 0 And typ3 <> 0 Then PokeByte bank,off-1,typ PokeByte bank,off,typ2 typ = typ2 ElseIf typ2 <> 0 And typ3 <> 0 And Rand(1) And y > 2 And y < sizey-3 And False typ2 = PeekByte(bank,off-2) typ3 = PeekByte(bank,off+2) If typ2 <> 0 And typ3 = 0 Then PokeByte bank,off+2,typ PokeByte bank,off,typ3 typ = typ3 ElseIf typ2 = 0 And typ3 <> 0 Then PokeByte bank,off-2,typ PokeByte bank,off,typ2 typ = typ2 EndIf EndIf EndIf End Select EndIf EndIf Case 11 ; herd r = Rand(1,10) 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,9 ElseIf typ2 > 1 And typ2 < 8 And typ2 <> 5 PokeByte bank,x*sizey-sizey+y+1,5 EndIf EndIf Case 2 If y < sizey-2 typ2 = PeekByte(bank,off+1) If typ2 = 2 PokeByte bank,off+1,9 ElseIf typ2 > 1 And typ2 < 8 And typ2 <> 5 PokeByte bank,off+1,5 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,9 ElseIf typ2 > 1 And typ2 < 8 And typ2 <> 5 PokeByte bank,x*sizey+sizey+y+1,5 EndIf EndIf Case 4 If x > 1 typ2 = PeekByte(bank,x*sizey-sizey+y) If typ2 = 2 PokeByte bank,x*sizey-sizey+y,9 ElseIf typ2 > 1 And typ2 < 8 And typ2 <> 5 PokeByte bank,x*sizey-sizey+y,5 EndIf EndIf Case 5 If x < sizex-2 typ2 = PeekByte(bank,x*sizey+sizey+y) If typ2 = 2 PokeByte bank,x*sizey+sizey+y,9 ElseIf typ2 > 1 And typ2 < 8 And typ2 <> 5 PokeByte bank,x*sizey+sizey+y,5 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,9 ElseIf typ2 > 1 And typ2 < 8 And typ2 <> 5 PokeByte bank,x*sizey-sizey+y-1,5 EndIf EndIf Case 7 If y > 1 typ2 = PeekByte(bank,off-1) If typ2 = 2 PokeByte bank,off-1,9 ElseIf typ2 > 1 And typ2 < 8 And typ2 <> 5 PokeByte bank,off-1,5 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,9 ElseIf typ2 > 1 And typ2 < 8 And typ2 <> 5 PokeByte bank,x*sizey+sizey+y-1,5 EndIf EndIf End Select Case 12 ; kühler r = Rand(1,10) Select r Case 1 If x > 1 And y < sizey-2 typ2 = PeekByte(bank,x*sizey-sizey+y+1) If typ2 = 9 PokeByte bank,x*sizey-sizey+y+1,2 EndIf EndIf Case 2 If y < sizey-2 typ2 = PeekByte(bank,off+1) If typ2 = 9 PokeByte bank,off+1,2 EndIf EndIf Case 3 If x < sizex-2 And y < sizey typ2 = PeekByte(bank,x*sizey+sizey+y+1) If typ2 = 9 PokeByte bank,x*sizey+sizey+y+1,2 EndIf EndIf Case 4 If x > 1 typ2 = PeekByte(bank,x*sizey-sizey+y) If typ2 = 9 PokeByte bank,x*sizey-sizey+y,2 EndIf EndIf Case 5 If x < sizex-2 typ2 = PeekByte(bank,x*sizey+sizey+y) If typ2 = 9 PokeByte bank,x*sizey+sizey+y,2 EndIf EndIf Case 6 If x > 1 And y >1 typ2 = PeekByte(bank,x*sizey-sizey+y-1) If typ2 = 9 PokeByte bank,x*sizey-sizey+y-1,2 EndIf EndIf Case 7 If y > 1 typ2 = PeekByte(bank,off-1) If typ2 = 9 PokeByte bank,off-1,2 EndIf EndIf Case 8 If x < sizex-2 And y > 1 typ2 = PeekByte(bank,x*sizey+sizey+y-1) If typ2 = 9 PokeByte bank,x*sizey+sizey+y-1,2 EndIf EndIf End Select End Select ;If iterations = i If showtyp2 <> showtyp ; hell Select showtyp Case 0 ; nichts col = 0 Case 1 ; sand col = $ffffff Case 2 ; wasser col = $3065ff Case 3 ; stein col = $c8c8c8 Case 4 ; öl col = $daa953 Case 5 ; feuer col = $ff8800 Case 6 ; gras col = $40ec61 Case 7 ; wolke col = $60c0ff Case 8 ; co2 (gas) col = $604030 Case 9 ; wasserdampf col = $0030a0 Case 10; säure col = $ff7498 Case 11; herd col = $ed8640 Case 12; kühler col = $88ddff End Select If col WritePixelFast x,sizey-y,col ElseIf typo2 <> showtyp ; dunkel Select showtyp Case 0 ; nichts col = 0 Case 1 ; sand col = $bbbbbb Case 2 ; wasser col = $0000bb Case 3 ; stein col = $555555 Case 4 ; öl col = $774400 Case 5 ; feuer col = $ff8800 Case 6 ; gras col = $009900 Case 7 ; wolke col = $1188aa Case 8 ; co2 (gas) col = $604030 Case 9 ; wasserdampf col = $0030a0 Case 10; säure col = $aa0000 Case 11; herd col = $ed8640 Case 12; kühler col = $88ddff End Select If col WritePixelFast x,sizey-y,col Else Select showtyp Case 0 ; nichts col = 0 Case 1 ; sand col = $ccccaa Case 2 ; wasser col = $0000ff Case 3 ; stein col = $888888 Case 4 ; öl col = $aa9933 Case 5 ; feuer col = $ff8800 Case 6 ; gras col = $00cc11 Case 7 ; wolke col = $40a0ff Case 8 ; co2 (gas) col = $604030 Case 9 ; wasserdampf col = $0030a0 Case 10; säure col = $ff0033 Case 11; herd col = $ed8640 Case 12; kühler col = $88ddff End Select If col WritePixelFast x,sizey-y,col EndIf typo2 = showtyp typo = typ Next Wend Next UnlockBuffer BackBuffer() End Function Function modul() If auswahl=1 Then If MouseHit(1) And MouseX()>98 And MouseX()<111 Then If MouseY()>330 And MouseY()<343 Then tool$="Stein":auswahl=0 If MouseY()>350 And MouseY()<363 Then tool$="Gras":auswahl=0 If MouseY()>370 And MouseY()<383 Then tool$="Wolke":auswahl=0 If MouseY()>390 And MouseY()<403 Then tool$="Säure":auswahl=0 If MouseY()>410 And MouseY()<423 Then tool$="Heizer":auswahl=0 If MouseY()>430 And MouseY()<443 Then tool$="Kühler":auswahl=0 EndIf Color 0,0,$888888 Rect 98,330,13,13 Color 0,0,$00cc11 Rect 98,350,13,13 Color 0,0,$40a0ff Rect 98,370,13,13 Color 0,0,$ff0033 Rect 98,390,13,13 Color 0,0,$ed8640 Rect 98,410,13,13 Color 0,0,$88ddff Rect 98,430,13,13 Color 255,255,255 Text 120,330,"Stein" Text 120,350,"Gras" Text 120,370,"Wolke" Text 120,390,"Säure" Text 120,410,"Heizer" Text 120,430,"Kühler" Text 10,330,"Auswählen:" EndIf If auswahl=0 Then If MouseHit(1) And MouseX()>98 And MouseX()<111 And MouseY()>330 And MouseY()<343 Then auswahl=1-auswahl Text 50,330,"Tool: "+tool$ Select tool$ Case "Stein" Color 0,0,$888888 Case "Gras" Color 0,0,$00cc11 Case "Wolke" Color 0,0,$40a0ff Case "Säure" Color 0,0,$ff0033 Case "Heizer" Color 0,0,$ed8640 Case "Kühler" Color 0,0,$88ddff End Select Rect 98,330,13,13 Color 255,255,255 EndIf End Function |
||
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. |
snörkl |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wow^^- was eine arbeit wenn man sich das vorstellt. Das mit der Maus ist ne super idee, nur hab ich mich schon so an die tasten gewöhnt, dass ich lieber die "altmodische art" verwenden möchte xD
hab mal das destillierschema verwendet und links auch noch einen "lebendingens" gemacht ![]() ![]() achja^^-: diese beiden rohre die bei der destillation nach unten gehen machen das überflüssige wasser weg (sie destillieren es, dann dauerts seine zeit bis es wieder abgekühlt wird, und dann können die maschinen es verwenden, sonst würde alles überlaufen^^) |
||
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nochmal ein paar Verbesserungsvorschläge (also wenn ich mal Zeit habe, arbeite ich mich auch mal in den Code rein, aber momentan versteh ich's einfach noch net^^):
Wie wärs denn mit einer zweiten Wandart (z.B. Titan o.Ä.), die dann feuer-, heizer- und säurefest wäre? Und die Pflanzen zerfallen meiner Ansicht nach immernoch zu schnell. Dann noch eins: man kann die letzte reihe Pixel am rand nicht bearbeiten, d.h. man kann keine rohre zum ausgang verlegen usw. |
||
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. |
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
jap, zweite wandart ist geplant... die soll dann auch strahlungsfest sein und so (will atomar instabile elemente einbauen... wenn auch etwas vereinfacht)
das interface auf maussteuerung umstellen, habe ich auch schon lange vor augen, aber nie lust dazu gehabt. wenn ich das mache, dann richtig - also mit noch mehr featues wie anderen zeichenmethoden und so ![]() ![]() ... und es tut mir sehr leid, dass der code so unübersichtlich ist. wenn ich aber überall funktionsaufrufe drin hätte, würde das massiv speed kosten. (bei den tausendschaften an pixeln macht schon ein if mehr oder weniger welten aus ^^.) alternativ fiele mir nur ein, es auf mehrere files zu verteilen und mit include zu arbeiten (das würde es übersichtlicher machen und keinen speed kosten) - aber das würde mir das editieren unheimlich erschweren ![]() |
||
MrKeks.net |
- Zuletzt bearbeitet von Mr.Keks am Mo, Nov 27, 2006 20:40, insgesamt einmal bearbeitet
![]() |
Pdd |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jaaaaa ![]() Und förderbänder/Gebläse/Magneten/Anti-Schwerkraft/etc ![]() |
||
Lieber Apfel als Birne. |
![]() |
Te(Y)House |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und nicht vergessen > Die Schwarzen Löcher wieder einbauen!
Am besten per Taste!!! |
||
snörkl |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich hab eben einen irre langen post geschrieben, was ich alles verbessern würde, was ich gut finde, was noch verbugt ist, merke nciht das ich nicht eingeloggt bin und jetzt- alles weg ![]() Jedenfalls kurz gefasst: 1. Die schwarzen Löcher sind gar nicht weg. Du musst im Code einiges verändern, dann sind sie wieder da. Und zwar: Erst musst du die kommentare vor NEW BLACKHOLE u. folgendes wegmachen, dann vorne und hinten ein if keydown(tab) ...newblackholeblabla... endif schreiben und am ende das ganze in die hauptschleife schieben. Voila, du hast dein Schwarzes Loch!. Bei b.radius (hab den code grade nicht vor mir) kannst du dann auch den umfang von dem, was es einsaugt einstellen (wie viel). Es saugt jetzt keine Steine mehr ein, find ich persönlich gut, da man dann auch mal einen filter bauen kann, bei dem am Ende die Bestandteile zerstört werden. 2. Ich bin auch für ein Blasgetriebe, allerdings bringt das einiges an Arbeit mit sich. Denn es soll ja schließlich nicht nur nach oben blasen können sondern auch in andere Richtungen (am besten im 45° abstand). Das heißt, man braucht eine neue Methode es zu drehen, was wahrscheinlich noch komplizierter als die verschiedenen Effekte die es hervorruft wird (man muss den schwarzes Loch effekt eigentlich nur umdrehen ![]() 3. Das weiße zeugs (Sand) hat keinen richtigen effekt. Pflanze z.B. saugt wasser auf, saugt CO² auf, wird langsam zu Öl^^,usw. Feuer wiederrum kann sogut wie alles zerstören, steckt Öl in Brand usw. Wasser bla(mehr will ich jetzt nicht aufzählen). Aber Sand kann nichts! Feuer kann Sand nicht schaden, das ist auch sogut wie alles ![]() 4. BUGS: Wenn man Das Öl bis an den oberen Bildschirmrand abbrennen lässt kommt kein Öl nach! (Sieht man in meinem Screenshot, in der mitte sollte eigentlich neues Öl rieseln!) Ist übrigens auch bei den anderen sachen so (konnte Wasser bisher nicht testen, denke aber es ist genauso). Man kann glaube ich auch noch ein paar Steine auserhalb des Bildschirms setzen, wodurch dann halt auch die "Produktion" gestoppt wird. Wie schon angesprochen kann gibt es keine Verbindung zur Außenseite, also kann man brände die darüber entstehen nicht so schnell löschen^^ 5. Fragen von mir: Warum kann man nicht bis ganz nach unten an den Bildschirmrand bauen ![]() Joa, das wars schon mit den Fragen 6. LOB LOB LOB TOLLES GAME; TOLLE GRAFIK (^^) und totales Suchtpotenzial! Wenn das Spiel fertig ist solltest dus auf jeden Fall mal auf verschiedene Websiten stellen! Ich liebe es, weshalb ich auch so viele Verbesserungsvorschläge mache^^. Ich möchte es einfach noch schöner haben, es ist nämlich super! Das wars jetzt^^, mfg Snörkl PS: Dieser Post ist halb so lang wie der von eben! ![]() |
||
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bitee mach, dass die Pflanten a) nicht so schnell zu Öl werden, aber b) dass sie nachnem Bradn nicht immer wieder wachsen xD | ||
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 |
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Snörkel:
Zitat: 5. Fragen von mir:
Warum kann man nicht bis ganz nach unten an den Bildschirmrand bauen . Dann könnte man viel mehr reinpacken^^. Das würde eine enorme Rechenlast erzeugen....also NOCH größer als jetzt schon ![]() |
||
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. |
![]() |
Te(Y)House |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was wichtiges zur Rechenauslastung: Ich habe bei anderen Games dieser Art schon gesehen das der Sand etc. nicht unbedingt hängen bleibt wenn er von oben kommt sondern nach unten durch fällt.... wie währe es so wenn du das bei dem Game auch so machst? Das würde bestimmt viel Performance bringen! |
||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
snörkl hat Folgendes geschrieben: Warum kann man nicht bis ganz nach unten an den Bildschirmrand bauen
![]() Einfach Const sizey auf 479 ändern. Das erste, was ich jedes Mal mache. |
||
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 |
![]() |
biggicekey |
![]() Antworten mit Zitat ![]() |
---|---|---|
Te(Y)House hat Folgendes geschrieben: Was wichtiges zur Rechenauslastung: Ich habe bei anderen Games dieser Art schon gesehen das der Sand etc. nicht unbedingt hängen bleibt wenn er von oben kommt sondern nach unten durch fällt.... wie währe es so wenn du das bei dem Game auch so machst? Das würde bestimmt viel Performance bringen! ? wie soll man sich das vorstellen? hab die formulierung nicht verstanden. wo denn hängenbleiben ? wenn alles einfach durchfällt und weg is ergibt das doch kein sinn oder ? |
||
#45 www.icekeyunlimited.de www.starcrusade.de
Gewinner BCC#17 !!! mit dotkiller Nothing more to register - you've cleaned us out![/size] |
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
naja ich glaube es ist gemeint, dass der sand solang durchfällt bis er auf eine von einem Errichtete Mauer fällt ![]() MfG |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
Gehe zu Seite Zurück 1, 2, 3, 4, 5 Weiter
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group