Ok, also ich bin neu in Python und Programmierung im Allgemeinen. Aber in letzter Zeit habe ich Fortschritte gemacht und beschlossen, das 2D Minecraft Tutorial auf http://www.usingpython.com auszuprobieren - Wenn ich den Code starte, der unvollständig ist, weil er am Anfang des Tutorials steht, gibt es mir diesen Fehler: TypeError: Rect Argument ist ungültigTypeError: Rect Argument ist ungültig
Das Tutorial sagt, dass ich ein Fenster mit meinem bunten 2D-Array sehen sollte, aber anstatt ist es ein schwarzes Fenster, das nach ein paar Sekunden verschwindet und zeigt mir die Fehler ..
Hier was habe ich, was stimmt mit dem "rect" nicht? Ich glaube, wenn ich nichts verpasse, ist es eine perfekte Kopie des Codes, den er gelehrt hat. Frustriert, Hilfe? Vielen Dank!!
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()
Das genaue Argument, das auf dem Link von OP gegeben wird, ist '(Spalte * TILESIZE, Zeile * TILESIZE, TILESIZE, TILESIZE)'. Das zweite Argument fehlt im OP-Code. – quapka
danke! Ich werde die Antwort bearbeiten. –
Super, danke! Habe es geschafft zu arbeiten :) – taylorbeeler