Fallende Steine
Übersicht

bruce85Betreff: Fallende Steine |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich hab mal in Blitz Basic ein kleines beispiel geproggt indem die steine runterfallen wenn man auf ein Stein klickt, wenn man die Rechte Maustaste klickt, kann man dort wieder ein neuer Stein Plazieren. Ich habe das mit Arrays und Types gemacht, hier mal der Code: Code: [AUSKLAPPEN] Graphics 338,338
SetBuffer BackBuffer() ;Map erstellen Dim Spielfeld(9,9) ;aktuelle Map setzen Restore Map_Data ;Map lesen For y=0 To 9 For x=0 To 9 Read Spielfeld(x,y) Next Next ;Feld X und Y definieren Global Feld_x,Feld_y Global s.stein ;Type für die steine Type stein Field stein_x Field stein_y Field stein_x_speed Field stein_y_temp# Field stein_faellt Field stein_loeschen End Type ;Den Zufallsgenerator aktivieren SeedRnd MilliSecs() ;################ Hauptschleife ################ Repeat Cls DrawMap() DrawStein() ;Mit der rechten Maustaste kann man an dieser Position wieder ein Stein ;hin plazieren If Spielfeld(Feld_x,Feld_y) = 2 Then If MouseDown(2) And MouseHit(2) Then Spielfeld(Feld_x,Feld_y) = 1 EndIf EndIf Flip Until KeyHit(1) End ;################ Map Zeichnen ################ Function DrawMap() For y=0 To 9 For x=0 To 9 map = Spielfeld(x,y) Color 255,255,255 If map <> 0 Then Rect x*34,y*34,32,32,0 Color 128,0,0 If map = 1 Then Rect x*34+1,y*34+1,30,30,1 Next Next ;berechnung auf welches Feld die Maus sich gerade befindet If MouseX()/34 < 10 And MouseX()/34 >= 0 Then Feld_x = MouseX()/34 If MouseY()/34 < 10 And MouseY()/34 >= 0 Then Feld_y = MouseY()/34 End Function ;################ Alle Steine abfragen, Zeichnen u.s.w. ################ Function DrawStein() ;Wenn in der Data Feld eine 1 besteht wo man ;gerade mit der Maus drauf ist, dann kann das ausgeführt werden If Spielfeld(Feld_x,Feld_y) = 1 Then If MouseDown(1) Then ;Das Feld entsprechend eine andere Zahl zuweisen damit der Stein verschwindet Spielfeld(Feld_x,Feld_y) = 2 ;An dieser Position ein neuer stein erstellen s.stein = New stein s\stein_x = Feld_x*34 s\stein_y = Feld_y*34 s\stein_x_speed# = Rnd(-3,3) ;s\stein_y_temp# = 5 damit der stein nicht zu hoch springt s\stein_y_temp# = 5 ;anschließend s\stein_faellt auf true schalten s\stein_faellt = True EndIf EndIf For s.stein = Each stein ;Stein zeichnen Rect s\stein_x,s\stein_y,32,32,1 ;Wenn dieser stein auf True ist, wird das hier ausgeführt If s\stein_faellt = True Then ;s\stein_y_temp# Variable verringern s\stein_y_temp# = s\stein_y_temp# - .30 ;s\stein_y durch s\stein_y_temp# veringern s\stein_y = s\stein_y - s\stein_y_temp# ;anschließend den stein noch dazu nach links oder nach rechts bewegen, ;da wir oben eine Zufallszahl -3,3 erzeugt haben, wird der stein ;automatisch in verschiedene richtung bewegt, also -x oder +x s\stein_x = s\stein_x - s\stein_x_speed If s\stein_y > 350 Then s\stein_loeschen = 1 EndIf If s\stein_loeschen = 1 Then Delete s.stein EndIf Next End Function ;Die Daten für das Feld .Map_Data Data 1,1,1,1,1,1,1,1,1,1 Data 1,1,1,1,1,1,1,1,1,1 Data 1,1,1,1,1,1,1,1,1,1 Data 1,1,1,1,1,1,1,1,1,1 Data 1,1,1,1,1,1,1,1,1,1 Data 1,1,1,1,1,1,1,1,1,1 Data 1,1,1,1,1,1,1,1,1,1 Data 1,1,1,1,1,1,1,1,1,1 Data 1,1,1,1,1,1,1,1,1,1 Data 1,1,1,1,1,1,1,1,1,1 Ich hoffe das ist verständlich geschrieben ![]() MFG Andreas |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
![]() |
Black Spider |
![]() Antworten mit Zitat ![]() |
---|---|---|
erinnert mich an das alte Zelda für Gameboy-da kamen dir die Fliesen auch immer so entgegen,
aber schick; auch gut kommentiert. |
||
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif |
snörkl |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
irgendwie sinnlos^^- ist aber witzig | ||
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke,
ich habs halt mal hier reingepostet für die die noch net soviel ahnung mit BB haben um sowas halt mal zu zeigen ![]() MFG Andreas |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group