Verfasst: 28.03.2009 22:01
was bekommst du denn mit LoadSprite nicht hin...
Code: Alles auswählen
#Player
Code: Alles auswählen
LoadImage(#Player,"runner.bmp")
Okay, sehe ich natürlich ein, hab nicht daran gedacht, dass man mit veränderter Schrittweite auch mal nicht auf Null kommen kann.Kaeru Gaman hat geschrieben:"kleiner als" ist besser, notfalls "kleiner gleich", "gleich" ist völlig unsicher.
Daran hab ich gestern abend auch nicht gedacht, dass man mit meiner Version quasi im Halbversatz durchs Wandende renne kann."Hängenbleiben" im echten Wortsinne kann der "Ball" nicht, man kann immer noch rückwärts weggehen.
an dieser Stelle ein OR zu setzen ist absolut sinnlos, da kann man gleich die komplette Abfrage weglassen.
Schlicht und einfach übersehen...und dass die Wände dicker sein sollten als der "Ball" hatte ich gestern schon mal geschrieben.
Ich hab auch keinen Code vorgekaut, denn alles, was ich zusammengestellt habe, stand so schon im Thread. Ich habe nur angenommen, dass der Threadersteller durch die Art und Weise der Einrückung an eine strukturierteren Programmiestil herangeführt wird.und irgendwelchen Code vorzukauen hätte ich ebenfalls schon gestern Mittag machen können, wenn ich das für sinnvoll gehalten hätte.
Es geht doch nicht darum, jemand anderem die Position streitig zu machen oder aus einem Thread "herauszudrängen". Ich dachte, ich könnte eine sinnvolle Ergänzung bieten...aber egal, dann mach DU halt weiter......
OH.. wiso des?..ziemlich angepisst
Code: Alles auswählen
KugelneuX = KugelX + KugelBEwegX
if keyboard (up)
if kugelneuX +Kugelneubreite > würfelX and kugelneuX < WürfelX + Würfelbreite
; Kollision auf X-ebene.. das gleiche halt noch mit Y.
endif
endif
Code: Alles auswählen
; -------------------------------------------------------------------------------------------------------------
; demo raster -> Basiswissen..
; -------------------------------------------------------------------------------------------------------------
; -------------------------------------------------------------------------------------------------------------
; enumerations
; -------------------------------------------------------------------------------------------------------------
Enumeration ; sprites
#sprite_back
#sprite_wand
EndEnumeration
#rasterbreite = 15
#spielfeld_rasterbreite = 100 ; wie viele Felder nach rechts das spielfeld haben soll
#spielfeld_rasterhohe = 100 ; wie viele Felder nach unten
; -------------------------------------------------------------------------------------------------------------
; structures
; -------------------------------------------------------------------------------------------------------------
Structure boden
grafik.i
Iswand.i
EndStructure
; -------------------------------------------------------------------------------------------------------------
; globals
; -------------------------------------------------------------------------------------------------------------
Global Dim boden. boden (#spielfeld_rasterbreite,#spielfeld_rasterhohe ) ; das Spielfeld
; -------------------------------------------------------------------------------------------------------------
; Init Stuff
; -------------------------------------------------------------------------------------------------------------
InitSprite ()
InitKeyboard ()
OpenScreen ( 1024 , 768 ,32 , "test max_aigner@gemusoft )")
; -------------------------------------------------------------------------------------------------------------
; sprites erstellen
; -------------------------------------------------------------------------------------------------------------
TransparentSpriteColor ( -1 , 0 )
CreateSprite ( #sprite_back,#rasterbreite,#rasterbreite) ; sprite erstellen...
If StartDrawing ( SpriteOutput( #sprite_back )) ; drauf zeichnen
Box ( 0 , 0 , #rasterbreite , #rasterbreite , RGB( 0,222,22)) ; grün für brav=begehbar
StopDrawing () ; fertich
EndIf
CreateSprite ( #sprite_wand,#rasterbreite,#rasterbreite)
If StartDrawing ( SpriteOutput( #sprite_wand ))
Box ( 0 , 0 , #rasterbreite , #rasterbreite , RGB( 222,0,0)) ; rot für mauer = böse.
StopDrawing ( )
EndIf
; -------------------------------------------------------------------------------------------------------------
; boden erstellen
; -------------------------------------------------------------------------------------------------------------
For x = 0 To 60
For y = 0 To 50
If Random(30) = 0 ; jede 3. platte wird ungegehbar.
breiteweite = Random(20) ; maximal die 20 folgenden Rasterteie nach rechts sollen auch wände werden können
For z = 1 To breiteweite ; wir wollen ja breite wände haben -> die Wand- nachbarn auch zur Mauer machen.
If x+z <= #spielfeld_rasterbreite ; wenn die wandteile im Spielfeld sind
boden( x+z , y ) \ grafik = #sprite_wand ; das bild ist die Wand.
boden( x+z , y ) \ Iswand = 1 ; sie wird unbegehbar.
EndIf
Next
Else
If boden(x , y ) \grafik < 1 ; also, wenn es noch nichts ist, auch keine Mauer -> boden erstellen
boden( x , y ) \ grafik = #sprite_back ; das bild ist der Hintergrund
boden( x , y ) \ Iswand = 0 ; sie wird begehbar, standardmäßig sowieso 0, aber der Sauberkeit halber setzen wirs hier auch =0.
EndIf
EndIf
Next
Next
; -------------------------------------------------------------------------------------------------------------
; repeat: Anzeigen
; -------------------------------------------------------------------------------------------------------------
Repeat
ExamineKeyboard ()
FlipBuffers ()
ClearScreen (0)
; boden anzeigen
For x = 0 To 60
For y = 0 To 50
If IsSprite ( boden(x,y)\grafik ) ; also, wenn eine grafik geladen wurde -> die bodenplatte also existiert (man kann auch einfach ein "exist" für jede bodenplatte machen.. hier egal.
DisplayTransparentSprite( boden(x,y)\grafik , x *#rasterbreite, y * #rasterbreite)
EndIf
Next
Next
Until KeyboardReleased ( #PB_Key_Escape )