Я немного поправил, а то не запускалось и вот что получилось:
Код:
InitSprite()
InitMouse()
; Установка начальных параметров
Global bRunning = 1
Global fBallX = 200
Global fBallY = 300
Global fBallDX = 3
Global fBallDY = -3
Global fPaddleX = 200
Global fPaddleY = 450
Global iPaddleWidth = 80
Global iPaddleHeight = 20
Global iBlockWidth = 50
Global iBlockHeight = 20
Global Dim iBlocks(10, 5)
; Инициализация блока
For x = 0 To 9
For y = 0 To 4
iBlocks(x, y) = 1 ; 1 означает, что блок существует
Next
Next
; Инициализация окна
If OpenWindow(0, 0, 0, 600, 500, "Arkanoid", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(0), 1,1, 600, 500)
Repeat
; Обработка ввода
If ExamineMouse()
fPaddleX = MouseX() - (iPaddleWidth / 2)
If fPaddleX < 0 : fPaddleX = 0 : EndIf
If fPaddleX > 600 - iPaddleWidth : fPaddleX = 600 - iPaddleWidth : EndIf
EndIf
; Обновление позиции мяча
fBallX + fBallDX
fBallY + fBallDY
; Проверка столкновений
If fBallX < 0 Or fBallX > 590
fBallDX = -fBallDX ; Отскок от стены
EndIf
If fBallY < 0
fBallDY = -fBallDY ; Отскок от верхней стены
EndIf
; Проверка столкновения с платформой
If fBallY > fPaddleY - 10 And fBallX > fPaddleX And fBallX < fPaddleX + iPaddleWidth
fBallDY = -fBallDY ; Отскок от платформы
fBallY = fPaddleY - 10 ; Чтобы мяч не застревал
EndIf
; Проверка столкновения с блоками
For x = 0 To 9
For y = 0 To 4
If iBlocks(x, y) = 1
If fBallX > x * iBlockWidth And fBallX < (x + 1) * iBlockWidth And fBallY > y * iBlockHeight And fBallY < (y + 1) * iBlockHeight
iBlocks(x, y) = 0 ; Удаляем блок
fBallDY = -fBallDY ; Отскок от блока
EndIf
EndIf
Next
Next
; Проверка падения мяча
If fBallY > 500
bRunning = 0 ; Игра окончена
EndIf
; Отрисовка
ClearScreen(0)
StartDrawing(ScreenOutput())
; Отрисovка блоков
For x = 0 To 9
For y = 0 To 4
If iBlocks(x, y) = 1
Box(x * iBlockWidth, y * iBlockHeight, iBlockWidth, iBlockHeight, $00FF00)
EndIf
Next
Next
; Рисуем платформу
Box(fPaddleX, fPaddleY, iPaddleWidth, iPaddleHeight, $FFFFFF)
; Рисуем мяч
Circle(fBallX, fBallY, 10, $FF0000)
; Обновляем экран
StopDrawing()
FlipBuffers()
Until WindowEvent() = #PB_Event_CloseWindow Or bRunning = 0
EndIf
End