Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mensajes - alvitofr

1
Preguntas y respuestas / Ayuda con puntuación final
Septiembre 23, 2015, 05:54:49 PM
Hola, buenas tardes.
En mi juego, tengo dos variables:
global.puntos_pala
global.puntos_rival
Ambas asociadas a un marcador.
Mi intención es que cuando "llegue a 7 puntos" el juego se restartee. ¿Cómo podría hacer esto?
2
Preguntas y respuestas / Re:Ayuda con juego de Ping Pong
Septiembre 23, 2015, 05:45:19 PM
Cita de: Iros en Septiembre 23, 2015, 05:43:15 PM
Tendrías que poner que error te tira, aunque viendo el código a simple vista tenes mal puestos los paréntesis, tendrían que ser llaves, quedándote algo así:

[gml]if (distance_to_object(ob_bola) <= 130) {
    move_towards_point(x,ob_bola.y,4)
} else {
    vspeed = 0;
}[/gml]

El else es para que cuando la distancia entre la paleta y la pelota sea mayor la paleta se detenga.

Muchas gracias, ya funciona  ;D
3
Preguntas y respuestas / Ayuda con juego de Ping Pong
Septiembre 23, 2015, 04:00:39 PM
 :GMS:
Hola, buenas tardes.
Estoy creando un juego de Ping Pong en Game Maker MC, solo que lo estoy haciendo "en vertical", no "en horizontal", como la mayoría de vídeos sobre esto en Youtube. Para escribir el código de la pala rival (que sigue la bola) en el horizontal, hay que escribir:
if distance_to_object(ob_bola)<=130
(move_towards_point(x,ob_bola.y,4)) 
 
Pero obviamente esto no vale para la versión vertical, por lo que me salen errores que me impiden iniciar el juego. ¿Cómo tendría que ser el código exactamente para que la pala rival siguiese a la bola moviéndose a velocidad 20 por el eje x?  :P
4
Cita de: Guacusio en Agosto 23, 2015, 06:39:27 PM
Al hacer global.record=score obligas a la condición del if de abajo a que siempre se cumpla, por eso siempre te muestra Best (score). Prueba lo siguiente:

draw_self()
draw_text(250,120,"Score: "+string(score))
if(score>=global.record) draw_text(250,200,"Best: "+string(score))
else draw_text(250,200,"Best: "+string(global.record))


tampoco es la manera más eficiente para hacer algo así (deberías comprobar si se bate el récord una sola vez en otro evento en vez de hacerlo permanentemente en draw). Lo que yo haría sería:

En un evento anterior:
global.record=max(global.record,score);
score_text="Score: "+string(score);
record_text="Best: "+string(global.record);


En Draw:
draw_self();
draw_text(250,120,score_text);
draw_text(250,200,record_text);


Muchas gracias y perdón por las molestias, pero no me han servido ninguna de las dos formas :(
5
En mi juego, cuando pierdes, te lleva a una room en la que tengo este código:
global.record=score
draw_self()
draw_text(250,120,"Score: "+string(score))
if(score==global.record) draw_text(250,200,"Best: "+string(score))
else draw_text(250,200,"Best: "+string(global.record))

Mi intención es que salga la puntuación de esa partida y que si bates el récord, abajo ponga Best:(puntuación), y si no lo bates, que ponga Best:(récord).
Mi problema es que en "Best", nunca sale el récord "histórico", sólo sale la puntuación.
¿Me podríais ayudar con esto, por favor?
6
Cita de: Marth en Agosto 19, 2015, 02:23:58 AM
El código que te he mostrado ponlo en el evento draw de cualquier objeto que haya en el room que vas al perder, como por ejemplo en el botón de volver al menú que mencionaste.
Recuerda que score y globlal.records son variables globales, es decir, no están afiliados a ningún objeto, por lo que puede usarlos y modificarlos cualquier objeto y no se pierden si cambias de room o ejecutas room_restart(). Solo se perderán si usas game_end() o game_restart().

Muchas gracias, ya lo entiendo!!! :D
Solo que una cosa, la última línea del código que me has enseñado parece no funcionar:
else draw_text(5,25,"Record: "+string(global.record))
ya que aunque haga una puntuación menor del record, siempre sale "Nuevo Record".
Mi intención era que al perder te enseñase tu puntuación y la mejor, sólo eso.
7
Cita de: Marth en Agosto 18, 2015, 11:32:56 PM
Necesitas crear una variable global.record en la cual tras perder se comprobara si score es mayor y de serlo pues: global.record=score
En alguno de los objetos que haya en esa room, pon esto en el draw:

draw_self() // Para que no pase a ser invisible.
draw_text(5,5,"Puntuacion: "+string(score))
if(score==global.record) draw_text(5,25,"Nuevo Record")
else draw_text(5,25,"Record: "+string(global.record))


Entendería perfectamente que te negases a hacerlo, pero ¿podrías explicarme ese proceso paso por paso? Esque soy nuevo en esto y no se donde poner esos comandos y variables exactamente.
Perdón por las molestias, y gracias si decides hacerlo  :)
8
Hola, tengo un juego en el que al perder te lleva a una habitación en la que hay un botón de restart y otro de vuelta al menú, en la que quiero incluir un marcador de puntuación de tipo Flappy Bird, es decir, que sólo aparezca la puntuación de la partida y la mejor puntuación. ¿Cómo hago eso?
9
Cita de: penumbra en Agosto 18, 2015, 08:51:55 PM
en lugar de mandarlos fuera de la habitación, sólo tienes que destruír esa instancia mediante la funcion instance_destroy() (en el evento o código donde se detecta el click sobre el objeto)

Una cosa más, tengo un sonido sonando como fondo en el juego, pero quiero quitarlo y poner otro cuando pase a la habitación después de perder, ¿cómo puedo hacer esto?
10
Cita de: penumbra en Agosto 18, 2015, 08:51:55 PM
en lugar de mandarlos fuera de la habitación, sólo tienes que destruír esa instancia mediante la funcion instance_destroy() (en el evento o código donde se detecta el click sobre el objeto)

Muchas Gracias, ya lo he hecho y ha funcionadooooo  XD
11
En mi juego de Game Maker Sudio, hay que pulsar en los objetos que van apareciendo para que desaparezcan y no se acumulen 5 en la habitación, lo que significaría la derrota. Hasta ahora, para hacerlos desaparecer había usado la acción de mandarlos a una posición fuera de la habitación (x=1000000000...), pero me he dado cuenta que así no desaparecen, por lo que la cuenta hasta 5 sigue sucediendo, así que que aunque "elimine" los objetos, el juego siempre termina en 3 segundos.
Actualmente tengo tres objetos (que aparecen cada medio segundo) bajo un parent con este code:
if instance_number(ob_parent)=5
    room_goto(room1);

Quiero que al eliminar los objetos al pulsarlos, esa instancia vaya disminuyendo, no se si me explico correctamente.
Seguro que es algo muy fácil, pero esque soy novato en GMS  :-[
Espero que puedan ayudarme y gracias de antemano.
12
Cita de: Guacusio en Agosto 18, 2015, 07:47:18 PM
Cita de: alvitofr en Agosto 18, 2015, 07:40:37 PM
Cita de: Guacusio en Agosto 18, 2015, 01:43:47 PM
Cita de: alvitofr en Agosto 18, 2015, 01:35:14 PM
Muchas gracias  ;)
Y si esos enemigos son diferentes objetos, no uno solo, ¿qué tendría que poner?.
¿Qué tendría que poner para que al perder se mostrase el highscore y sonase un sonido?
Muchas gracias de antemano, espero que alguien pro pueda solucionarlo jaja.

En ese caso lo más conveniente sería agrupar todos los tipos de enemigo bajo un mismo objeto parent y contar el número de instancias de ese objeto con la misma función instance_number dentro de su evento create.

¿Podrías decirme cuál sería el código exacto para que al salir 5 enemigos diferentes, me llevase a otra habitación?
Muchas gracias de antemano, espero que no suponga mucha molestia, esque soy un noob en esto  :-[

En el evento create del objeto parent de los enemigos (o_enemigos, por ponerle un nombre):

if instance_number(o_enemigos)=5
    room_goto(room_deseado);


Gracias, me has salvado la vida :D
13
Cita de: Guacusio en Agosto 18, 2015, 01:43:47 PM
Cita de: alvitofr en Agosto 18, 2015, 01:35:14 PM
Muchas gracias  ;)
Y si esos enemigos son diferentes objetos, no uno solo, ¿qué tendría que poner?.
¿Qué tendría que poner para que al perder se mostrase el highscore y sonase un sonido?
Muchas gracias de antemano, espero que alguien pro pueda solucionarlo jaja.

En ese caso lo más conveniente sería agrupar todos los tipos de enemigo bajo un mismo objeto parent y contar el número de instancias de ese objeto con la misma función instance_number dentro de su evento create.

¿Podrías decirme cuál sería el código exacto para que al salir 5 enemigos diferentes, me llevase a otra habitación?
Muchas gracias de antemano, espero que no suponga mucha molestia, esque soy un noob en esto  :-[
14
Muchas gracias  ;)
Y si esos enemigos son diferentes objetos, no uno solo, ¿qué tendría que poner?.
¿Qué tendría que poner para que al perder se mostrase el highscore y sonase un sonido?
Muchas gracias de antemano, espero que alguien pro pueda solucionarlo jaja.
15
 :GM8:
Estoy creando un juego en Game Maker 8, en el cual mi objetivo es que cuando aparezcan 5 objetos sin que al usuario le haya dado tiempo a clickar, se termine el juego. ¿Cómo puedo añadir este evento?