# Troca a cor para C # 350 HCOLOR=C self.set_color(self.C) # Desenha linha # 360 HPLOT 70*J, 158-Y(J) TO 70*J,154-Y(J) J = self.J + 1 pyglet.graphics.draw(2, pyglet.gl.GL_LINES, ('v2i', (70 * J, 158 - self.Y[self.J], 70 * J, 154 - self.Y[self.J]))) # Volta da subrotina # 370 RETURN def sub_400(self): self.set_color(3) # 400 FOR J=1 TO 3 for J in range(1, 4): # Desenha linha # 410 HPLOT 70*J-5,159 TO 70*J+5,159 pyglet.graphics.draw(2, pyglet.gl.GL_LINES, ('v2i', (70 * J - 5, 159, 70 * J + 5, 159))) # Fim do loop, volta para linha 400 # 420 NEXT # Retorna da subrotina # 430 RETURN def set_color(self, color): glColor3f(*self.cor[color]) def muda_estado(self, estado): print("Mudanca de Estado: {} --> {}".format(self.estado, estado)) self.estado = estado def imprima(self, mensagem): self.label = self.window.crialabel(mensagem)Como em OpenGL limpamos a tela a cada frame, a rotina que apaga os objetos pode ser apagada. No caso, a chamada a sub_300() com C=0.O nome dos metodos ainda nao foram mudados, vamos renomear:sub_250 para pedeusub_270 para acertousub_300 para desenha_aviaosub_350 para desenha_tirosub_400 para desenha_basesApagando os comentarios com o codigo em Basic, temos:import pygletfrom pyglet.gl import *import randomdef rgb_to_f(r, g, b): return(r / 255.0, g / 255.0, b / 255.0)# Cores do modo de alta resolucao HGR# Fonte: https://github.com/AppleWin/AppleWin/issues/254CORES = [(0.0, 0.0, 0.0), # Preto 0 rgb_to_f(20, 245, 60), # Verde 1 rgb_to_f(255, 68, 253), # Magenta 2 rgb_to_f(255, 255, 255), # Branco 3 rgb_to_f(255, 106, 60), # Laranja 5 rgb_to_f(20, 207, 253), # Azul medio 6 rgb_to_f(255, 255, 255), # Branco 7 ]class Game(): def __init__(self, parent): self.cor = CORES self.window = parent # Cria dois vetores com 3 elementos cada self.Y = [0] * 3 self.F = [0] * 3 # Inicializa N igual a 1 e MS igual a 5 self.N = 0 self.MS = 5 # Gera um numero aleatorio entre 0 e 6 + 4 self.PS = random.randint(0, 6) + 4 # Gera um numero aleatorio entre 0 e 135 + 11 self.P = random.randint(0, 135) + 11 self.estado = "jogando" self.I = self.PS self.pressionado = False self.label = None def atualiza(self): if self.estado == "jogando": self.jogue() else: if self.label: glMatrixMode(gl.GL_PROJECTION) glLoadIdentity() glOrtho(0, self.window.width, 0, self.window.height, -1, 1) glMatrixMode(gl.GL_MODELVIEW) self.label.draw() if self.pressionado: pyglet.app.event_loop.exit() def jogue(self): self.desenha_bases() if self.I > 265: self.perdeu() return self.X = self.I - self.PS self.y = 159 - self.P self.C = 0 self.desenha_aviao() self.X = self.I self.C = 3 self.desenha_aviao() if self.pressionado and self.N < 3: self.F[self.N] = 1 self.N += 1 self.pressionado = False for self.J in range(0, 3): if self.F[self.J] == 0 or self.Y[self.J] > 145: continue self.Y[self.J] += self.MS self.C = 3 self.desenha_tiro() self.X = (self.J + 1) * 70 - self.I self.y = self.P - self.Y[self.J] if self.X > -1 and self.X < 15 and self.y > -9 and self.y < 5: self.acertou() self.I += self.PS def perdeu(self): self.imprima("MISSED") self.muda_estado("fimdejogo") def acertou(self): self.imprima("HIT!!!") self.muda_estado("fimdejogo") def desenha_aviao(self): self.set_color(self.C) pyglet.graphics.draw(6, pyglet.gl.GL_LINE_LOOP, ('v2i', (self.X, self.y, self.X, self.y - 8, self.X + 3, self.y - 2, self.X + 12, self.y - 2, self.X + 14, self.y, self.X, self.y))) def desenha_tiro(self): self.set_color(self.C) J = self.J + 1 pyglet.graphics.draw(2, pyglet.gl.GL_LINES, ('v2i',