Итак, я новичок в Python и в общем программировании. Но в последнее время я добился прогресса и решил попробовать 2D-учебник по Minecraft по адресу http://www.usingpython.com. Когда я иду запускать код, который является неполным, поскольку он находится в начале учебника, он дает мне эту ошибку: TypeError: Rect аргумент неверенTypeError: Rect аргумент недействителен
в учебнике сказано, что я должен видеть окно с моей разноцветной 2D массив, но вместо это черное окно, которое исчезает через несколько секунд и показывает мне сказали ошибка ..
Вот что у меня есть, что не так с «прямым»? Я считаю, что если я ничего не пропустил, это идеальная копия кода, который он использовал для обучения. Разочарованный, помогите? Благодаря!!
import pygame
from pygame.locals import*
#Color link to constants
BLACK = (0, 0, 0)
BROWN = (153, 76, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
#Constants, Same as variables but never changing - they're constant!
DIRT = 0
GRASS = 1
WATER = 2
COAL = 3
#Dictionary Linking Resources to colors
colors = {
DIRT : BROWN,
GRASS :GREEN,
WATER : BLUE,
COAL : BLACK
}
#THE 2D ARRAY
tilemap = [
[GRASS, COAL, DIRT],
[WATER, WATER, GRASS],
[COAL, GRASS, WATER],
[DIRT, GRASS, COAL],
[GRASS, WATER, DIRT]
]
#Useful Game Dimensions
TILESIZE = 40
MAPWIDTH = 3
MAPHEIGHT = 5
#Set up the display for PYGAME
pygame.init()
DISPLAYSURF = pygame.display.set_mode((MAPWIDTH*TILESIZE,MAPHEIGHT*TILESIZE))
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
for row in range(MAPHEIGHT):
for column in range(MAPWIDTH):
pygame.draw.rect(DISPLAYSURF, colors[tilemap[row][column]], (column*TILESIZE,TILESIZE,TILESIZE))
pygame.display.update()
Точный аргумент, приведенный в ссылке из OP, равен '(столбец * TILESIZE, строка * TILESIZE, TILESIZE, TILESIZE)'. Второй аргумент отсутствует в коде OP. – quapka
спасибо! Я отредактирую ответ. –
Удивительный, спасибо! Получил это, чтобы работать :) – taylorbeeler