Найти - Пользователи
Полная версия: pygame rect
Начало » Python для новичков » pygame rect
1 2
Magister6239
Пожалуйста мастера, подскажите почему не рисуется прямоугольник?

import pygame

pygame.init()

run = True

display_width = 800
display_height = 600


pr_width = 80
pr_height = 60
pr_x = display_width // 3
pr_y = display_height // 3


display = pygame.display.set_mode((display_width, display_height ))


while run :

for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False

display.fill((255,255,255))

pygame.display.update()

pygame.draw.rect(display,(43, 173, 98),(pr_x, pr_y , pr_width , pr_height)) # 1 tab

[Code]
py.user.next
Используй теги code для передачи кода. Иначе неясно, где отступы, которые играют важную роль в семантике.
Magister6239
py.user.next
Используй теги code для передачи кода. Иначе неясно, где отступы, которые играют важную роль в семантике.
Неужели дело в отступах? У меня работает игра без ошибок, но rect почему то не рисует (
FishHook
Magister6239
py.user.next хочет вам помочь. Для этого ему надо взять ваш код и запустить у себя на машине, но он не мрожет этого сделать, потому что в ашем коде (который вы здесь показываете) нет отступов и он не заработает. Чтлбы код показывался нормально его надо оформлять вот так
[code python]
your code here
[/code]
AD0DE412
ну такое
 import pygame
pygame.init()
run = True
display_width = 800
display_height = 600
pr_width = 80
pr_height = 60
pr_x = display_width // 3
pr_y = display_height // 3
display = pygame.display.set_mode((display_width, display_height))
while run:
    display.fill((255,255,255))
    pygame.draw.rect(display, (43, 173, 98), (pr_x, pr_y, pr_width, pr_height))
    pygame.display.update()
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
if __name__ == "__main__":
    exit() 
как бы
py.user.next
Magister6239
подскажите почему не рисуется прямоугольник?
Обновить экран забыл
  
while run:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
    display.fill((255,255,255))
    pygame.display.update()
    pygame.draw.rect(display,(43, 173, 98),(pr_x, pr_y , pr_width , pr_height))
    pygame.display.update()
Magister6239
З
py.user.next
Я же написал там pygame.display.update(). Зачем 2 раза
py.user.next
Magister6239
Я же написал там pygame.display.update(). Зачем 2 раза
Ты запусти то, что я тебе отправил, и поймёшь.

Вот ты спрашивал
Magister6239
почему не рисуется прямоугольник?
Потому что не было обновления экрана.
AD0DE412

 # py.user.next 
...
while run:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
# закрасить черным цветом все
    display.fill((255,255,255))
# обновить
    pygame.display.update()
# выделить область и закрасить (цвет, (координаты, размер))
    pygame.draw.rect(display,(43, 173, 98),(pr_x, pr_y , pr_width , pr_height))
# обновить
    pygame.display.update()
...
#AD0DE412
...
while run:
# закрасить черным цветом все
    display.fill((255,255,255))
# выделить область и закрасить (цвет, (координаты, размер))
    pygame.draw.rect(display, (43, 173, 98), (pr_x, pr_y, pr_width, pr_height))
# обновить
    pygame.display.update()
...

Magister6239 размести такиеже коментарии в своем коде и тебе станет очевидно (надеюсь) почему у тебя в каждом цикле закрашиватся только черым
AD0DE412

 # py.user.next 
...
while run:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
# закрасить черным цветом все
    display.fill((255,255,255))
# обновить изображение
    pygame.display.update()
# выделить область и закрасить (цвет, (координаты, размер))
    pygame.draw.rect(display,(43, 173, 98),(pr_x, pr_y , pr_width , pr_height))
# обновить изображение
    pygame.display.update()
...
#AD0DE412
...
while run:
# закрасить черным цветом все
    display.fill((255,255,255))
# выделить область и закрасить (цвет, (координаты, размер))
    pygame.draw.rect(display, (43, 173, 98), (pr_x, pr_y, pr_width, pr_height))
# обновить изображение
    pygame.display.update()
...

Magister6239 размести такиеже коментарии в своем коде (перед такими же операциями) и тебе станет очевидно (надеюсь) почему у тебя в каждом цикле закрашиватся только черым
зы прдставь что каждый раз когда ты окрашиваешь ты ложишь новый слой
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB