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

61
Preguntas y respuestas / Seleccionar Sprite?
Marzo 31, 2015, 08:02:23 PM
Imaginemos que tengo un objeto que crea 5 Sprites diferentes y quiero clicar encima de uno de esos 5 sprites y que suceda alguna acción diferente en cada uno de ellos. Cómo me podría referir sintacticamente al Sprite en cuestión?
62
Preguntas y respuestas / Re:Pathfinding Alarm
Marzo 31, 2015, 07:11:47 PM
No me sirve, lo siento, ya te dije, necesito hacer que cada casilla de 16  el objeto enemigo se pare durante 1-2 o 3 segundos. A mi me da igual que en cada path se pare durante 1-2 o 3 segundos, yo lo quiero por casilla no por Path. Es decir perfectamente puedo seguir con el mismo path, el problema no esta ahí, el problema esta en el movimiento de casillas.
63
Preguntas y respuestas / Re:Pathfinding Alarm
Marzo 31, 2015, 06:39:03 PM
No, no sirve, además hacer cálculos de nuevo de path cuanto podría intentar reutilizar el mismo path no me acaba de convencer, demasiados procesos juntos.
64
Preguntas y respuestas / Pathfinding Alarm
Marzo 31, 2015, 03:59:56 PM
Estoy haciendo un Pathfinding que se mueva en casillas de 16 en 16 pixeles, el tema es que cuando quiero que se mueva una casilla se pare durante 1 segundo y siga su camino, he estado jugando con Alarms pero no consigo que se mueva la casilla y se pare el segundo para después continuar, lo que hace simplemente es moverse a una velocidad de 16 casillas y en un par de milisegundos ha alcanzado el objetivo.

Sé que para este proceso a lo mejor necesitaría una función que pudiera saber cuando el objeto se ha movido 16 casillas hacia una zona y cuando pase eso poner el alarm a Falso para que no siga su camino hasta que sea de nuevo verdadero.

Step Event

with (obj_enemigo){
    path = path_add();
    if(mp_grid_path(grid,path,x,y,obj_player.x,obj_player.y,0)){
        path_start(path,0,"",1);
        a_move = false;
        alarm[0] = room_speed * 2;
        if(a_move == true){
            path_speed = 16;
        }else{
            path_speed = 0;
        }
    }
}


Obviamente el código que he pasado por aquí esta mal, ya que no cumple lo que busco, son simples pruebas ilógicas que he hecho ya que no encuentro la función que sepa si el objeto se ha movido 16 casillas a otra zona.
65
La emisión de particulas la tienes que dejar en un Step Event, si las dejas en un Create se van a quedar siempre en la misma posición, ya que Create Event no hace Updates de las posiciones, simplemente las crea y ahí se quedan, esa es una posibilidad.

La otra es la que ya te comentaron, cuando pones las coordenadas tienes que poner las del enemigo/jugador, obj_player.x, obj_player.y
66
Intenta algo así.



var a = "",b = "",c= "";

if(personaje1 == 1){
a = per1;
}

if(personaje2 == 1){
b = per2;
}

if(personaje3 == 1){
c = per3;
}

sprite_index = choose(a,b,c);


En los If siempre se usan los 2 iguales, ya que estas preguntando, mientras que cuando usas solo 1 igual estas asignando un valor.

No se si te dejará inicializarlo así las variables, pruebalo y me cuentas, el tema es que lo que haces antes de realizar el choose y el asignamiento al valor del sprite_index, es hacer una pregunta a cada uno en caso de que sea cierto le asignas el sprite deseado y sino, se queda con un valor vació/nulo.

De esta forma lo que haces es "engañar" un poco, ya que cuando toque un valor nulo como el Sprite no existe no va a cambiar.

La otra posibilidad ya que vas a tener hasta 15 personajes es que vayas concatenando Strings en el Choose.
67
Preguntas y respuestas / Re:Problema en Pathfinding
Marzo 31, 2015, 02:34:14 AM
El fallo ha sido otra cosa totalmente diferente al final, y me he dado cuenta, se ve que si asignas un objeto padre

mp_grid_add_instances()

en esta función, estas petandolo, ocollision es un obj padre no es el objeto en cuestión. He modificado simplemente eso y ya funciono.
68
Preguntas y respuestas / Problema en Pathfinding
Marzo 30, 2015, 10:03:50 PM
Es extraño, nada más comenzar el juego todos los objeto enemigos van a parar a la zona izquierda-superior del mapa



Step Event del obj_enemigo

grid = mp_grid_create(0,0,room_width div 16,room_height div 16,16,16);
path = path_add();
mp_grid_add_instances(grid,ocollision,1);
mp_grid_path(grid,path,x,y,obj_player.x,obj_player.y,0);
path_start(path,1,"",1);


Me he fijado en el manual de Game Maker y he usado las funciones predefinidas para poder usar el pathfinding pero me ha dado ese error, es empezar a jugar y automáticamente todos los enemigos se van a esa zona izquierda-superior de la Room.
69
Preguntas y respuestas / Re:Duda A*
Marzo 30, 2015, 09:13:31 PM
Cita de: penumbra en Marzo 30, 2015, 07:22:06 PM
El algoritmo A* se usa en las funciones mp_grid

Citarmp_grid functions
The final type of function use a much more complex mechanism based on a grid-based approach (sometimes called an A* algorithm). It will be much more successful in finding paths (although it still might fail) and will find the shortest paths possible but it requires more work on your side to set it up.

Esa era la respuesta que buscaba. Igual voy a probar hacer algo y compararlo con lo que me da game maker.
70
Preguntas y respuestas / Duda A*
Marzo 30, 2015, 06:31:13 PM
Cual es el algoritmo usado en Game maker para los paths? el A*?
71
Preguntas y respuestas / Re:Bala con movimiento
Marzo 30, 2015, 06:20:27 PM
Evento Create de la bala

a_bala = true;
spd=5;


Evento Step de la bala

if(a_bala==true){
if(mouse_check_button(mb_left)){
instance_create(obj_jugador.x,obj_jugador.y,obj_bala);
a_bala = false;
alarm[0] = room_speed * 0.5;

}

}


Evento Alarm[0] en la misma bala

a_bala = true;


La otra es que en vez de darle directamente las coordenadas como hice yo en el evento Step lo hagas con un With y te ahorras tener que poner el obj_Bala en la habitacion ya que se crea a partir del mismo personaje.
72
Solido, las colisiones con objetos sólidos son las más nefastas de Game Maker por que dan un montón de problemas y pocas soluciones a lo que buscamos, lo mejor y más recomendable es que pases todo el código que tienes a objetos no sólidos.
73
Yo he trabajado con diseño responsive en diseño de webs, pero supongo que será totalmente diferente ya que cuando trabajas con HTML el tema de las CSS ayuda demasiado, hay muchísimas herramientas que automatizan mucho el proceso.
74
Preguntas y respuestas / Equivalente a scanf?
Marzo 17, 2015, 03:05:37 PM
Cual sería el equivalente a Scanf en Game Maker? Para que el usuario pueda insertar un numero o texto.
75
Cita de: Clamud en Marzo 17, 2015, 03:30:48 AM
Los "arreglos" en GML son similares a las "estructuras" en C, porque pueden almacenar datos de diferentes tipos, pero en GML no es necesario declarar el tamaño del arreglo ni los tipos de datos que va a almacenar, todo se hace automáticamente al asignar un valor (arreglo[i,j]=valor;).

Si ya sabes C, te será muy fácil aprender la sintaxis de GML, sólo tienes que leer esta sección del manual: http://docs.yoyogames.com/source/dadiospice/002_reference/001_gml%20language%20overview/index.html

En tu código los errores son éstos:

En la primera línea aparece ésto
[gml]casillas[tam,tam], aux_desactivada[tam,tam];[/gml]
No se permite declarar el tamaño sin una asignación, éstas son las formas correctas
[gml]
casillas, aux_desactivada;
casillas[tam,tam]=valor ,aux_desactivada[tam,tam]=valor;
[/gml]

Esta expresión [gml]casillas[j]=random()%16;[/gml] se debe escribir así, mira que random lleva un argumento [gml]casillas[i,j]=random(1)%16;[/gml]

Y la palabra do se debe usar con until, no con while.

Gracias  :) Se me hacen raras algunas cosas como no poner que tipo de variable es, pero ya iré acostumbrándome.