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

166
Preguntas y respuestas / Re:Desactivar instance
Diciembre 16, 2014, 08:18:07 PM
¿Probaste con instance_desactivate_object() e instance_activate_object()?
167
Podrías usar un explode para tomar los valores separandolos con el espacio, acá te dejo la URL del script:

http://www.comunidadgm.org/desarrollo-de-scripts/explode()/
168
Justamente, para evitar poner números y todo eso haces la multiplicación de la velocidad de tu room (que por defecto es 30) por la cantidad de segundos que queres.
169
Dentro del create de tu objeto que dispara poné que se ejecute la alarma, dentro de la alarma poné algo como esto:

[gml]instance_create(x,y,objDisparo);
alarm[0] = room_speed * 5;[/gml]

Con eso se crearía el disparo cada 5 segundos.
170
Preguntas y respuestas / Re:draw numero de objetos.
Diciembre 13, 2014, 04:20:52 PM
Simple:

[gml]draw_text(x,y,"Cantidad de objetos: "+string(instance_number(objaContar))+"/10);[/gml]

Si queres limitar el número de objetos que se crean simplemente en la acción donde le haces click al otro objeto y se crea ponés antes esto:

[gml]if (instance_number(objaContar) < 10) {
    //Acción de crear objeto.
}[/gml]

Ese código quiere decir que mientras existan menos de 10 objetos se va a poder crear uno nuevo, de lo contrario no haría nada.
171
Si lo que queres es evitar tantas room, ¿no te conviene hacer un objeto que dibuje todo el menú y desactivar todas las instancias menos esa?

En ese objeto simplemente dibujarías lo que vos queres y le asignas coordenadas a donde hacés click, por ejemplo:

[gml]
if (mouse_x < 30 && mouse_x > 10 && mouse_y < 30 && mouse_y > 10) {
   global.edificioConstruir = "casa";
   instance_activate_all();
   drawMenu = false;
}
[/gml]

Simplemente tendrías que comprobar el estado de "drawMenu" en el eventro Draw, si es "true" se dibuja, si es "false" no pasa nada.

En el caso de que le des click al botón "Construir" tendría que ser algo así:

[gml]objMenuConstruir.drawMenu = true;
with (objMenuConstruir) {
      instance_desactive_all(1);
}[/gml]

De esta forma se empezaría a dibujar todo el menú en pantalla y con el with () lo que se hace es desactivar todas las instancias menos la instancia donde se está ejecutando la pieza de código, en este caso forzamos que sea en el objeto "objMenuConstruir" para que sea la única instancia activa hasta que se elija un edificio.
172
Eso se hace con grid, en la sección de descargas tenes muchos ejemplos, también está el buscador que este tema ya se ha hablado en el foro, te dejo un mensaje con un ejemplo:

http://www.comunidadgm.org/preguntas-y-respuestas/movimiento-en-4-direcciones-respetando-una-grid/msg82282/#msg82282
173
Los archivos *.ini son archivos que guardan datos por sectores y valores que se pueden utilizar para información específica como por ejemplo guardar una partida, almacenando posición X, Y, nivel, puntaje, etc.

Los archivos *.txt (que pueden tener cualquier otro formato) son archivos que también permiten almacenar datos pero no poseen sectores y valores como es el caso de los *.ini, si no que se utiliza el salto de línea para diferenciar los datos uno de otro.

En el manual oficial de Game Maker tenes varios ejemplos de como se utilizan y en el foro hay varios temas con la misma pregunta como también en la sección de DESCARGAS tenes varios ejemplos de como se utilizan.
174
Podes comprobarlo de esta forma:

[gml]
if (xprevious < x) {
   //Acción de mirar a la derecha.
} else if (xprevious > x) {
   //Acción de mirar a la izquierda.
}
[/gml]
175
Tendrías que crear un array para almacenar las cosas que tenes en el inventario, de esa forma cuando comprás algo tendrías que almacenarlo en ese array, por ejemplo, podrías tener un espacio para 5 objetos (por dar un ejemplo) y te quedaría algo así en el evento Create de tu personaje:

[gml]
inventario[0] = "Primer objeto";
inventario[1] = ""; //Objeto vacío.
inventario[2] = ""; //Objeto vacío.
inventario[3] = ""; //Objeto vacío.
inventario[4] = ""; //Objeto vacío.
[/gml]

Cuando comprás algún objeto tendrías que hacer un for para comprobar que casillero está vacío y llenarlo, quedando algo así:

[gml]
for (var i = 0;i<5;i+=1) {  //Creamos un for para que se repita 5 veces (longitud del array).
    if (inventario == "") { //Comprobamos si el array de la pasada i está vacío.
        inventario = "Nombre del producto"; //Si está vacío lo llenamos.
        break; //Terminamos de ejecutar el bucle for.
    }
}
[/gml]

Esa es una forma que podes usar para comprobar la disponibilidad de un espacio en el inventario y llenarlo al comprar el producto.
176
Yo vengo usando GM desde :GM5: y nunca perduraron, se destruían al cambiar de room porque no tenían el objeto que las inicializara.
177
Las variables globales solo sirven para poder utilizar esa variable en otros objetos, que también se puede poner "nombreObjeto.puntos = 10;". La única alternativa es que el objeto donde almacenas todas las variables importantes sea persistente como dice penumbra, en la room principal inicia el objeto y ya te olvidás de todos los problemas.
178
Preguntas y respuestas / Re:ayuda con una duda con 3d
Diciembre 06, 2014, 06:18:11 PM
Un consejo, no abrás un nuevo tema preguntanto lo que ya preguntaste en este, más que nada para mantener el orden.

Otra cosa, también podes usar Google para resolver tus dudas, por ejemplo poniendo "minimap 3d game maker" te van a salir varios resultados, en uno de los hilos de GMC había un ejemplo:

http://host-a.net/u/Merlocker_Games/Maze.gmk

Si hay algo que esté en ingles y no entendes, siempre podes usar el traductor.
179
Preguntas y respuestas / Re:ayuda con una duda con 3d
Diciembre 06, 2014, 04:07:40 PM
Cuando haces referencia a obj_player y other no tenes que ponerle .xx y .yy, a demás es raro que no te haya salido error al ejecutarlo al menos que hayas creado las variables xx e yy en esos objetos.
180
Preguntas y respuestas / Re:Crear arma desbloqueable
Diciembre 06, 2014, 03:29:48 PM
En ese mismo switch tendrías que poner algo así:

[gml]
switch (weapon) {
    case 0:
       sprite_index=spr_pistolplayer;
    break;

    case 1:
       sprite_index=spr_spasplayer;
    break;

    case 2:
       sprite_index=spr_akplayer;
    break;

    case 3:
       sprite_index=spr_sniperplayer;
    break;

    case 4:
       if (score >= 200) { //Si el puntaje es mayor o igual que 200 (por dar un ejemplo) se puede usar el arma n° 4.
          sprite_index=spr_armaSecreta01;
       }
    break;
}
[/gml]