Pues para sprites pixelados lo mejor es el png, además tiene compresión sin pérdida de calidad.
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.
1637
Preguntas y respuestas / Re:Cambiar valores iniciales de variables globales
Noviembre 02, 2014, 10:07:56 PM
Para no usar objetos puedes escribir un "Creation code" en una room.
Para modificar los valores se hace como con cualquier variable:
[gml]
score = 0;
lives = 3;
health = 10;
[/gml]
Para modificar los valores se hace como con cualquier variable:
[gml]
score = 0;
lives = 3;
health = 10;
[/gml]
1638
Preguntas y respuestas / Re:Problema con colisiones con velocidad
Noviembre 02, 2014, 03:43:45 AM
Existen muchas formas para solucionar el problema.
La primera sería hacer que el objeto se mueva distancias cortas e ir checando en cada posición si hay una colisión, esto se haría varias veces en cada step. Pero este proceso es muy ineficiente.
La segunda forma es hacer que el movimiento se haga en distancias cortas, como en el caso anterior, pero sólo cuando se encuentre a una distancia determinada del otro objeto. Si tu barra es como la de arkanoid puedes hacer éste proceso cuando la diferencia entre las variables "y" de cada objeto sea muy pequeña.
Otra forma sería usar la función "collision_line", si la pelota está cerca de la barra pero no hay colisión revisa si la línea entre los puntos (x,y) y (xprevious,yprevious) colisiona con la barra; si es así, en la trayectoria que lleva la pelota ocurrió una colisión.
Otra forma sería manejar vectores y algo de trigonometría pero aún no tengo claro cómo hacerlo.
La primera sería hacer que el objeto se mueva distancias cortas e ir checando en cada posición si hay una colisión, esto se haría varias veces en cada step. Pero este proceso es muy ineficiente.
La segunda forma es hacer que el movimiento se haga en distancias cortas, como en el caso anterior, pero sólo cuando se encuentre a una distancia determinada del otro objeto. Si tu barra es como la de arkanoid puedes hacer éste proceso cuando la diferencia entre las variables "y" de cada objeto sea muy pequeña.
Otra forma sería usar la función "collision_line", si la pelota está cerca de la barra pero no hay colisión revisa si la línea entre los puntos (x,y) y (xprevious,yprevious) colisiona con la barra; si es así, en la trayectoria que lleva la pelota ocurrió una colisión.
Otra forma sería manejar vectores y algo de trigonometría pero aún no tengo claro cómo hacerlo.
1639
Preguntas y respuestas / Re:Limitar distancia entre dos objetos
Octubre 30, 2014, 04:55:36 PM
Aquí hay otro código:
[gml]
///Mantener distancia
if( point_distance(objeto.x,objeto.y,x,y) > 50 )
{
angulo = point_direction(objeto.x,objeto.y,x,y);
x = objeto.x + lengthdir_x(50,angulo);
y = objeto.y + lengthdir_y(50,angulo);
}
[/gml]
Si quieres ver como funciona adjunto un ejemplo (mueve el circulo rojo con las flechas).
[gml]
///Mantener distancia
if( point_distance(objeto.x,objeto.y,x,y) > 50 )
{
angulo = point_direction(objeto.x,objeto.y,x,y);
x = objeto.x + lengthdir_x(50,angulo);
y = objeto.y + lengthdir_y(50,angulo);
}
[/gml]
Si quieres ver como funciona adjunto un ejemplo (mueve el circulo rojo con las flechas).
1640
Preguntas y respuestas / Re:Cajas en caida
Octubre 30, 2014, 04:01:59 AM
Si quieres que las cajas vayan hacia abajo debes asignar una vspeed positiva, entonces debes borrar el signo - en el código, espero que con eso se arregle el problema.
1641
Preguntas y respuestas / Re:Sombras simples en tiles invisibles
Octubre 28, 2014, 05:18:50 AM
Puedes poner otra capa de tiles, con mayor profundidad, que represente las sombras, por lo que necesitas un tileset de sombras.
Otra forma sería aumentar la profundidad de los objetos invisibles (o disminuir la profundidad de los tiles) para que queden en el fondo, y éstos objetos dibujarían las sombras.
Otra forma sería aumentar la profundidad de los objetos invisibles (o disminuir la profundidad de los tiles) para que queden en el fondo, y éstos objetos dibujarían las sombras.
1642
Juegos en desarrollo / Re:Search Risk
Octubre 25, 2014, 05:52:57 PM
Hola. Ya estuve probando tu juego, me pareció bastante difícil, no he logrado pasar del primer nivel. Me gusta que te hayas tomado el esfuerzo de hacer tus propios sprites, y la música le queda muy bien. Pero hacen falta algunas cosas: es necesario que la explicación de los controles vaya con el juego para no tener que visitar el blog si se te olvida como están configurados, y le hace falta tener una historia, eso servirá para que el jugador continue jugando hasta conocer el desenlace. Me gustaría que se pudieran conseguir powerups y que el arma inicial o básica no fuera tan poderosa o que no pueda hacer disparos tan rápidos. Yo creo que los duelos multijugador serían los más emocionantes, espero que los implementes. Eso es todo, continúa con el buen trabajo.
1643
Preguntas y respuestas / Re:BACKGROUND BORROSO
Octubre 24, 2014, 08:05:17 PM
De hecho se pueden asignar 8 backgrounds a un mismo room, pero para que se vean en la posicion correcta agregalos como tiles. Simplemente ve a la pestaña "tiles" en el editor de rooms, elige el fondo y haz click en donde quieres que se dibuje.
1644
Preguntas y respuestas / Re:¿Cómo saber el número de instancias que colisionan con un collision_rectangle?
Octubre 24, 2014, 07:57:01 PM
Hola. Puedes usar un código como éste:
[gml]
global.contador = 0;
with( all )
{
if collision_rectangle( x1,y1, x2,y2, id, false, false )
global.contador ++;
}
[/gml]
El objeto que ejecuta el código no de debe tener sprite o máscara de colisión, para que no se cuente a sí mismo.
[gml]
global.contador = 0;
with( all )
{
if collision_rectangle( x1,y1, x2,y2, id, false, false )
global.contador ++;
}
[/gml]
El objeto que ejecuta el código no de debe tener sprite o máscara de colisión, para que no se cuente a sí mismo.
1645
Preguntas y respuestas / Re: money draw en un juego 2.5D
Octubre 24, 2014, 07:34:56 PM
Pero aún no entiendo que quieres decir con que está bugueado, ¿es que el texto no se ve? o ¿aparece en una posición incorrecta?
1646
Preguntas y respuestas / Re: money draw en un juego 2.5D
Octubre 24, 2014, 07:15:20 PM
Especifica más, con lo que has escrito es muy difícil saber cual es tu problema.
¿Qué código usas para dibujar?
¿Está activado el modo 3D?
¿Qué código usas para dibujar?
¿Está activado el modo 3D?
1647
Preguntas y respuestas / Re:room persistente
Octubre 21, 2014, 03:58:02 PM
Hola,
antes de reiniciar haces que la room deje de ser persistente:
[gml]room_persistent = false;[/gml]
luego reinicias la room:
[gml]room_restart();[/gml]
y vuelves a hacer que sea persistente:
[gml]room_persistent = true;[/gml]
antes de reiniciar haces que la room deje de ser persistente:
[gml]room_persistent = false;[/gml]
luego reinicias la room:
[gml]room_restart();[/gml]
y vuelves a hacer que sea persistente:
[gml]room_persistent = true;[/gml]
1648
Preguntas y respuestas / Re:Leer varios strings de una misma linea de fichero .txt
Octubre 17, 2014, 09:41:14 PM
Mira encontré éste script llamado "string_extract":
[gml]
/*
** Usage:
** string_extract(str,sep,index)
**
** Arguments:
** str string of elements
** sep character or string seperating the elements
** index element to return, {0..n-1}
**
** Returns:
** the element at the given index within a given string of elements
**
** Example:
** string_extract("cat,dog,mouse",",",1) == "dog"
**
** GMLscripts.com
*/
{
var str,sep,ind,len;
str = argument0;
sep = argument1;
ind = argument2;
len = string_length(sep)-1;
repeat (ind) str = string_delete(str,1,string_pos(sep,str)+len);
str = string_delete(str,string_pos(sep,str),string_length(str));
return str;
}
[/gml]
Primero obtienes una cadena con "file_text_read_string", después la pasas como argumento y extraes la parte que necesitas. Claro que con todo ese procedimiento es mucho más lento que usar solamente "file_text_read_string".
[gml]
/*
** Usage:
** string_extract(str,sep,index)
**
** Arguments:
** str string of elements
** sep character or string seperating the elements
** index element to return, {0..n-1}
**
** Returns:
** the element at the given index within a given string of elements
**
** Example:
** string_extract("cat,dog,mouse",",",1) == "dog"
**
** GMLscripts.com
*/
{
var str,sep,ind,len;
str = argument0;
sep = argument1;
ind = argument2;
len = string_length(sep)-1;
repeat (ind) str = string_delete(str,1,string_pos(sep,str)+len);
str = string_delete(str,string_pos(sep,str),string_length(str));
return str;
}
[/gml]
Primero obtienes una cadena con "file_text_read_string", después la pasas como argumento y extraes la parte que necesitas. Claro que con todo ese procedimiento es mucho más lento que usar solamente "file_text_read_string".
1649
Preguntas y respuestas / Re:como hacer lineas de vision con collision_line?.
Octubre 17, 2014, 09:27:10 PM
Prueba con éste código:
[gml]
//si el puntero está encima de un objeto "unit_red"
if( collision_point(mouse_x,mouse_y,unit_red,false,true) > 0 )
{
//y no hay un bloque en la línea que va del objeto jugador al puntero
if( collision_line(x,y,mouse_x,mouse_y,obBloque,false,true) < 0 )
cursor_sprite = spCursor1; //poner un sprite
else cursor_sprite = spCursor0; //si no, poner el otro sprite
}
else cursor_sprite = spCursor0;
[/gml]
También necesitarás ejecutar ésta línea:
[gml]window_set_cursor( cr_none );[/gml]
[gml]
//si el puntero está encima de un objeto "unit_red"
if( collision_point(mouse_x,mouse_y,unit_red,false,true) > 0 )
{
//y no hay un bloque en la línea que va del objeto jugador al puntero
if( collision_line(x,y,mouse_x,mouse_y,obBloque,false,true) < 0 )
cursor_sprite = spCursor1; //poner un sprite
else cursor_sprite = spCursor0; //si no, poner el otro sprite
}
else cursor_sprite = spCursor0;
[/gml]
También necesitarás ejecutar ésta línea:
[gml]window_set_cursor( cr_none );[/gml]
1650
Preguntas y respuestas / Re:¿Como conseguir arrastrar un objeto? [Solucionado]
Octubre 17, 2014, 09:16:39 PM
Que bueno que encontraste una solución.
Estuve haciendo pruebas y parece que no se puede evitar el lag (por lo menos en windows), para que no se note el lag es mejor poner un cursor con un sprite personalizado (asignar la variable sprite_cursor).
Estuve haciendo pruebas y parece que no se puede evitar el lag (por lo menos en windows), para que no se note el lag es mejor poner un cursor con un sprite personalizado (asignar la variable sprite_cursor).