Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 25, 2019 13:30:48

iliandro
Зарегистрирован: 2019-05-26
Сообщения: 15
Репутация: +  1  -
Профиль   Отправить e-mail  

Застрял с pygame.(проблема решена)

Цикл не выполняется до конца. Начинает рисовать, доходит гдет-то до 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)

Офлайн

#2 Сен. 25, 2019 13:43:10

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Застрял с pygame.(проблема решена)

а что в итоге то должно получиться? как должно работать?
зы форматируйте код в форумных движках это делается так



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Сен. 25, 2019 13:45:01)

Офлайн

#3 Сен. 25, 2019 13:45:58

iliandro
Зарегистрирован: 2019-05-26
Сообщения: 15
Репутация: +  1  -
Профиль   Отправить e-mail  

Застрял с pygame.(проблема решена)

экран должен постепенно заполняться белыми линиями которые поочерёдно рисуются в цикле
это пробная штука чтобы немного разобраться
я только начинаю

Офлайн

#4 Сен. 25, 2019 13:49:06

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Застрял с pygame.(проблема решена)

все работает проходит цикл for и выключается что не так?



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Офлайн

#5 Сен. 25, 2019 13:54:00

iliandro
Зарегистрирован: 2019-05-26
Сообщения: 15
Репутация: +  1  -
Профиль   Отправить e-mail  

Застрял с pygame.(проблема решена)

странно( у меня всегда зависает в таком положении
фото ру

Офлайн

#6 Сен. 25, 2019 14:00:54

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Застрял с pygame.(проблема решена)

ну отсчитает for x in range(0,300,1) и выходит из приложения
а как должно



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Сен. 25, 2019 14:01:21)

Офлайн

#7 Сен. 25, 2019 14:28:49

iliandro
Зарегистрирован: 2019-05-26
Сообщения: 15
Репутация: +  1  -
Профиль   Отправить e-mail  

Застрял с pygame.(проблема решена)

заметь там стоит
pygame.display.update()
pygame.time.wait(50)
должно обновляться после каждой новой линии и так создавать єфект постепенного заполнения
pygame не доходя до конца перестаёт обновлять экран

Офлайн

#8 Сен. 25, 2019 16:39:51

iliandro
Зарегистрирован: 2019-05-26
Сообщения: 15
Репутация: +  1  -
Профиль   Отправить e-mail  

Застрял с pygame.(проблема решена)

тут я создал небольшой тест
на нём по отображению х видно что выполнение цикла не прекращяется зависает лишь окно с пайгеймом
(аналогичный цикл но с кружком)

 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)

Офлайн

#9 Сен. 25, 2019 17:16:10

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Застрял с pygame.(проблема решена)

 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()



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Сен. 25, 2019 17:36:16)

Офлайн

#10 Сен. 25, 2019 17:47:13

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Застрял с pygame.(проблема решена)

 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()



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version