Скопировал код с одного сайта, вставил к себе и запустил, поглядеть, как работает.
Охренел от производительности. Объект двигается секунду, потом зависает на секунд 7 (ну это по-разному)
Висит, не двигается, ждёт чего-то. Бывает, что движение происходит и спустя пол минуты
Закрыл браузер и всё лишнее до кучи - не помогло. При этом загрузка проца и памяти в районе 20%
Почему? Тут производятся какие-то квантовые вычсления, от которых задыхается пайтон или пайгейм?
Зачем мне знать, почему так медленно работает?
1. Возможно это плохой пример кода и того, как не надо делать.
2. Может всё упирается в производительность (Потенциал) pygame и так и должно быть, а значит pygame - такое себе.
3. Может быть у меня проблемы с оперативкой, которые я раньше не замечал или с винтом, с осью, с мышкой и вебкой.
4. Слабый ПК для таких расчётов: i7 4770k, 16 RAM, SSD
С фэпээсиком игрался, даже 600 не спасает. Если у вас всё нормально, значит это плохой для меня знак. Буду искать причину
Успел написать этот текст, а объект (синий круг) ещё не достиг края экрана
собсно:
import pygame
pygame.init()
width = 600 # ширина окна
height = 400 # высота окна
radius = 20 # радиус круга
pos_x = 300 # координата x центра круга
pos_y = 200 # координата y центра круга
green = (0, 255, 0)
blue = (0, 0, 255)
speed = 1 # скорость перемещения
move_x = speed
move_y = speed
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("Игровое окно")
screen.fill(green)
pygame.display.flip()
FPS = 60
clock = pygame.time.Clock()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pos_x += move_x
pos_y += move_y
if pos_y + radius > height or pos_y - radius < 0:
move_y = move_y * -1
if pos_x + radius > width or pos_x - radius < 0:
move_x = move_x * -1
screen.fill(green)
pygame.draw.circle(screen, blue, (pos_x, pos_y), radius)
pygame.display.flip()
clock.tick(FPS)
pygame.quit()