from modulepythong import *from math import sin, cos, piimport randomwindow_style('The Spaceship Game','white','TODO') # FONDO DE COLOR BLANCO# Paisajealtura_paisaje = 400anchura_paisaje = 400window_coordinates(0, 0, anchura_paisaje, altura_paisaje)# Gravedadg = 0.00001# Navetamanyo_nave = 10x = anchura_paisaje / 2y = altura_paisaje - 100vy = 0impulso_y = 2*gimpulso_x = 0.00001vx = 0nave = create_filled_rectangle(x, y, x+tamanyo_nave, y+tamanyo_nave, 'blue')# Plataformapx = anchura_paisaje / 2py = 0vpx = .05anchura_plataforma = 40altura_plataforma = 3plataforma = create_rectangle(px, py,px+anchura_plataforma, py+altura_plataforma, 'red')# Tanque de combustiblecolor = "green" # combustible llenofuel = 1000consumo = 0.01create_rectangle(0,altura_paisaje, 10, altura_paisaje-100, 'black')lleno = create_filled_rectangle(1,altura_paisaje, 9, altura_paisaje-fuel/10, color)create_text(25, altura_paisaje-8, '0%', 10, 'W')create_text(30, altura_paisaje-95, '100%', 10, 'W')#---------------#tamanyo_meteorito = 8punto1=create_filled_circle(100,400,tamanyo_meteor ito,"red","brown")g_m = 0.00001 #Gravedad del meteoritovy_m = 0y_m = 405cord_x = 100cord_y = 405#----------------## Dial de velocidadcreate_circle(anchura_paisaje-50, altura_paisaje-50, 50, 'black')for i in range(0, 360, 10):create_line(anchura_paisaje-50 + 40 * sin(i*pi/180), \altura_paisaje-50 + 40 * cos(i*pi/180), \anchura_paisaje-50 + 50 * sin(i*pi/180), \altura_paisaje-50 + 50 * cos(i*pi/180))if i % 30 == 0:create_text(anchura_paisaje-50 + 30 * sin(i*pi/180), \altura_paisaje-50 + 30 * cos(i*pi/180), str(i), 5, 'CENTER')aguja = create_line(anchura_paisaje-50, altura_paisaje-50, \anchura_paisaje-50 + 50 * sin(0*pi/180), \altura_paisaje-50 + 50 * cos(0*pi/180), 'blue')# Simulacionwhile y > 0 and y < altura_paisaje and x > 0 and x < anchura_paisaje - tamanyo_nave:vy -= gif keypressed(1) == 'Up' and fuel > 0:vy += impulso_yfuel -= consumoif fuel < 350:color = "red" # combustible vaciandoseelif keypressed(1) == 'Left' and fuel > 0:vx -= impulso_xfuel -= consumoif fuel < 350:color = "red" # combustible vaciandoseelif keypressed(1) == 'Right' and fuel > 0:vx += impulso_xfuel -= consumoif fuel < 350:color = "red" # combustible vaciandosevy_m = vy_m-g_my_m+=vy_mmove(punto1,0,vy_m)if y_m <= -2:erase(punto1)cord_x = random.randrange(0,400)punto1 = create_filled_circle(cord_x, cord_y, 8,"red","brown")y_m = 405vy_m = 0g_m = 0.00001y += vyx += vxpx += vpxif px <= 0 or px >= anchura_paisaje - anchura_plataforma:vpx = -vpxmove(nave, vx, vy)move(plataforma, vpx, 0)viejo_lleno = llenolleno = create_filled_rectangle(1,altura_paisaje, 9, altura_paisaje-fuel/10, color)erase(viejo_lleno)vieja_aguja = agujaaguja = create_line(anchura_paisaje-50, altura_paisaje-50, \anchura_paisaje-50 + 50 * sin(1000*vy*pi/180), \altura_paisaje-50 + 50 * cos(1000*vy*pi/180), 'blue')erase(vieja_aguja)msg_x = anchura_paisaje/2msg_y1 = altura_paisaje/2msg_y2 = altura_paisaje/3if y >= altura_paisaje:create_text(msg_x, msg_y1, 'Perdiste', 24, 'CENTER')create_text(msg_x, msg_y2, 'Rumbo a las estrellas?', 12, 'CENTER')elif y <= 0 and vy < -0.1:create_text(msg_x, msg_y1, 'Perdiste', 24, 'CENTER')create_text(msg_x, msg_y2, 'Te has estrellado.', 12, 'CENTER')elif y <= 0 and \abs((px+anchura_plataforma/2)-(x+tamanyo_nave/2)) >= anchura_plataforma/2:create_text(msg_x, msg_y1, 'Perdiste', 24, 'CENTER')create_text(msg_x, msg_y2, ' !Que mala puntería!', 12, 'CENTER')elif x <= 0 or x >= anchura_paisaje - tamanyo_nave:create_text(msg_x, msg_y1, 'Perdiste', 24, 'CENTER')create_text(msg_x, msg_y2, 'Chocaste con la pared.', 12, 'CENTER')else:create_text(msg_x, msg_y1, 'Ganaste', 24, 'CENTER')create_text(msg_x, msg_y2, ' !Enhorabuena, piloto!', 12, 'CENTER')raw_input() # Espera a que pulses una tecla