Форум сайта python.su
1
Цикл не выполняется до конца. Начинает рисовать, доходит гдет-то до 40 прохода цикла а потом окно pygame зависает.
пробовал менять время задержки если wait совсем маленький то успевает зарисовать всё до того как зависнет. Выходит что окно зависает в через определённое время а не в результате ошибки в коде(
import pygame import sys import random import time WHITE = (255, 255, 255) BLACK = (0, 0, 0) GRAY = (125, 125, 125) LIGHT_BLUE = (64, 128, 255) GREEN = (0, 200, 64) YELLOW = (225, 225, 0) PINK = (230, 50, 230) pygame.display.init() disp = pygame.display.set_mode((600,600)) for x in range(0,300,1): pygame.draw.line(disp, WHITE, (0,0), (600,x), 1) pygame.display.update() pygame.time.wait(50) pygame.display.quit() pygame.quit()
Отредактировано iliandro (Сен. 25, 2019 19:18:21)
Офлайн
44
а что в итоге то должно получиться? как должно работать?
зы форматируйте код в форумных движках это делается так
и вставьте ссылку на его url Отредактировано AD0DE412 (Сен. 25, 2019 13:45:01)
Офлайн
1
экран должен постепенно заполняться белыми линиями которые поочерёдно рисуются в цикле
это пробная штука чтобы немного разобраться
я только начинаю
Офлайн
44
все работает проходит цикл for и выключается что не так?
и вставьте ссылку на его url Офлайн
1
странно( у меня всегда зависает в таком положении
фото ру
Офлайн
44
ну отсчитает for x in range(0,300,1) и выходит из приложения
а как должно
и вставьте ссылку на его url Отредактировано AD0DE412 (Сен. 25, 2019 14:01:21)
Офлайн
1
заметь там стоит
pygame.display.update()
pygame.time.wait(50)
должно обновляться после каждой новой линии и так создавать єфект постепенного заполнения
pygame не доходя до конца перестаёт обновлять экран
Офлайн
1
тут я создал небольшой тест
на нём по отображению х видно что выполнение цикла не прекращяется зависает лишь окно с пайгеймом
(аналогичный цикл но с кружком)
import pygame import random clock = pygame.time.Clock() WHITE = (255, 255, 255) BLACK = (0, 0, 0) GRAY = (125, 125, 125) LIGHT_BLUE = (64, 128, 255) GREEN = (0, 200, 64) YELLOW = (225, 225, 0) PINK = (230, 50, 230) pygame.display.init() disp = pygame.display.set_mode((600,600)) for x in range(0,300,1): pygame.draw.circle(disp, (WHITE), [0,x],20) pygame.display.update() clock.tick(50) disp.fill(BLACK) print(x) pygame.display.quit() pygame.quit()
Отредактировано iliandro (Сен. 25, 2019 16:40:37)
Офлайн
44
import pygame import random clock = pygame.time.Clock() WHITE = (255, 255, 255) BLACK = (0, 0, 0) GRAY = (125, 125, 125) LIGHT_BLUE = (64, 128, 255) GREEN = (0, 200, 64) YELLOW = (225, 225, 0) PINK = (230, 50, 230) pygame.display.init() state = 1 x = 0 while state: for event in pygame.event.get(): if event.type == pygame.QUIT: state -= 1 disp = pygame.display.set_mode((600,600)) disp.fill(BLACK) if x < 600: x += 1 pygame.draw.circle(disp, (WHITE), [0, x], 20) clock.tick(50) else: x = 0 print(x) pygame.display.update() pygame.display.quit() pygame.quit()
и вставьте ссылку на его url Отредактировано AD0DE412 (Сен. 25, 2019 17:36:16)
Офлайн
44
import pygame import random clock = pygame.time.Clock() WHITE = (255, 255, 255) BLACK = (0, 0, 0) GRAY = (125, 125, 125) LIGHT_BLUE = (64, 128, 255) GREEN = (0, 200, 64) YELLOW = (225, 225, 0) PINK = (230, 50, 230) pygame.display.init() disp = pygame.display.set_mode((600,600)) disp.fill(BLACK) state = 1 x = 0 y = 0 while state: for event in pygame.event.get(): if event.type == pygame.QUIT: state -= 1 if y < 600: y += 1 pygame.draw.circle(disp, (WHITE), [x, y], 20) clock.tick(50) else: y = 0 x += 50 if x > 600: state -= 1 print(x, y) pygame.display.update() pygame.display.quit() pygame.quit()
и вставьте ссылку на его url Офлайн