[求助] python3.5.2出现列表索引溢出错误,求指点

towerzju 发布于 2017/03/04 20:59
阅读 121
收藏 0

本人python初学者,用python3.5.2写了个游戏小程序,出现列表索引溢出错误,可我实在看不出是哪里出了问题,特来请教高人指点。代码如下:

from tkinter import *
import random
import time

……
……
        self.images_left = [
            PhotoImage(file="figure-L1.gif"),
            PhotoImage(file="figure-L2.gif"),
            PhotoImage(file="figure-L3.gif")
        ]
        self.images_right = [
            PhotoImage(file="figure-R1.gif"),
            PhotoImage(file="figure-R2.gif"),
            PhotoImage(file="figure-R3.gif")
        ]
        self.image = game.canvas.create_image(200, 470, \
                    image=self.images_left[0], anchor='nw')
        self.x = -2
        self.y = 0
        self.current_image = 0
        self.current_image_add = 1
        self.last_time = time.time()
……
……
    def animate(self):
        if self.x != 0 and self.y == 0:
            if time.time() - self.last_time > 0.1:
                self.last_time = time.time()
                self.current_image += self.current_image_add
                if self.current_image == 2:
                    self.current_image_add = -1
                elif self.current_image == 0:
                    self.current_iamge_add = 1
        if self.x < 0:
            if self.y != 0:
                self.game.canvas.itemconfig(self.image, \
                        image=self.images_left[2])
            else:
                self.game.canvas.itemconfig(self.image, \
                        image=self.images_left[self.current_image])
        elif self.x > 0:
            if self.y != 0:
                self.game.canvas.itemconfig(self.image, \
                        image=self.images_right[2])
            else:
                self.game.canvas.itemconfig(self.image, \
                        image=self.images_right[self.current_image])
……
……

运行结果是,游戏人物跑了几步,然后就停住了,出现如下错误信息:
Traceback (most recent call last):
  File "C:\Users\pp\Desktop\stickman\stickman.py", line 350, in <module>
    g.mainloop()
  File "C:\Users\pp\Desktop\stickman\stickman.py", line 52, in mainloop
    sprite.move()
  File "C:\Users\pp\Desktop\stickman\stickman.py", line 232, in move
    self.animate()
  File "C:\Users\pp\Desktop\stickman\stickman.py", line 214, in animate
    image=self.images_left[self.current_image])
IndexError: list index out of range

可是代码里面列表索引只是在0,1,2之间循环啊,怎么会溢出呢?
是我的代码哪里写得不对吗?
亟盼指教,谢谢!

加载中
0
您的好友
您的好友

打断点打日志一步步调试啊    楼主这个代码逻辑太烂了    处理current_image那一段可以再优化一下  现在这样复杂了 

towerzju
towerzju
谢谢!断点调试发现是我把image打成iamge了……
返回顶部
顶部