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 - matiascarpello

196
Preguntas y respuestas / Ayuda con un problema
Julio 26, 2014, 09:05:28 PM
Hola gente, quiero implementar lo siguiente en un juego y no se como hacerlo.

Tengo un objeto llamado obj_boton_bloqueado.

Quiero que cuando se haga click sobre ese boton desaparezca y me cree un objeto llamado obj_boton_desbloqueado.

Esto lo se hacer, el problema es que quiero que una vez que se haya hecho click sobre el obj_boton_desbloqueado ya no aparezca nunca más, es decir se tiene que guardar en un archivo ini para que directamente aparezca el obj_boton_desbloqueado.
Pero no se como hacerlo. Ya he leído tutoriales en español, ingles y no logro entenderlo.

¿Me podrían ayudar?

197
Juegos completos / Re:Blocked Online
Julio 22, 2014, 08:46:31 PM
Increible, simplemente muy bueno, mis felicitaciones al creador de este gran juego
198
Preguntas y respuestas / Re:Ayuda con condicional IF
Julio 22, 2014, 04:12:03 PM
Cita de: Marth en Julio 22, 2014, 03:51:37 PM
¿No sabias que no tienes por que poner else? Pues poner solo el if. Si solo existe el if, en caso de no cumplirse no pasara absolutamente nada.

Lo hice sin else y me dio da error por eso pensé que había que poner un else: Lo tengo así:

if object_exists(obj_joystick)
{
direction = (direction+(sin(degtorad(obj_controller.dStick-image_angle))*12));
speed = obj_controller.lStick / 10; //velocidad de movimiento personaje

image_angle = direction;

x = max(0, min(x, room_width));
y = max(0, min(y, room_height));
}


Si el objeto obj_joystick existe hacer ese código. Pero salta el error lo mismo. ¿Será porque está en un step?
199
Preguntas y respuestas / Ayuda con condicional IF
Julio 22, 2014, 03:46:12 PM
Hola gente, tengo un problema con un código que estoy haciendo. Primero les muestro el codigo:

Tengo un Joystick virtual que es como una palanca, con eso muevo libremente al personaje por la habitación.

El problema es que hay una room en la que necesito que el joystick virtual no esté pero si el personaje. Y ahí es donde se da el problema porque al no estar en la room el objeto joystick me da error, ya que en el evento steep del personaje hay parte del código del joystick y por ese motivo me da error al compilar.

Este es el código del evento steep del que tiene el personaje por si lo quieren ver.

direction = (direction+(sin(degtorad(obj_controller.dStick-image_angle))*12));
speed = obj_controller.lStick / 10; //velocidad de movimiento personaje

image_angle = direction;

x = max(0, min(x, room_width));
y = max(0, min(y, room_height));


Entonces se me ocurrió que capaz que con un condicional if se pueda anular el steep, como por ejemplo:

si objecto joystick existe
{
direction = (direction+(sin(degtorad(obj_controller.dStick-image_angle))*12));
speed = obj_controller.lStick / 10; //velocidad de movimiento personaje

image_angle = direction;

x = max(0, min(x, room_width));
y = max(0, min(y, room_height));
}

si nó
{
no hacer nada o anular steep
}

Como verán, hago lo que puedo con el condicional if, el tema es que no se que aplicar en el else, es decir, como anular el steep o todo el código en caso de que no exista en la room el objeto joystick.

¿Alguna ayuda?
200
Preguntas y respuestas / Re:Ayuda con guardar ini
Julio 21, 2014, 06:22:06 PM
Cita de: Iros en Julio 21, 2014, 06:12:43 PM
¿El archivo "coins.ini" lo tenes dentro del apartado "Included files"? Porque :GMS: trabaja de forma diferente que :GM8: o anterior ya que si o si para llamar un archivo externo tiene que estar dentro de ese apartado.

El archivo coins.ini se genera en la carpeta \AppData\Local\MiJuego
201
Preguntas y respuestas / Ayuda con guardar ini
Julio 21, 2014, 05:43:55 PM
Hola gente, tengo un juego de varios niveles. A lo largo del juego hay monedas que al recogerlas el jugador suma +1 a la variable global.coin.  El problema es que cuando paso de nivel o cierro el juego la variable global.coin vuelve a cero, es decir, se pierde la información.

Seguí un tutorial de en el que decía que hay que usar archivos ini y así lo hice, he creado un objeto obj_guardarcargar en la primera room y le he puesto persistent.

En el evento game start e puesto
ini_open("coins.ini");
global.coin = ini_read_real('global','coins',0)
ini_close();


Y en el evento Game End e puesto
ini_open("coins.ini");
ini_write_real('global','coins',global.coin)
ini_close();


Pero sigue sin funcionar, nunca me guarda la variable global_coin

¿Qué puedo estar haciendo mal?
202
Hola gente, tengo un juego de aventura en el que el personaje va recolectando dinero a lo largo del juego.
El dinero recolectado se va acumulando en la variable global.coin.  El problema es que cada vez que cierro se borra la variable.

Me he fijado de ejemplos de como grabar la variable utilizando archivos ini pero todas son referidas a que se guarde la mejor puntuación, y lo mio es algo distinto, puesto que aquí no se compara si una puntuación es mejor, sino de simplemente guardar los datos de la variable.

¿Cómo podría hacerlo?
203
Hola gente, tengo un juego con un sistema de desbloqueo de nivel.

Cuando el personaje coliciona con la meta se ejecuta este código:

if(room = level_3){ini_open("save.ini"); ini_write_real("niveles","nivel4",1); ini_close();}

Y el el botón que llava al nivel antes bloqueado tengo el siguiente código:

ini_open("save.ini");
n = ini_read_real("niveles","nivel2",0);
ini_close();

if(n = 0)
{
    bloqueado = 1;
    sprite_index = Bloqueado;
}
else
{
    bloqueado = 0;
    sprite_index = spr_2;
}


El problema es que a partir del nivel 6 quiero añadir un requisito más para que se cumpla el desbloqueo del nivel:

Quiero que si global.coin=0 es mayor o igual a tres recién se aplique el código que les deje ahí arriba al principio.

O sea resumiendolo si global.coin=0 es mayor o igual a tres se haga esto:

if(room = level_3){ini_open("save.ini"); ini_write_real("niveles","nivel4",1); ini_close();}

Caso contrario que no se haga nada.

¿Como podría implementar ese condicional?
204
Cita de: Marth en Julio 17, 2014, 10:56:43 PM
Me parece que si usas esa instrucción, el sprite que usases sera eliminado de la memoria RAM para el resto de la partida, por lo que te sugeriría que en vez de esa función usara otra que modificase el fondo por otro, a ver si así no te pasa.
Eso si, de pasarte, podrías programar que volviese al fondo original, lo cual ya no podrías con lo que tu usas.

Ok, pero eso es lo que no se como solucionarlo, por ejemplo, si con background_delete borro un fondo, cuál es el código para volver a crearlo? De esa manera pondría en un create al inicio del juego que vuelva a crear el background.
205
Hola gente, hay una parte en mi juego que necesito que se borre un background. Entonces lo que hice fue en el momento determinado usar el código background_delete(fondo1).

El código funciona perfectamente, el problema es que al reiniciarse el nivel, directamente ya comienza sin el backgroun, y yo pensé que lo lógico sería que si se reinicia la room vuelva a generarse el background.

¿Estoy cometiendo un error al utilizar ese código? ¿Como podría solucionarlo?

Edit: Ya lo solucioné con un simple background_visible [0] = false;
206
Cita de: 3dgeminis en Julio 12, 2014, 06:17:24 PM
Tenes la funcion image_xscale que podes usarla poniendo los valores 1 y -1 para derecha e izquierda
image_xscale=1
image_xscale=-1

Al colisionar con la pared podes poner:  image_xscale*=-1 y te cambia automaticamente.

El tema es que si te fijas en la imagen que deje como ejemplo, lo negro que vendría a ser la pared es todo un mismo objeto.

Al usar image_xscale*=-1 la primera vez que colisiona se regresa con el cambio horizontal el el pez, pero toca la pared de la parte derecha no voltea nuevamente el objeto.

Porque claro, si usara dos paredes diferentes le podría que en una cuando colicione image_xscale*=-1  y el la otra image_xscale*=1. Pero en este caso se trata de todo una sola pared
207
Hola gente. He logrado que un objeto al colisionar con otro objeto rebote de forma vertical utilizando bounce.

El problema es que quiero que cuando rebote también el objeto se voltee para hacerlo más real.

Para el rebote quisiera que el objeto se voltee pero utilizando 1 solo sprite.

Les dejo una imagen como ejemplo:


Como pueden ver, todo lo de negro es un objeto y el pez es otro objeto, entonces cuando colicióne con la parte negra este cambie de dirección volteandolo de forma vertical.

Yo lo podría hacer utilizando un segundo sprite, pero el problema es que estoy trabajando con sprite "SWF" y no me da la posibilidad de agregar varios fotogramas dentro de un solo sprite, y como son muchísimos los enemigos me haría un buen lío.

208
Interesante, muy bueno. Yo estoy probando pero utilizando corel draw x7 que permite exportar los vectores a swf. Aunque el gamemaker no interpreta muchas cosas del todo bien.
209
Hola gente, tengo un juego en el que muevo a un personaje hacia la izquierda o a la derecha.

el personaje es una pelota que cuando se mueve a la derecha o izquierda va rodando, el problema es que quiero que cuando suelte la flecha para mover a la pelota se detenga la animación de la pelota que esta rodando en ese frame en particular.

Es decir, si yo suelto la tecla de mover al personaje cuando estaba la animación del sprite en el frame 8, se detenga en dicho frame, y que cuando vuelva a presionar la tecla de movimiento continué la animación del sprite desde ese frame.
210
Hola gente, tengo un problema y paso a comentárselo.

Tengo un juego con 40 niveles. En cada nivel hay 3 monedas, el cuál es el obj_coin. Es decir, que el obj_coin esta presente 3 veces por nivel.

El personaje de mi juego al colisionar con el obj_coin agrega 1 coin como puntaje que eso ya lo tengo implementado.

Y ahora si ya explicado mas o menos mi juego, quiero que una vez que el jugador haya colisionado con el obj_coin este ya no vuelva a estar presente nunca más en el juego.

De esta forma, esto me permitiría mas adelante implementar un sistema que para que se desbloqueen más niveles, sea necesario recoger cierta cantidad de monedas y así seguir avanzando en el juego.

Supongo que puedo hacerlo con archivos ini, pero no se como implementarlo.  ¿Alguien me podría dar una mano?