我的游戏很明显是在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
答案 0 :(得分:0)
python 2的str的类型为“字节”。 python 3的str类型为“ unicode”。
最简短,不负责任的答案是:
更改self.records = open('records', 'r')
到self.records = open('records', 'rb')
负责任的答案很长:
了解该主题并以适合您所有代码的方式进行处理