TypeError: 'int'对象没有'__getitem__'属性错误
我在游戏中有一个列表,用来存储子弹的X和Y坐标。当我按下空格键时,它会把一个X和Y坐标添加到这个列表里,然后我需要把这两个值调用出来并画出来。我知道在子弹离开屏幕后需要把它们删除,但现在每次我按空格键时,就会出现这个错误。
TypeError:'int' object has no attribute '__getitem__'
这是我的代码:
#start system
import pygame, sys, random
from pygame.locals import*
pygame.init()
fps=50
Clock=pygame.time.Clock()#use fps as system time
#set up a list of STUFF
BLACK = ( 0, 0, 0)
WHITE = ( 255, 255, 255)
GREEN = ( 0, 100, 0)
RED = ( 100, 0, 0)
YELLOW= (255,255,0)
ORANGE= (255,165,0)
screensizex=800
screensizey=600
bullets=[]
screenarea=pygame.display.set_mode((screensizex,screensizey))
pygame.display.set_caption("space invaders")
player_x=250
# end of variable init, begin main loop!
while 1==1:
#key roster
for event in pygame.event.get():
if event.type==QUIT:
pygame.quit()
sys.exit()
if event.type==KEYDOWN:
if event.key==K_d and player_x<screensizex-25:
player_x+=25
if event.key==K_a:
player_x-=25
if event.key==K_SPACE:
bullets.insert(player_x,665)
#drawing to screen
screenarea.fill(WHITE)
for bullet in bullets:
pygame.draw.rect(screenarea,ORANGE,Rect(bullet[0],bullet[1],5,10))
pygame.draw.rect(screenarea,GREEN,(0,screensizey-100,screensizex,100))
pygame.draw.rect(screenarea,RED,(player_x,screensizey-125,25,25))
pygame.display.update()
Clock.tick(fps)
你能帮我一下吗?我该怎么调用这两个值呢?
1 个回答
1
看起来你是想把元组放进你的列表里,所以这个:
bullets.insert(player_x,665)
应该改成:
bullets.append((player_x,665))