3
所以我做计算机编程作为一个学校的主题,并已被设置为创建像地牢一样的地牢爬行器的任务。这主要是向我介绍使用多维数组和从文件中读取数据。我能够成功从文本文件中读取并创建地图,但在移动播放器时遇到问题。我得到的错误:Python,多维数组
TypeError: 'str' object does not support item assignment
这是当我试图走动这让我觉得我已经声明不正确排列的球员。帮助PLZ!下面是代码:
import pygame, sys
from pygame.locals import *
def getResources():
floorImage = pygame.image.load("/Volumes/Data/Users/name/Desktop/Python/Scripts/Pygame/RPG GAME FOLDER/floor.png")
wallImage = pygame.image.load("/Volumes/Data/Users/name/Desktop/Python/Scripts/Pygame/RPG GAME FOLDER/wall.png")
return (floorImage, wallImage)
def createRoom():
f = open("Room 1.txt", "r")
gameMap = []
for x in f:
row = ""
for character in x:
row = row + character
if "\n" in row:
row = row[:len(row) - 1]
gameMap.append(row)
return (gameMap)
def drawRoom(gameMap, floorImage, wallImage):
for i in range(0, len(gameMap)):
for x in range(0, len(gameMap[i])):
xC = x * 30
y = i * 30
if gameMap[i][x] == "*":
screen.blit(wallImage, (xC, y))
elif gameMap[i][x] == ".":
screen.blit(floorImage, (xC, y))
elif gameMap[i][x] == "+":
gameMap[i][x] = "."
gameMap [i-1][x] = "+"
pygame.init()
FPS = 50
screen = pygame.display.set_mode((600, 600), 0, 32)
pygame.display.set_caption("RPG Game - name")
clock = pygame.time.Clock()
# Colours
black = (0, 0, 0)
white = (255, 255, 255)
# Player Variables
playerMotion = {
"right": False
}
# Initial Functions
floorImage, wallImage = getResources()
gameMap = createRoom()
while True:
clock.tick(FPS)
screen.fill(black)
drawRoom(gameMap, floorImage, wallImage)
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_a:
playerMotion["right"] = True
pygame.display.update()
PS我得到当我试图移动“+”代表围绕地图的字符错误
elif gameMap[i][x] == "+":
gameMap[i][x] = "."
gameMap [i-1][x] = "+"
你在哪一行得到这个错误? – khagler