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

76
Creo que hay que desactivar el application_surface para mejorar los gráficos en dispositivos móviles.
Puedes probar en este código en un evento ROOM START:

if application_surface_is_enabled()
      {
      application_surface_enable(false);
      }
77
Grafismo & Composición / Re:Mi minigalleria
Julio 23, 2017, 01:28:37 PM
El cangrejito, de todos el mejor.  :D
78
Preguntas y respuestas / Re:Puntuación para juego
Julio 23, 2017, 01:14:18 PM
No tengas prisa, ve aprendiendo poco a poco. Puedes mirar tutoriales en youtube sobre cómo hacer un plataformas o un rpg para ver cómo los programadores resuelven sus objetivos poco a poco y saca tus propias conclusiones.

En cuanto a tu primera cuestión, puedo proponerte esto:

Supongo que tienes un objeto que guarda las preguntas (lo llamaré "Preguntas") y tiene un sprite de 125 imágenes de las preguntas, siendo la primera pregunta con image_index = 0 y la última com image_index = 124.

Entonces si el objeto C1 es la respuestas correcta de la primera pregunta:
Evento Step:

if mouse_check_button_pressed(mb_left)
  {
     if (mouse_x > x) && (mouse_y > y) && (mouse_x < x + sprite_width) &&  (mouse_y < y + sprite_height)  // si las coordenadas del mouse están dentro del area del sprite del boton
     {
        if (Preguntas.image_index == 0) // si el objeto Preguntas tiene el image_index de la primera pregunta
          {
            show_message_async("ACERTADO. SUMAS 1 PUNTO.");
            global.puntos += 1; // Nota: si tu variable de puntos no se llama global.puntos entonces cámbialo por el nombre que tengas
          }
     }

  }

79
Yo crearía otra variable que funcionará como interruptor o controlador.
Por ejemplo, en el objeto donde tienes creado la variable global (llamemos al objeto como Puntuacion) puedes poner:

Evento Create:
global.aciertos = 0
control = false;


Evento Step:
if (control) // si control es true
{
if (global.aciertos >= 3) // si global.aciertos es igual o mayor a 3
{
    global.aciertos += 200; // sumamos 200 puntos
    control = false; // desactivamos el control para evitar seguir sumando
}

}


Luego en el objeto donde sumas 1 punto deberías poner:
global.aciertos += 1;
Puntuacion.control = true; // a la variable "control" del objeto "Puntuacion" se le cambia de valor, en este caso "true"
80
Por curiosidad, ¿ los patrones de números se crean al mismo tiempo que las cuadrículas? ¿ O cada cuadrícula recibe al azar un 1 ó un 2?
81
GMS tiene una función llamada os_is_paused. Por ejemplo:

if os_is_paused () // si el juego ya no es el foco de la aplicación
{
// activar la pausa
}
82
Sería lo ideal. Recuerda que las imágenes de un mismo sprite deben mantener el mismo ancho y alto.
83
Los sprites de las preguntas deberían ser sub-imágenes de un solo sprite. Como si fuera una animación. Todas las imágenes deben tener las mismas dimensiones de alto y ancho.

Entonces en el objeto de las preguntas pondría:
EVENTO CREATE:
image_speed = 0; // para detener la animacion del sprite
image_index = 0; // para empezar desde la primera imagen del sprite. Nota: se empieza a contar desde 0. Por lo tanto la imagen de tu primera pregunta está en la posición 0 y la pregunta 39 en la posición 38.


EVENTO STEP:
if keyboard_check_pressed(vk_left) // si presiono la tecla de desplazamiento izquierda
{
if (image_index != 0) // si no estamos en la primera imagen
  image_index -= 1; // retrocedemos una imagen
}

if keyboard_check_pressed(vk_right) // si presiono la derecha
{
if (image_index != 38) // si no estamos en la última imagen
  image_index += 1; // avanzamos una imagen
}
84
Te propongo esta manera de crear tus 3 cofres o tesoros:
Necesitas 2 objetos:

Un objeto que controlará la creación de los cofres, llamémoslo "controlador". Tiene los siguientes eventos:
EVENTO CREATE:
otra_ronda = false; // para iniciar otra ronda de cofres

a = instance_create(200, 200, cofre); // creamos el primer cofre en la coordenada 200, 200
a.acierto = choose(false,true); // acierto pude ser true o false

b = instance_create(264, 200, cofre); // segundo cofre en la coordenada 264, 200
if (a.acierto) // si el cofre "a" tiene acierto = true
{
    b.acierto = false; // acierto es falso
}
else // de lo contrario...
{
    b.acierto = choose(true, false); // acierto puede ser true o false
}

c = instance_create(328, 200, cofre); // tercer cofre en coordenada 328, 200
if !(a.acierto) && !(b.acierto) // si el acierto en los cofres "a" y "b" es falso
{
    c.acierto = true; // este cofre tiene acierto = true
}
else // de lo contrario...
{
    c.acierto = false; // acierto es falso
}


EVENTO STEP:
if (otra_ronda) // Cuando otra_ronda es true
{
    with(cofre) { instance_destroy();}
   
    a = instance_create(200, 200, cofre);
    a.acierto = choose(false,true);
   
    b = instance_create(264, 200, cofre);
    if (a.acierto)
    {
        b.acierto = false;
    }
    else
    {
        b.acierto = choose(true, false);
    }
   
    c = instance_create(328, 200, cofre);
    if !(a.acierto) && !(b.acierto)
    {
        c.acierto = true;
    }
    else
    {
        c.acierto = false;
    }

   
    otra_ronda = false; // una vez creado los nuevos cofres, desactivar otra ronda 
}


Luego creamos el objeto Cofre. Llamémoslo "cofre". Tiene los siguientes eventos:
EVENTO CREATE:
acierto = false;

EVENTO LEFT PRESSED. ( O en cualquier evento donde interaccionas con los cofres, yo lo haré haciendo clic con el botón izquierdo del mouse)
if (acierto) // si acierto es true
{
    show_message_async("CORRECTO");
    controlador.otra_ronda = true; // Nota: escribe el nombre del objeto controlador respetando mayúsculas y minúsculas. En mi caso mi objeto Controlador se llama "controlador".
}
else
{
    show_message_async("MALA SUERTE");
    controlador.otra_ronda = true;
}

85
Grafismo & Composición / Re:Mi pixelart
Julio 19, 2017, 09:46:15 AM
No se ven las imágenes :o
86
Preguntas y respuestas / Re:Como crear patrones
Julio 18, 2017, 07:17:25 PM
Según parece, necesitas poner a unos enemigos en posiciones conocidas. Podrías hacerlo así:

Evento create:

patron = irandom_range(1, 10);

switch (patron)
{
case 1:
instance_create(x,y,obj); // pon las coordenadas exactas y el nombre del objeto
break;

case 2:
instance_create(x,y,obj);
instance_create(x,y,obj);
break;
...
case 10:
instance_create(x,y,obj); // repite esta linea 9 veces más

break;

}
87
Para comprobar si existe un objeto en la room se usa:
if (instance_exists(nombre_del_objeto))
{
// acciones aquí
}


También puedes usar:
if (instance_number(nombre_del_objeto) < 1) // si hay cero instancias del objeto indicado...
{
// hacer algo
}
88
Gracias, Clamud. Tu idea me ha ayudado mucho.  ;D
89
Es necesario guardar el valor en un archivo ini.

Primero crea en un bloc de notas un archivo ini. Yo he usado el Bloc de notas de Windows.
He puesto:
[Propiedad]
angulo = 0


Para guardarlo elige "Guardar como" y escribe el nombre del archivo con la extensión (.ini). En mi caso pongo: Mi_angulo.ini

Luego en el árbol de recursos me dirijo a la carpeta "Included files" y clic derecho. Elijo "Create included files" y busco el archivo ini que antes es creado.

Después en el objeto que cambia su angulo debes tener:
Evento Game Start:
ini_open("Mi_angulo.ini");// leemos el archivo ini
global.angulo = ini_read_real("Propiedad","angulo",0); // leemos el valor que tenemos en el archivo ini y lo guardamos en la variable globa.angulo
ini_close(); // dejamos de leer el archivo ini


Evento Step:
image_angle = global.angulo; // cambiar el angulo
global.angulo++ // sumamos 1 a la variable global.angulo


Para reiniciar la room puse un evento Key Press Space con el código: room_restart();

Me ha funcionado. Espero te sirva. Puedes buscar en google más información sobre cómo usar archivos ini en gamemaker.
90
¿Quieres que aparezcan las bandas negras o necesitas estirar la vista de la room hasta ocupar toda la pantalla?