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

1
La verdad no utilizo GM desde hace muchísimos años pero lo que se suele hacer en ese caso en lenguajes de programación como C++ o Java, sería almacenar un array.

Cada elemento de la grilla no es un valor, sino un array.

Teoricamente sería algo como:

Citarvar vec[];
vec[0] = 300;
vec[1] = 1;
vec[2] = 3850;


ds_grid(grilla, 0, 0, vec);

Desconozco si esto es posible, pero podrías intentarlo.
2
Algo asi como un item que te cambie los controles?
Necesitarías usar una variable que indique cuándo el jugador recogió el item.

Se puede hacer de muchas formas y depende de cómo esta implementado. Por que por ahí podes mapear los controles. O bien es una variable que cambie el vector de movimiento. O hacer una condición en los eventos key_press , o en step si estas usando keyboard_check.

En todo caso, cómo lo estás implementado vos al movimiento?
3
Hacer un partent, basicamente significa:
1) tener un objeto definido
2) derivar otro objeto a partir del objeto creado en 1

para que te des una idea, podemos decir que creo un objeto FELINO y hacer derivar muchos objetos, por ejemplo, un GATO, un TIGRE, un LEON.
La idea es agrupar de una forma logica los objetos para que compartan parte de código, en la mayoria de los casos.

Sin embargo, podés hacer un objeto base (como FELINO) y dejarlo vacío, sin eventos. Con la única finalidad de que sirva para agrupar a otros objetos.
En tu caso serìa crear primero un objeto jefe base, para luego ir derivando a todos los jefes.

Entonces hacer el codigo de disparo ser haría mucho mas sencillo. Sin tener que verificar los 4 fejes. Incluso si en un futuro se te da por hacer mas jefes, 20, 80, 1000. Solo bastaría derivar del objeto base.
    Incluso la labor es más sencilla cuando implementás más de un disparo.

En la imagen adjunta número 1, muestro un diagrama de cómo deberia estar conformado.
En la imagen adjunta número 2, muestro la opción para derivar un jefe, de un objeto base. (El cual es llamado como "padre").

Entonces deberias crear "obj_jefe_base" y hacer que los jefes que ya estan creados vayan heredando de éste. Luego únicamente en obj_bullet debería haber un único evento de colision con "obj_jefe_base" y bastaría colocar el código de acción, o sea:
[GML]
effect_create_above (ef_firework,x,y,0,c_yellow);
audio_play_sound (snd_Disparo_De_Fuego,50,false);
global.vida_jefe -= 1;
instance_destroy ();
[/GML]

4
A mi me copiaron, yo soy el original (?)


Bueno, si querés meterle segundos y minutos es facil, es el mismo metodo pero tenés que usar una variable adicional. Como a mi se me ocurre sería declarar una variable para minutos y otra para los segundos:

[GML]
CREATE:
minutos = 2;
segundos = 45;

alarm[0] = 1;
[/GML]
[GML]
ALARMA 0
///Contador de segundos

if (segundos == 0){
    minutos -= 1;
    segundos = 60;
}

segundos -= 1;

alarm[0] = room_speed;


if (minutos == 0) && (segundos == 0) {
      game_end()

[/GML]


una aclaración, es que nunca tenés que poner las llamadas de alarm en el evento step, o sino se llama todo el tiempo y da el efecto de que no se ejecuta. Pero en realidad está todo el rato inicializandose.

ah, para poner el mensaje cambias las instrucciones del draw:

draw_text( 0, 0, "Te quedan " + string(minutos) + "con " + string(segundos));
5
Para dibujarlo en pantalla? O para ponerle minutos y segundos?

Para ponerlo en pantalla tenés que usar la funcion draw_text() dentro de algun evento draw.
Por lo general ahora, esta de moda entre los jovenes, usar draw GUI event. Para no tener que estar usando views.

En ese caso:

draw_text( 0, 0, tiempo);

ahora si querés algo con minutos o segundos el chiste es mejor, decinos asi nos reimos todos.
6
Hola amigo, no hay mucho de que hablar sobre una ds_grid()

es como usar una tabla de M x N. O que es igual, una tabla de M filas por N columnas.
También se les dicen grillas(grid), vectores bidimensionales(2 dimensiones), array 2D, matriz.

Básicamente la función existencian de estas cosas es simular una tabla. Pero se le pueden dar diversos usos, por ejemplo hacer un inventario para un RPG. O darles un uso mucho más representativo como representar un tablero de juego como un Ajedrez o mas complejo como un campo de juego.

La diferencia entre hacer uno mismo una matriz a mano en Game Maker, con la sintaxis:

var matriz[m,n]

es que las ds_grid() cuentan con funciones nativas para no tener que reinventar o volver a pensar determinados algoritmos como pueden ser: redimensionar la tabla, encontrar un valor, buscar si existe o no un determinado valor, encontrar el mayor, el menor. Cambiar el valor de una celda... un montón de cosas.