Estoy terminando un juego y solo me falta un detalle por hacer.
Les comento tengo un cuadrado azul que representa a una nave y meteoritos que van saliendo aleatoriamente.
Lo único que me queda es hacer que si la nave coge el espacio del meteorito, me ponga un mensaje en pantalla "Chocastes" y con la misma salga del juego.
Les facilito el código, otra cosa esto lo estoy haciendo en PythonG, se que es antiguo pero ya lo empece con este.
CÓDIGO FUENTE
===========
# EJERCICIO COMPLETO DEL LIBRO_Introducción a la programación con Python
_EJERCICIO 149
Andrés Marzal Isabel Gracia
Departamento de Lenguajes y Sistemas Informáticos
Universitat Jaume
------------------------------------------------------------------------------------------------
Código:
------------------------------------------------------------------------------------------------from modulepythong import * from math import sin, cos, pi import random window_style('The Spaceship Game','white','TODO') # FONDO DE COLOR BLANCO # Paisaje altura_paisaje = 400 anchura_paisaje = 400 window_coordinates(0, 0, anchura_paisaje, altura_paisaje) # Gravedad g = 0.00001 # Nave tamanyo_nave = 10 x = anchura_paisaje / 2 y = altura_paisaje - 100 vy = 0 impulso_y = 2*g impulso_x = 0.00001 vx = 0 nave = create_filled_rectangle(x, y, x+tamanyo_nave, y+tamanyo_nave, 'blue') # Plataforma px = anchura_paisaje / 2 py = 0 vpx = .05 anchura_plataforma = 40 altura_plataforma = 3 plataforma = create_rectangle(px, py,px+anchura_plataforma, py+altura_plataforma, 'red') # Tanque de combustible color = "green" # combustible lleno fuel = 1000 consumo = 0.01 create_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 = 8 punto1=create_filled_circle(100,400,tamanyo_meteor ito,"red","brown") g_m = 0.00001 #Gravedad del meteorito vy_m = 0 y_m = 405 cord_x = 100 cord_y = 405 #----------------# # Dial de velocidad create_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') # Simulacion while y > 0 and y < altura_paisaje and x > 0 and x < anchura_paisaje - tamanyo_nave: vy -= g if keypressed(1) == 'Up' and fuel > 0: vy += impulso_y fuel -= consumo if fuel < 350: color = "red" # combustible vaciandose elif keypressed(1) == 'Left' and fuel > 0: vx -= impulso_x fuel -= consumo if fuel < 350: color = "red" # combustible vaciandose elif keypressed(1) == 'Right' and fuel > 0: vx += impulso_x fuel -= consumo if fuel < 350: color = "red" # combustible vaciandose vy_m = vy_m-g_m y_m+=vy_m move(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 = 405 vy_m = 0 g_m = 0.00001 y += vy x += vx px += vpx if px <= 0 or px >= anchura_paisaje - anchura_plataforma: vpx = -vpx move(nave, vx, vy) move(plataforma, vpx, 0) viejo_lleno = lleno lleno = create_filled_rectangle(1,altura_paisaje, 9, altura_paisaje-fuel/10, color) erase(viejo_lleno) vieja_aguja = aguja aguja = 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/2 msg_y1 = altura_paisaje/2 msg_y2 = altura_paisaje/3 if 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
Links para descagar el PythonG y la version de python compatible.
http://www.mediafire.com/?kfonzec60va8rjr # PythonG
http://www3.uji.es/~dllorens/downloads/pythong/ # Página oficial de descargas PythonG
-----------------------------------------------------------------------------------------------------
http://www.mediafire.com/?ymay3b3bbm6uen6 # Versión de Python 2.3.2
http://www.python.org/download/releases/2.2.3/ # Página Oficial de Python
------------------------------------------------------------------------------------------------------
Muchas Gracias de antemano a todos