Hilfe beim Spiel
Code: Alles auswählen
InitSprite ()
InitKeyboard ()
OpenScreen (800,600,16,"Game")
#Farbe_Waende = $066330
#Farbe_Hintergrund = $000000
#Farbe_Ball = $FFFFFF
Ballx=560
BallY=430
Repeat
ClearScreen (#Farbe_Hintergrund)
StartDrawing (ScreenOutput())
Box (Ballx,Bally,30,30, #Farbe_Ball)
Box (80,390,560,10,#Farbe_Waende)
Box (560,310,-560,10,#Farbe_Waende)
Box (0,240,300,10,#Farbe_Waende)
Box (350,240,290,10,#Farbe_Waende)
Box (0,140,580,10,#Farbe_Waende)
Box (80,80,560,10,#Farbe_Waende)
Box (280,0,-280,10,#Farbe_Waende)
Box (340,0,300,10,#Farbe_Waende)
PunktLO = Point (Ballx - 1, Bally - 1)
PunktRO = Point (Ballx + 30, Bally - 1)
PunktLU = Point (Ballx - 1, Bally + 30)
PunktRU = Point (Ballx + 30, Bally + 30)
StopDrawing()
FlipBuffers()
ExamineKeyboard ()
If KeyboardPushed (#PB_Key_Down)
If PunktLU = #Farbe_Hintergrund Or PunktRU = #Farbe_Hintergrund
Bally+2
EndIf
EndIf
If KeyboardPushed (#PB_Key_Up)
If PunktLO = #Farbe_Hintergrund Or PunktRO = #Farbe_Hintergrund
Bally-2
EndIf
EndIf
If KeyboardPushed (#PB_Key_Right)
If PunktRO = #Farbe_Hintergrund Or PunktRU = #Farbe_Hintergrund
Ballx+2
EndIf
EndIf
If KeyboardPushed (#PB_Key_Left)
If PunktLO = #Farbe_Hintergrund Or PunktLU = #Farbe_Hintergrund
Ballx-2
EndIf
EndIf
Until Bally>480 Or BallY<0 Or KeyboardPushed (#PB_Key_Escape)
Ich habe mir mal erlaubt, alles in meinem Stil einzurücken und die Bewegungsvariablen zu entfernen.
@Crawler : Danke dir für deinen Stil ^^
Also für unsere Verhältnisse klappt das Game schon sehr gut:
1. Ball kann nicht durch die Wände
Jetzt müsste man noch diese Punkte erfüllen:
1
Jetzt Geht das Spiel nicht mehr aus wenn man oben durchgeht
was ja vorher durch dieses geschah
Müsste doch klappen da Repeat offen ist und wenn man oben durchgeht müsst er ja Until erfüllen ?
Also für unsere Verhältnisse klappt das Game schon sehr gut:
1. Ball kann nicht durch die Wände
Jetzt müsste man noch diese Punkte erfüllen:
1
2Crawler hat geschrieben: Die if-Bedingungen funktionieren, sind aber insofern buggy, als dass man mittig mit der Ball-Kante auf die kurze Strecke der Wand-Box laufen kann. Ich habe trotzdem das And durch ein Or erstzt, weil der Ball dann nicht an der Wandkleben bleibt...
Jetzt Geht das Spiel nicht mehr aus wenn man oben durchgeht
was ja vorher durch dieses geschah
Code: Alles auswählen
Until Bally>480 Or BallY<0 Or KeyboardPushed (#PB_Key_Escape)
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
"kleiner als" ist besser, notfalls "kleiner gleich", "gleich" ist völlig unsicher.
wenn er jetzt die schrittweite ändert oder eine beschleunigte Bewegung einbaut,
kann es super leicht passieren, dass die Null nicht mehr genau erreicht wird.
Grenzen mit "=" testen ist eine absolute Ausnahme!
"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.
und dass die Wände dicker sein sollten als der "Ball" hatte ich gestern schon mal geschrieben.
und irgendwelchen Code vorzukauen hätte ich ebenfalls schon gestern Mittag machen können, wenn ich das für sinnvoll gehalten hätte.
aber egal, dann mach DU halt weiter......
wenn er jetzt die schrittweite ändert oder eine beschleunigte Bewegung einbaut,
kann es super leicht passieren, dass die Null nicht mehr genau erreicht wird.
Grenzen mit "=" testen ist eine absolute Ausnahme!
"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.
und dass die Wände dicker sein sollten als der "Ball" hatte ich gestern schon mal geschrieben.
und irgendwelchen Code vorzukauen hätte ich ebenfalls schon gestern Mittag machen können, wenn ich das für sinnvoll gehalten hätte.
aber egal, dann mach DU halt weiter......
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
@Kaeru Gaman: Also gestern war ich ja noch nicht so weit wo du mir geraten hattest die Wände zu verdickern.
Heute bin ich ja schon viel weiter dank deiner Tollen Hilfe. Bei deiner Hilfe finde ich vorallem gut , dass du nicht den Code einfach reinschreibst, sondern nur ein paar anregungen zum selber nachdenken gibst.
@ALL und an alle insbesondere Crawler noch mal ein dickes danke
Mfg. Team BABA
Spiel Wurde erstma gut fertig gestellt.
HIER ZU LADEN
Werde es ma hochladen->
Hier das Logo habe bei Google kein Spiel mit dem Namen gefunden

Credits:

Heute bin ich ja schon viel weiter dank deiner Tollen Hilfe. Bei deiner Hilfe finde ich vorallem gut , dass du nicht den Code einfach reinschreibst, sondern nur ein paar anregungen zum selber nachdenken gibst.
@ALL und an alle insbesondere Crawler noch mal ein dickes danke
Mfg. Team BABA
Spiel Wurde erstma gut fertig gestellt.
HIER ZU LADEN
Werde es ma hochladen->
Hier das Logo habe bei Google kein Spiel mit dem Namen gefunden

Credits:

Nunja... Ausser das da vorher zwei Fenster geöffnet werden, hat sich nichts verändert....
Aber zu den doppelten Fenstern... eigentlich unnötig.
Einem Imagegadget kann man während der Laufzeit des Programms mitteilen,
welches Bild angezeigt werden soll.
Das ganze passiert mit " SetGadgetState(GadgetNummer, ImageID(Bildnummer)) "
So als minihelp :
Und aufgerufen wird das einfach mit
am besten kurz vor dem OpenScreen() ...
Aber zu den doppelten Fenstern... eigentlich unnötig.
Einem Imagegadget kann man während der Laufzeit des Programms mitteilen,
welches Bild angezeigt werden soll.
Das ganze passiert mit " SetGadgetState(GadgetNummer, ImageID(Bildnummer)) "
So als minihelp :
Code: Alles auswählen
Enumeration
#Titel
#Titel2
EndEnumeration
LoadImage(#Titel,"12.bmp")
LoadImage(#Titel2,"runfun1.bmp")
Procedure Titelscreen()
Win = OpenWindow(#PB_Any, 100, 100, 1024, 768, "RunFun",#PB_Window_SystemMenu)
If Win
ImageGadget(0, 0,0,1024,768, ImageID(#Titel))
While WaitWindowEvent(1) : Wend
Delay(2000)
SetGadgetState(0,ImageID(#Titel2))
While WaitWindowEvent(1) : Wend
Delay(2000)
CloseWindow(Win)
EndIf
EndProcedure
Code: Alles auswählen
TitelScreen()
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom