Код:
InitSprite() InitKeyboard() ; Pong Game in PureBasic ; Инициализация OpenWindow(0, 0, 0, 800, 600, "Pong Game", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) OpenWindowedScreen(WindowID(0),1,1,800,600) ; Определение переменных playerY = 250 computerY = 250 ballX = 400 ballY = 300 ballSpeedX = 7 ballSpeedY = 7 paddleSpeed = 8 paddleWidth = 10 paddleHeight = 100 ballSize = 10 Repeat ExamineKeyboard() ; Управление игроком If KeyboardPushed(#PB_Key_Up) And playerY > 0 playerY - paddleSpeed EndIf If KeyboardPushed(#PB_Key_Down) And playerY < 600 - paddleHeight playerY + paddleSpeed EndIf ; Движение компьютера If ballY < computerY + paddleHeight / 2 And computerY > 0 computerY - paddleSpeed ElseIf ballY > computerY + paddleHeight / 2 And computerY < 600 - paddleHeight computerY + paddleSpeed EndIf ; Движение мяча ballX + ballSpeedX ballY + ballSpeedY ; Проверка столкновений If ballY <= 0 Or ballY >= 600 - ballSize ballSpeedY *- 1 ; Отскок от верхней и нижней границ EndIf If ballX <= paddleWidth And ballY >= playerY And ballY <= playerY + paddleHeight ballSpeedX *- 1 ; Столкновение с игроком EndIf If ballX >= 800 - paddleWidth - ballSize And ballY >= computerY And ballY <= computerY + paddleHeight ballSpeedX *- 1 ; Столкновение с компьютером EndIf ; Проверка на выход за пределы If ballX < 0 Or ballX > 800 ballX = 400 ballY = 300 ballSpeedX = -ballSpeedX ; Сменить направление мяча EndIf ; Отрисовка StartDrawing(ScreenOutput()) Box(0, 0, 800, 600, RGB(0, 0, 0)) ; Задний фон Box(0, playerY, paddleWidth, paddleHeight, RGB(255, 255, 255)) ; Игрок Box(800 - paddleWidth, computerY, paddleWidth, paddleHeight, RGB(255, 255, 255)) ; Компьютер Box(ballX, ballY, ballSize, ballSize, RGB(255, 0, 0)) ; Мяч StopDrawing() ; Обновление окна FlipBuffers() Delay(5) ; Задержка для контроля скорости игры Until WindowEvent() = #PB_Event_CloseWindow