Abend,
Stimmt, das Problem hatte ich tatsächlich. Windows hat immer gemeldet, dass vom Programm keine Rückmeldung vorhanden ist.
Vielen Dank für den Angepassten Code und die Hilfe, der aktuelle Code sieht nun wie folgt aus, besser?
Code: Alles auswählen
;- Konstante
width = 800
height = 600
;- Initialisation
If Not OpenWindow(0, 0, 0, width, height, "Pong", #PB_Window_ScreenCentered)
End
EndIf
If Not (InitKeyboard() And InitSprite())
End
EndIf
If Not OpenWindowedScreen(WindowID(0), 0, 0, width, height, 0, 0, 0)
End
EndIf
;- Schriftart
If Not LoadFont(0, "OCR A Std", 80)
End
EndIf
;-Sprites
If Not CreateSprite(0, 20, 100)
End
EndIf
If StartDrawing(SpriteOutput(0))
Box(0, 0, 20, 100, $FFFFFF)
StopDrawing()
EndIf
; Sprite Rechts
If Not CreateSprite(1, 20, 100)
End
EndIf
If StartDrawing(SpriteOutput(1))
Box(0, 0, 20, 100, $FFFFFF)
StopDrawing()
EndIf
; Sprite Oben
If Not CreateSprite(2, 800, 10)
End
EndIf
If StartDrawing(SpriteOutput(2))
Box(0, 0, 800, 10, $FFFFFF)
StopDrawing()
EndIf
; Sprite Unten
If Not CreateSprite(3, 800, 10)
End
EndIf
If StartDrawing(SpriteOutput(3))
Box(0, 0, 800, 10, $FFFFFF)
StopDrawing()
EndIf
; Sprite Mitte
If Not CreateSprite(4, 10, 560)
End
EndIf
If StartDrawing(SpriteOutput(4))
Box(0, 0, 10, 600, $FFFFFF)
StopDrawing()
EndIf
; Sprite Ball
If Not CreateSprite(5, 10, 10)
End
EndIf
If StartDrawing(SpriteOutput(5))
Box(0, 0, 10, 10, $FFFFFF)
StopDrawing()
EndIf
; Sprite Links (Goal)
If Not CreateSprite(6, 10, 560)
End
EndIf
If StartDrawing(SpriteOutput(6))
Box(0, 0, 10, 560, $000000)
StopDrawing()
EndIf
; Sprite Rechts (Goal)
If Not CreateSprite(7, 10, 560)
End
EndIf
If StartDrawing(SpriteOutput(7))
Box(0, 0, 10, 560, $000000)
StopDrawing()
EndIf
;- Endlose Schleife
Define y = (height - 100) / 2
Repeat
ExamineKeyboard() ; Aktualisiert den Tastatur-Status
ClearScreen(RGB(0, 0, 0))
; Inhalt
If KeyboardPushed(#PB_Key_Up)
If y <= 20
y = 20
Else
y - 3
EndIf
EndIf
If KeyboardPushed(#PB_Key_Down)
If y => height - 120
y = height - 120
Else
y + 3
EndIf
EndIf
DisplaySprite(0, 10, y) ; Spieler Links
DisplaySprite(1, 770, y) ; Spieler Rechts
DisplaySprite(2, 0, 10) ; Sprite Oben
DisplaySprite(3, 0, 580) ; Sprite Unten
DisplaySprite(4, 395, 20) ; Sprite Mitte
DisplaySprite(5, 200, 50) ; Sprite Ball
DisplaySprite(6, 0, 20) ; Goal Links
DisplaySprite(7, 790, 20) ; Goal Rechts
;-Counter
StartDrawing(ScreenOutput())
DrawingFont(FontID(0))
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(310, 15, "0", $FFFFFF)
StopDrawing()
StartDrawing(ScreenOutput())
DrawingFont(FontID(0))
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(430, 15, "0", $FFFFFF)
StopDrawing()
FlipBuffers()
; Window-Events abarbeiten
While WindowEvent()
Wend
Until KeyboardReleased(#PB_Key_Escape)
@ lassma-asma
Vielen Dank für das Angebot. Werde gerne zu einem späteren Zeitpunkt darauf zurückkomen. Ich möchte das Spiel mehr oder weniger selber schreiben und nicht kopieren! Multi Pong ist sowas wie mein Ziel, tolles Programm.
@ Zaphod
Ich werde nie mehr Nase popeln, gleichzeitig Arsch kratzen und furtzen! Danke
Gerne würde ich die durchgezogenen Linien in Weiss (Rand und Netz), abwechselnd durch einen weissen dan durch einen schwarzen Block ersetzten. Wie im original Pong. Wie genau kriege ich das hin?
Desweitern frage ich mich, wie das genau mit den Winkeln klappt, ich meine der Ball prallt jeweils mit unterschiedlichen Winkeln an Wand und Schläger ab. Ich denke ich werde Standard-Mässig einen 45 Grad Winkel verwenden.
Eine Lösung für den Ki gesteuerten Schläger habe ich auch gefunden. Ich werde einfach die y Position des Balles ermitteln und den Computerschläger anweisen die Differenz zwischen Y-Ball und Y-Ki-Schläger möglichst gering zu halten.
Schöner Abend