El Helicoptero
Por:
Boada, Jesus
Bolivar, José
Guevara, Marianny
Quijada, Angel
(Sección A)
Ok, ya por fin sabemos como se hacen tantos huecos en las carreteras de Venezuela: !es por tantos meteoritos que caen! En lo que pudiera ser la carretera de El Tigrito a San Tomé, estas al mando de un helicoptero y tu misión es esquivar, no los huecos, sino los meteoritos. Esto me da una idea: ¿Y si hacemos un juego de esquivar huecos en un volkswagen y cada vez que caes en uno el computador te dice "devuelvete que te pelaste otros"? Ya tengo el nombre, podemos llamarlo "La Fiesta del Asfalto".
El juego lo pueden descargar en este enlace. Hagan sus preguntas, comentarios y observaciones a este juego bajo los comentarios a este post.
Buenas tardes chicos, Un detalle pequeñito... las piedritas bajan muuuy rapidoooo siempre perdiaaaaa jajajajaja y tambien pues deben hacer como un tipo "clrscr" pero en python que borre todo lo que quede del juego anterior.. pero el juego como tal es muy chevere =) "Grupo 1 - El Ahorcado" Malak El Jourdi
ResponderEliminarNojombre muero muy rapido :/ aunque le cambie el tamaño y la velocidad de los meteoritos jaja lo diseñaron para perder rapido...en pygame se tiene que actualizar constantemente a los muñecos ya que ellos van cambiando de posicion continuamente entonces para eliminar esos rastros se utilizan blit() y pygame.display.flip()por lo que he leído (AUNQUE LOS MUCHACHOS LOS COLOCARON NO LES FUNCIONA), lo que no entiendo todavía es si esas funciones se deberían de utilizar de manera general o particular para cada muñeco porque al igual que el grupo de loritortu las utilizan de manera general en todo el codigo...y los que las han utilizado de manera particular no les ocurre estas consecuencias..please respuestas Mariam P (Grupo 1)
ResponderEliminarBuenas noches Maki, Mariam. Gracias por probar nuestro "HelicoP" jaja.. Bueno con respecto a la velocidad de los meteoritos y del helicoptero en la parte inicial del codigo aparecen las lineas donde pueden cambiarse tanto la velocidad de los meteoritos como la del mismo helicoptero (como tu misma lo hiciste mariam). Ahora bien, la idea de "HelicoP" no es hacerte perder rapido xD, mas bien podemos tomar la velocidad como el "nivel de dificultad" para jugar "HelicoP", probar nuestras propias habilidades y escapar de los meteoritos que tanto "rompen las calles del Tigre, Tigrito y San Tome" jaja :D.
ResponderEliminarY en cuanto a lo que son las actualizaciones de pantalla y de los movimientos, tambien hemos intentado varias opciones con el pygame.display.update() y el pygame.display.flip() para que no ocurra este tipo de consecuencias, y al igual que Uds tampoco hemos podido encontrar esa solocion(que lo mas seguro sea algo muy sencillo. :/ ), sigue el "problemita". Asi que Si alguno que halla podido jugar "HelicoP" y visualizar nuestro codigo tiene alguna sugerencia para resolver esta incognita, bienvenida y agradecida sera. :) "Grupo 5 - HelicoP" Angel Quijada.
(Ah y disculpen que no pueda responder rapido, es que estoy sin internet cantv, respondo es de mi cel. Todo se aprecia.:/)
ResponderEliminarHola a los Helicoptereros:
ResponderEliminarFijándome en la animación que hicieron las muchachas de TortuBros, me dí cuenta que en el ciclo principal del juego ellas redibujan el fondo de la pantalla cada vez. Despues del while True de Helicop.Py colocas lo siguiente:
while True:
Puntaje += 1
windowSurface.blit(fondo, (0, 0))
Esto resuelve parte de tu problema y no es necesario redibujar todo en negro antes. Si quieres que el helicoptero y los meteoritos harmonicen con el fondo de carretera Tigrito/San Tomé, preguntale a los muchachos de paseando por venezuela como hacen para dibujar objetos .png con fondo transparente.
Buenas noches esta muy buena su propuesta de juego y funciono lo del windowSurface.blit(fondo, (0, 0)) pero mi pregunta es ¿como se gana por que hay tantos meteoritos?
ResponderEliminarHola profe buenos días gracias por su acotación. pero si en realidad hemos tenido un poquito de problemas con esa parte del juego que usted menciona, y bueno se lo colocaremos para seguir probando y corrigiendo errores.
ResponderEliminarhola luis buenos días ve te explico, la cantidad de meteoritos que caen esta en función de la variable asignada en la linea 35 de código del archivo HelicoP.py, al tu aumentar esa variable la aparición de los meteoritos va a variar en relación al tiempo que estos aparezcan, es decir, si aumentas esa variable los meteoritos tardaran mas en aparecer o caer desde la parte superior de la pantalla. Pues solo tienes que ir esquivando los meteoritos, y bueno al igual que hizo marian puedes ir jugando con el código y cambiarles lo que quieras para que disfrutes mejor de su funcionalidad y también puedas darnos algunas acotaciones.
ResponderEliminarhola muchachones estuve viendo su juego y codigo q pasa si no pones esta parte del codigo en tu juego
ResponderEliminardef (HelicopteroRect, meteoritos):
for b in meteoritos:
return true
return false
hola dakar para empezar te comistes una linea del codigo =/
ResponderEliminardef (HelicopteroRect, meteoritos):
for b in meteoritos:
if HelicopteroRect.colliderect(b[`rect`]):
return true
return false
esta funcion determina la colision entre el helicoptero y algunos de los meteoritos, en el codigo salen los comentarios como que no estas leyendo bien.
Grupo del Juego Astuto Ben. Para colocar el fondo de la imagen transparente te sugerimos lo siguiente:
ResponderEliminar1) En el programa Power Point,
a.-inserta la imagen,
b.-Hacer clic sobre la imagen,
c.-Ve a la barra de herramientas y selecciona el botón donde dice FORMATO,
d.-Posteriormente en la parte izquierda de la barra de tareas dar clic en VOLVER A COLOREAR,
e.-Dar clic en DEFINIR COLOR DE TRANSPARENCIA
f.-Por ultimo dar clic en la imagen. Ahí el fondo te quedara transparente.
El programa Macromedia FireWokrs y Paint.net son algunas de las herramientas que también te permiten editar imágenes.
ah ok gracias por tu respuesta mary
ResponderEliminarHola:
ResponderEliminarQuisiera retomar la sugerencia que les hice sobre el windows.blit(fondo) para limpiar un poquito la animación de su juego. En realidad, creo que no sea la mejor solución ni lo que realmente se debe hacer. Esto implica redibujar todo el fondo en cada ciclo del juego- no me parece una buena idea. Despues de todo, la idea de los sprites es restituir el fondo solo en el rectángulo donde se colocó el sprite, y no en toda la pantalla. Quizás lo que hay que hacer es hacer el rectangulo del sprite más grande, y salvar el rectangulo de fondo en algun buffer asociado a ese sprite, antes de dibujarlo. Debe haber una función para eso
hola chicos, me gusta la idea del juego, x supuesto q aunq no este terminado puede llegar a ser bastante entretenido, ah.. me hicieron perder una vez pero modifique las velocidades de todo y ya no hago ¡¡¡aaaaaaaaaaaah >:(!!!. jeje. Los felicito, no abandonen su desarrollo… tenemos una pregunta a su grupo, ¿Cómo hacen para que al perder el juego haga una pausa para pidiendo q presiones otra tecla, y al presionarla continues el juego? (kaileth santoyo, GRUPO 2)
ResponderEliminar(SUGERENCIA INDIVIDUAL, DE: KAILETH SANTOYO)muchachos le sugiero q usen Power Point para quitarle el fondo que tengan las imagenes, de la forma como lo se lo indica "AstutoBen" en su comentario, pero tambien pueden seleccionar la opcion "quitar fondo", funciona igual q el "definir color transparente"..
ResponderEliminarHola chicos
ResponderEliminarUn dilema
Como hicieron para imprimir letras en pantalla ¿?
Buenas noches a todos.
ResponderEliminarEn primer lugar saludos profesor colocamos la linea de codigo que nos sugirio tal cual como nos indico, y logramos solucionar el problema de la actualizacion de fondo, de verdad gracias por su ayuda.
En seguno lugar se nos presentaba el "problemita" de la traspaencia del fondo de las imagines y gracias a las sugerencias de AstutoBen y a las de kaileth aplicamos la tecnica que nos indicaron y tambien pudimos solventar dicho problema, gracias chicos.
En tercer lugar profe le estaremos enviando el codigo corregigo para que por favor lo suba al blog nuevamente y asi los chicos puedan disfrutar de nuestro juego "HelicoP" con una mejor harmonia entre sus imagenes (gracias a sus colaboraciones) y asi nos sigan haciendo sugerencias para sguir mejorando nuestro juego.
"Quijada Angel, Guevara Marianny" grupo #5 "HelicoP"
ResponderEliminarBuenas noches kaileth, te hibamos a decir esa misma pregunta que nos hicistes de que por que tu juego al terminar la vidas se salia pero ya que nos las heces Angel y yo tubimos viendo tu codigo y modificamos algunas cositas y logramos solucionar parte de tu problemas bien empecemos.
ResponderEliminarPrimero este codigo que debes colocar es la funcion de esperar para que la pantalla se mantenga una vez que finalice el juego.
def terminar(): #Funcion que permite terminar el juego.
pygame.quit()
sys.exit()
def Esperar(): #Funcion que espera que se presione una tecla despues de la "colision", para volver a jugar o salir del juego. Este codigo va debajo de TEXCOLOR = BLANCO
while True:
for event in pygame.event.get():
if event.type == QUIT:
terminar()
if event.type == KEYDOWN:
if event.key == K_ESCAPE: #Al presionar escape cierra la ventana de juego.
terminar()
return
Este otro codigo que es otra funcion es el que nos permite dibujar el texto en la pantalla lo debes colocar debajo de #Funcion que espera que se presione una tecla despues de la "colision", para volver a jugar o salir del juego.
#Dibuja el texto en la pantalla.
def DibujarTexto(text, font, screen, x, y):
textobj = font.render(text, 1, TEXTCOLOR)
textrect = textobj.get_rect()
textrect.topleft = (x, y)
screen.blit(textobj, textrect)
# Creamos la fuente y asignamos un tamaño a la misma.
font = pygame.font.SysFont(None, 50)
Y por ultimo este otro codigo lo debes colocar debajo de Puntaje_Panta('Juego Terminado.Puntaje: %s' % puntos, font, screen, 0, 0, BLANCO) #muestra el mensaje de game over.
DibujarTexto('Presiona una tecla.',font, screen, (SCREEN_WIDTH / 3) - 50, (SCREEN_HEIGHT / 3) + 50)
DibujarTexto('para intentarlo nuevamente.',font, screen, (SCREEN_WIDTH / 3) - 130, (SCREEN_HEIGHT / 3) + 80)
pygame.display.update()
pygame.display.flip() #Actualizamos la pantalla
EsperarPresionarTecla()
Con estos codigos te solucionamos parte de tu inconveniente espero te sirva prueba y nos comentas aver que tal. exitos ah y por cierto muy bueno tu juego me gusto aunque la tortuga esta algo lenta.
"Quijada Angel, Guevara Marianny" grupo #5 "Helicop"
Lorena de ahi puedes ir probando en tu codigo y cualquier cosa comentas espero te sirva..!!
ResponderEliminarkaileth te tengo una pregunta como hago para incrementar la velocidad de la tortuga? que estuve probando y no consegui hacerlo. Guevara Maianny
ResponderEliminarMuchachos Buenas noches.. Quisiera modificarle algo a su juego para que en vez de que los meteoritos caigan desde la parte superior.. estos salgan desde el lado izquierdo de la pantalla hacia el lado derecho y que el helicoptero comienze en vez de abajo, a la izquierda.. para que se ejecute como los jueguitos tipo space invader (el famoso jueguito de los celulares nokia)
ResponderEliminarComo cambiaria la parte del codigo dedicada a eso?
Carlos Benitez. Grupo Ahorcado xD
muchachos mi pregunta es porque tan rapido esos meteoritos existe algun problema si tarda mucho tiempo el jugador jugando?
ResponderEliminarhola chicos su juego me gusto, mi pregunta es porque la velocidad de los meteoritos es tan rapida? muero casi inmediatamente, eso lo puedo modificar en el codigo? diganme donde por fa! ha y el tema es bueno, me gusto lo de los huecos de la carretera jajaja
ResponderEliminarMarianny la velocidad de la tortuga se modifica donde dice self.tortuga_ rect en las coordenadas x e y respectivamente, así por ejemplo si quieres aumentar en 1, colocarías +2 y -2 en vez de +1 y -1. Lo mismo aplica para las frutas y las bombas!
ResponderEliminarGrupo 2 TortuBros :)
Buenas noches a todos.
ResponderEliminarQue mas carlos "nfscarlos". Bueno con respecto a la modificacion que nos indicas en nuestro juego, se deberian hacer ciertos cambmbios en el codigo obviamente verdad. En las lineas de código donde "#Se agregan Meteoritos en la parte superior de la pantalla.", específicamente en nuevoMeteorito, en esa línea, cambiamos el valor que esta justo después de esta parte de esa línea de código:
NuevoMeteorito = {'rect': pygame.Rect(random.randint(0, anchoventana-TamanoMeteorito), #que seria el valor ‘0’. Puedes cambiarle el valor a ‘200’ por ejemplo.
Luego vas a la sieguiente parte del codigo, donde "#Hace que los meteoritos se muevan desde la parte superior de la pantalla hacia abajo de la misma." Allí vas a colocar lo siguiente(sustituyes ese parte del codigo por esta otra):
for b in meteoritos:
if not reverseCheat and not slowCheat:
b['rect'].move_ip(b['speed'], 0)
elif reverseCheat:
b['rect'].move_ip(-5, 0)
elif slowCheat:
b['rect'].move_ip(1, 0)
Esto es simplemento invertir los valores que están dentro de los paréntesis, de esta manera obtienes que los meteoritos aparezcan desde la parte izquierda de la pantalla del juego hacia la derecha, tal cual como lo indicaste “que se ejecute como los jueguitos tipo space invader”
Y en cuanto al helicoptero solo tienes que modificar la linea de codigo que esta, juesto despues de "Puntaje = 0" en el primer "while" #donde se configura el comienzo del juego.(creo que es la linea 105, lo que pasa es q le hemos hecho algunas correcciones). La linea existente la sustituirias por esta otra:
HelicopteroRect.topleft = (anchoventana / 4 - 150, alturaventana - 200)
Creo que haciendo estos cambios en el codigo se puede obtener los resultados que nos pides y bueno Esperamos te sirvan las sugerencias que te damos para modificar el juego como tu lo indicas. ;D
[Grupo 5 - "HelicoP", Angel Quijada]
Respondiendo las inquietudes de (Jean Carlos y Mariana Moreno)
ResponderEliminarJEAN CARLOS... bueno la velocidad se la asignamos asi para colocarle un poco de dificultad al juego, sin embargo no hay ningun problema si el jugador quiere durar mucho mas tiempo jugando "HelicoP", la velicidad se la podemos cambiar si asi lo deseamos...
...MARIANA, Es en esta parte donde tienes tu incognita. La velocidad si se cambia, y se le puede cambiar tanto al helicoptero como a los meteorito. Para cambiar esas velocidades nos vamos al principio del codigo donde aparecen estas variables:
VELOCminMETEORITO = 1 #Velocidad minima de los meteoritos.
VELOCmaxMETEORITO = 8 #Velocidad maxima de los meteoritos.
VelocHelicoptero = 5 #Velocidad de movimiento del Helicoptero.
De esta manera cmbias la velocidad a tu gusto para que puedas disfrutar mucho mejor de "HelicoP" xD.
(Y que bueno que les haya gustado la propuesta y juego :D, gracias)
[Grupo 5 - "HelicoP", Angel Quijada]
amigos el juego esta muy chulo pero el helicoptero es muy grande! XD el cual me es un poco dificil maniobrar! como podria hacer el helicoptero mas pequeño???
ResponderEliminarGRACIAS ;-)
Buenas noches, marianny jejeje t quieres escapar rapido de las bombas nooo? bueeeno, vamos a complementar un poco lo que dijo gabriela, exactamente en esta part para que la tortuga vaya mas rapido a la derecha, despues tu modificas si quieres q vaya mas rapido a la izquierda, arriba o abajo.. observa esta parte del codigo q esta casi al principio de la codificacion de juego en general, (dentro de class tortuga, especificamente)
ResponderEliminardef Update(self):
self.rect.center = self.tortuga_rect.center
k = pygame.key.get_pressed()
if k[K_RIGHT]:
if self.tortuga_rect.x >= 550:
self.tortuga_rect.x = 550
if self.tortuga_rect.x < 550:
self.tortuga_rect.x = self.tortuga_rect.x + 3
En el codigo del juego esta
self.tortuga_rect.x + 1(por eso avanza un espacio y es lenta)
en este q te estoy colocando self.tortuga_rect.x + 3(la tortuga avanza 3 espacios y hara q cuando se mueva a la derecha vaya mas rapido) espero te sirva... (grupo 2, TORTUBROS)
(1º PREGUNTA INDIVIDUAL, DE KAILETH SANTOYO, GRUPO 2) Muchachos, ¿como gano puntos en el juego? Veo q al caerme un meteorito pierdo, pero hay veces en que me cae otro meteorito y el puntaje se incrementa…
ResponderEliminar(2daaaaa PREGUNTA INDIVIDUAL, DE: KAILETH SANTOYO,
ResponderEliminarGRUPO 2) chicos, veo q hay un momento en que el ya no hay oportunidad de jugar mas, o bueno a mi en lo particular se me detiene el helicóptero, ¿eso es asi o hay algúna parte del código donde se controla eso?
(3era PREGUNTA INDIVIDUAL DE: KAILETH SANTOYO) ¿En que parte del código puedo ver la cantidad de veces que puedo presionar cualquier tecla y seguir jugando hasta que ya no tenga más oportunidad?
ResponderEliminargracias x la explicacion que me diste mariannys, si me funciono... ya ando mejorando mi jueguito mas fino..(grupo 2)
ResponderEliminar(4taa PREGUNTA INDIVIDUAL DE: KAILETH SANTOYO, GRUPO 2)¿Ustedes colocan tiempo de vuelo sin ser tocados por algún meteorito para incrementar el puntaje?
ResponderEliminar(5taaaaaa PREGUNTA INDIVIDUAL, DE KAILETH SANTOYO, GRUPO 2), ¿alguno me podria explicar la como es que se relaciona el “puntaje” con el “mejor puntaje”?
ResponderEliminar(SUGERENCIA INDIVIDUAL, DE: KAILETH SANTOYO) chicos deberían de diferenciar mejor la parte donde se adquiere el puntaje, aun no entiendo cuando gano y cuando pierdo… Siempre pierdo y al ver el puntaje esta aumentado pero no se xq si pierdo aumenta…
ResponderEliminarDISCULPEN TANTAS PREGUNTAS Y SUGERENCIAS A LA VEZ LO Q PASA ES Q NO TENGO INTERNET Y DEBO COLOCARLES TODO DE UNA VEZ HOY QUE ME PRESTARON UNO PORTATIL
ResponderEliminar(3ra SUGERENCIA INDIVIDUAL, DE: KAILETH SANTOYO)chicos, como veo que el juego aun esta en desarrollo, podría aportar les una idea, coloquen vidas a su juego, es decir, veo que siempre que pierdo me dice PERDISTE PRESIONA UNA TECLA PARA CONTINUAL, podría colocar unas imagencitas que vayan disminuyendo cada vez que pierda el jugador y así sea mas divertido el juego..
ResponderEliminar(4ta SUGERENCIA INDIVIDUAL, DE KAILETH SANTOYO, GRUPO 2) creo al juego se le puedieran agregar imágenes animadas, como x ejemplo para el helicóptero, que se le mueva la parte de arriba (no se como se llama) q para que se visualic como si estuviec volando de verdad…
ResponderEliminar5ta SUGERENCIA INDIVIDUAL, DE: KAILETH SANTOYO, GRUPO 2) chicos tengo otra ideíta para su desarrollo futuro del jueguito, ya les sugerí que colocaran vidas para limitar la cantidad de veces que puede jugar la persona… pero como las vidas van disminuyendo, podrían colocar que cada cierto tiempo caiga una vida que le aumente la oportunidad de seguir jugando… eso también queremos agregarlo a nuestro juego TortuBros para mejorarlo y hacerlo mas entretenido…
ResponderEliminarESPERO SUS SIGUIENTES PREGUNTAS Y SUGERENCIAS A NUESTRO JUEGO TORTUBROS MUCHACHOS, PARA EVALUARLOS Y NOSOTRAS A USTEDES.. GRACIAS
ResponderEliminarBuenas tardes a tooodos!
ResponderEliminar(Gracias por las visitas a nuestro juego, por ello estamos en "2do" lugar entre los mas visitados, de verdad gracias =D)
Respondiendo a Luis Rodriguez "Luiserodriguez1987". Ejelee.. Bueno encuanto a tu pregunta, la solucion mas viable y facil es que abras 'PowerPoint' y en la pestaña de 'insertar' seleccionas 'imagen' y buscas la imagen del helicoptero y la insertas. Alli lo que haces es cambiarle el tamaño a como quieras que sea y una vez elegido el tamaño das clic sobre la imagen y escoges 'guardar como imagen..' y la guardas en la misma carpeta (donde estan los archivos de "HelcoP") y con el mismo nombre. De esta manera obtienes que el helicoptero sea mas pequeño y lo puedas maniobrar mucho mejor :D. [Grupo 5 - "HelicoP", Angel Quijada]
Kaaaaii aqui tu "lluvia de respuestas" jajaja..
ResponderEliminarR1= La idea del juego es mantener el mayor tiempo de "vuelo" sin colisionar con algun meteorito. De esa manera incrementa tus "puntos". Esas veces que pierdes y se incrementa el puntaje es por lo siguinete: la primera vez que juegas el "Puntaje" marca un valor verdad y al colisionar ese valor pasa al "Mejor Puntaje" (es el mayor puntaje que habras logrado hasta el momento). Luego si vuelves a jugar y en el "Puntaje" el valor no supera al valor que quedo asignado en "Mejor Puntaje" en el juego anterior, este ultimo no v a cambiar, es por eso que algunas veces cambia y otras no. Para cambiar debe ser superado ese valor del "Mejor Puntaje" Es como una especie de "RECORD".
R2= Con respecto a las oportunidades de jugar, imagino que es a que lega el punto en el que hay muchos meteoritos y no hay para donde agarrar xD. Esto lo solucionas en la primera parte del codigo donde aparece:
VelocAgregarMeteorito = 6
puedes colocarle por ejemplo un valor de 20 para que la aparicion de entre los meteoritos tarde mas y no se llene la pantalla de estos.
R3= Bueno, No hay una cantidad de veces limitadas para presionar una tecla y volver a jugar. Siempre que termines de jugar aparecera ese mensaje, y solo terminaras de jugar si presionas la tecla "Esc".
R4= En realidad el puntaje se va a incrementando seguidamente una vz que se ejecute el juego. Esto lo pudes notar en el segundo While que tiene "HelicoP". Es de esa manera que logramos que el "puntaje" vaya incrementando y se pueda considerar como "tiempo de vuelo".
R5= Bueno en la R1 se explica un poco la relacion. Estas dos variables estan relacionadas ya que el "Puntaje" permite ver cuando valor llevas acumulado mientras juegas, una vez que ocurra la colision ese valor que obtuvistes es asignado al "Mejor puntaje" Ahora bien, si vuelves a jugar y el valor del "Puntaje" no superas el valor del "Mejor Puntaje" este ultimo no cambiara. En conclusion, si no existe el "puntaje" no puede haber un "Mejor puntaje".
Bueno Kai Espero nuestras respuestas puedan servirte y satisfagan tus inquietudes. =D
Gracias por tus sugerencias, estan bastantes interesantes. Las tomaremos en cuenta para ver que mejoras y aspectos toma "HlicoP" :D
[Grupo 5 - "HelicoP"]
me gusta !!! esta bien fino !! el fondo no se puede ir moviendo a la derecha de la pantalla para que se vea como va avanzando el helicóptero?
ResponderEliminar