PyGame не рендеринг фигур? - PullRequest
       30

PyGame не рендеринг фигур?

0 голосов
/ 14 февраля 2012

Я сделал следующий код для рендеринга карты с использованием плиток, она перебирает файл и переводит буквы в плитки (прямоугольники);

currtile_x = 0
currtile_y = 0
singlerun = 1

if singlerun == 1:
    singlerun = 0
    with open('townhall.map', 'r') as f:
        for line in f:
                for character in line:
                    if character == "\n":
                        currtile_y += 10
                    else:
                        if character == "x":
                            pygame.draw.rect(screen, (1,2,3), (currtile_x, currtile_y, 10, 10), 0)
                            currtile_x += 10
                        else: 
                            if character == "a":
                                pygame.draw.rect(screen, (0,255,255), (currtile_x, currtile_y, 10, 10), 0)
                                currtile_x += 10

Вот файл townhall.map:

xxxxx
xaaax
xaaax
xaaax
xxxxx

1 Ответ

0 голосов
/ 14 февраля 2012

Ваш код работает хорошо, когда к нему добавлен код цикла событий. Поскольку вы еще не опубликовали всю программу, все, что я могу сделать - это опубликовать работающую программу, содержащую ваш код.

import pygame
from pygame.locals import *

pygame.init()
screen = pygame.display.set_mode((300, 300))

currtile_x = 0
currtile_y = 0
with open('townhall.map') as f:
    for line in f:
        for character in line:
            if character == '\n':
                currtile_y += 10
                currtile_x = 0
            elif character == 'x':
                pygame.draw.rect(screen, (0,0,0), (currtile_x, currtile_y, 10, 10), 0)
                currtile_x += 10
            elif character == 'a':
                pygame.draw.rect(screen, (0,255,255), (currtile_x, currtile_y, 10, 10), 0)
                currtile_x += 10

running = True
while running:
    for event in pygame.event.get():
        if event.type == QUIT:
            running = False
    pygame.display.update()
...