无法执行python游戏

时间:2018-11-22 13:59:29

标签: python pygame

我的游戏很明显是在python 2上编程的,我需要将其更改为python 3的代码样式,对此我是个开始,所以我不知道很多,到目前为止,我唯一可以改变的地方是只需要用括号括起来的版画。我当前的问题如下:

File "A:\Descargas\GalacticWars\GalacticWars\galacticWars.py", line 984, in <module>
main()
File "A:\Descargas\GalacticWars\GalacticWars\galacticWars.py", line 979, in main
escena.update()
File "A:\Descargas\GalacticWars\GalacticWars\galacticWars.py", line 102, in update
funcion()
File "A:\Descargas\GalacticWars\GalacticWars\galacticWars.py", line 150, in nuevo_juego
escena = Game()
File "A:\Descargas\GalacticWars\GalacticWars\galacticWars.py", line 554, in __init__
  self.record = pickle.load(self.records)
TypeError: a bytes-like object is required, not 'str'

这些行是这样的:

984和985

if __name__ == "__main__":
main()

976至981

# Bucle principal.
while True:
    # Actualizamos la escena.
    escena.update()
    escena.imprimir(screen)
    clock.tick(60)

89至102:

    def update(self):
    # Altera la opción seleccionada con las teclas cursor.
    key = pygame.key.get_pressed()

    if not self.mantiene_pulsado:
        if key[K_UP]:
            self.seleccionado -= 1
        elif key[K_DOWN]:
            self.seleccionado += 1
        elif key[K_RETURN]:
            # Invoca a la función asociada a la opción-
            titulo, funcion = self.opciones[self.seleccionado]
            print 'Selecionando función:', repr(titulo)
            funcion()

146至150:

# Función para comenzar el nuevo juego.
def nuevo_juego():
# Pasamos la variable global escena.
global escena
escena = Game()

552至556:

# Vamos a otener el Hi-score.
    self.records = open('records', 'r')
    self.record = pickle.load(self.records)
    self.records.close()
    print 'Cargando Record:', self.record

1 个答案:

答案 0 :(得分:0)

python 2的str的类型为“字节”。 python 3的str类型为“ unicode”。

最简短,不负责任的答案是:

更改self.records = open('records', 'r')

self.records = open('records', 'rb')

负责任的答案很长:

了解该主题并以适合您所有代码的方式进行处理