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

1501
Juegos completos / Re:Flag Capture Platform
Enero 10, 2015, 10:32:45 PM
El juego tiene que mejorar, hay muchas cosas que evitan que sea divertido: al presionar la tecla de salto tarda mucho en reaccionar; la colisión con las plataformas no es muy buena, porque a veces te quedas atorado y sólo es posible moverse en forma horizontal; los controles son incómodos, se deberían poder personalizar; y falta tener una pantalla de ayuda, por si se te olvida cómo están configurados los botones. Saludos.
1502
No se bien lo que quieres hacer, pero entiendo algo así: quieres que el script mueva a la criatura por celdas hasta que encuentre algo que atacar, y que se vayan mostrando las animaciones de todo lo que hace. Eso no se puede hacer en un solo step en GMS, porque el evento Draw tiene que ser ejecutado varias veces. En versiones anteriores si se podía con las funciones sleep y screen_redraw, pero ya son obsoletas.

Como dice 3dgeminis se pueden usar alarmas o ,se me ocurre, que la criatura actúe conforme a un sistema de estados.

Además, en el código hay partes que pueden ocasionar un comportamiento inesperado: el operador <> no marca errores, pero no aparece en la documetación, y no tengo idea de cómo funciona o si es aplicable ahí; la condición if obstaculo = -1 puede que nunca se cumpla, porque la variable obstaculo se asignó con la función collision_point que devuelve el id de una instancia o la constante noone que es igual a -4.
1503
Si el juego tiene baja resolución (pixelart), prueba desactivando la interpolación entre pixeles. Da doble click en "Global Game Settings", que está abajo del arbol de recursos, después elige el "target" en las pestañas de arriba, elige "Graphics" en las pestañas de la izquierda y desmarca la casilla "Interpolate colors between pixels".
1504
Preguntas y respuestas / Re:Límite barra de vida
Enero 10, 2015, 05:06:12 PM
Debes mover estas lineas al principio del código:
[gml]
if global.salud > 100
{global.salud=100};
[/gml]
lo que pasa es que cuando la variable salud se incrementa en exceso se dibuja la barra con exceso, después se ejecutan las líneas que ponen el límite, y la barra con límite se dibuja hasta el siguiente evento Draw, el orden es lo que está afectando, todo lo demás parece estar bien.
1505
Para hacer animaciones en 3D he estado probando con este programa: http://sandbox.yoyogames.com/games/120956-3d-animator
1506
Preguntas y respuestas / Re:Mil dudas con collision
Enero 03, 2015, 11:55:24 PM
Estas son las funciones que devuelven el id de la instancia con la que se colisiona:

  • collision_circle
  • collision_ellipse
  • collision_line
  • collision_point
  • collision_rectangle
  • instance_place
  • instance_position

Usa collision_point para obtener el id de cualquier instancia, o usa instance_position para obtener el id de instancias de un sólo tipo de objeto; esas son las funciones más rápidas porque sólo revisan un punto.
1507
Lo más sencillo es que cada instancia dibuje sus variables, con un código como éste en el evento Draw:
[gml]
draw_self(); // esta función es necesaria para que se dibuje el personaje
draw_text( x,y, string(variable1) );  // dibujar variables
draw_text( x,y+16, string(variable2) );
[/gml]
para dibujar un valor numérico, antes se debe obtener una "cadena" de ese número con la función "string".

Si el texto se dibuja con otro objeto, usa la construcción "with":
[gml]
with( obj )
{
    draw_text( x,y, string(variable1) );  // dibujar variables
    draw_text( x,y+16, string(variable2) );
}
[/gml]
ése código se ejecutará para cada instancia de obj.

"instance_id" es un array que contiene los id's de todas las instancias activas en la room, la variable que identifica a una instancia es id.
1509
Preguntas y respuestas / Re:Montañas top down
Enero 01, 2015, 06:23:23 PM
Creo que esas caras son porque el primer mensaje es difícil de entender, yo no entendía a lo que te referías.
En el juego, para dar la sensación de profundidad puedes crear los escenarios con efecto parallax y crear tiles para el terreno con diferentes formas de sombreado, para que parezca que tiene diferentes inclinaciones. Para poner gran cantidad de detalles, yo lo haría en verdadero 3D, usando terreno generado con mapas de alturas, los objetos podrían ser modelos tridimensionales, pero para simplificar, se podrían usar srpites planos con diferentes altitudes.
1510
No es una función, es una palabra clave que se usa en la construcción if. Indica lo que se va a ejecutar cuando la condición es verdadera. No es indispensable usarla, se puede suprimir y no afecta en nada, sólo hace que el código se lea como un lenguaje más humano. Ejemplo:
[gml]
if( /*condición*/ ) //si condición...
then // entonces...
{ /*ejecutar un código*/ }
else //si no...
{ /*ejecutar otro código*/ }
[/gml]
1513
Aquí se hizo una explicación de un código para hacer algo parecido:
http://www.comunidadgm.org/general/podcast-game-maker-capitulo-1-(nuevo!!)/
Esto de lo que más se pregunta en el foro, escribe "distancia" en el buscador y vas a encontrar muchos temas relacionados.
1514
Existen dos métodos; uno es usar este código
[gml]window_set_cursor( cr_none );[/gml]
el otro es abrir el menú Recursos --> Change Global Game Settings --> pestaña Windows --> y desmarcar la casilla Display the cursor.
1515
Preguntas y respuestas / Re:Perform events
Diciembre 29, 2014, 03:15:23 PM
Puedes usar un script que defina sólo las variables que se necesitan, que tenga como argumento el id de la nueva instancia creada.