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

301
Preguntas y respuestas / Re:Como sumar variables
Agosto 17, 2014, 09:28:32 PM
variable1+=variable2;

¿O es una pregunta capciosa?
302
Preguntas y respuestas / Re:Ayuda con variables
Agosto 17, 2014, 02:59:03 AM
variable1=variable2;


¿o es una pregunta capciosa?
303
Cita de: penumbra en Agosto 16, 2014, 02:30:28 AM
2. Hay que entender la diferencia entre objeto e instancia. with (obj_suelo) no es una alternativa correcta en este caso, porque lo que se busca es destruír bloques individuales (una instancia solamente) y la forma with(obj_suelo) aplica a TODAS las instancias existentes del objeto suelo. Yo lo haría así

[STEP][gml]
abajo = keyboard_check(vk_down)
c_suelo = place_free(x, y+1)[/gml]

[EV. COLISION JUGADOR - SUELO][gml]
if (abajo) and (!c_suelo)
{
     with(other)
          instance_destroy()         //Esto destruye únicamente la instancia suelo contra la que se colisiona
}
[/gml]

Me parece excelente que recalques la importancia de hacer la diferencia entre instancia y objeto, muchos errores surgen por la no comprensión de este asunto primordial.

Respecto al tema, no sabemos cómo es que el jugador se mueve y cuándo colisiona con el suelo. Por eso me parece que el evento importante aquí es el de la tecla vk_down: ahí es cuando hay que revisar si hay un bloque de suelo abajo.

Evento key press vk_down del personaje:

var s;
while place_meeting(x,y+1,obj_suelo1)
    {
    s=instance_place(x,y+1,obj_suelo1);
    with s
        instance_destroy();
    }


304
Cita de: Clamud en Agosto 13, 2014, 03:42:37 PM
Muy buen ejemplo Guacusio... por casualidad ¿has hecho algún programa para hacer animaciones en 3D?

En 3D con suerte logré hacer una vez un laberinto y me quedó horrible... no es lo mío. No me pidas tanto, ya con 2D tengo suficiente   :-[

De hecho, fue por eso que se me ocurrió inventar un sistema de sprites articulados y animarlos: quería lograr animaciones fluidas minimizando el uso de sprites; no le agarraba el asunto al 3D para hacer animaciones y soy un cero a la izquierda para dibujar sprites animados. Conocimientos de modelación 3D no tengo en absoluto, seguro hay varios programas por ahí que sirven para crear modelos y animaciones 3D compatibles con GM.

Por cierto, tengo entendido que la futura versión de GM:S permitirá crear animaciones 2D con esqueletos mediante el SDK spine, que viene siendo algo más o menos parecido a esto.
305
Cita de: luckylandia007 en Agosto 13, 2014, 08:35:32 PM
Guacusio gracias de antemano!!! Aun no vi los archivos porque estoy en el trabajo, pero en caso que me sirva me darias el permiso para usarlo en mi juego?? Muchas gracias de nuevooo  :D

No hay problema, esa era la idea. Te adjunto además el editable del ejemplo y su modelo que puede ser cargado en EMA.exe (primero abre con el bloc de notas el archivo .gmm y edita las rutas de acceso a los sprites (D:\sprites) ya que son absolutas y dependen de la configuración del árbol de directorios).
306
Perdóneme don Johann, no me percaté de que faltaba el ícono.
307
Puede que los archivos que te adjunto te sirvan de guía, es como lo hice yo para varios juegos donde quería lograr lo mismo que tú.
308
Descompone el vector gravedad vertical en su componente normal y paralela a la rampa y usa como gravedad sólo la parte paralela a la rampa. En otras palabras:

gravity_direction=192;//12+180
gravity=g*sin(degtorad(12));//módulo del vector gravedad, donde g es la gravedad vertical

309
Es raro empezar un timeline en el evento step, pero si lo queres hacer, se puede hacer así:

En el evento step, verifica que no haya una ejecutándose:

if !timeline_running
    {
    timeline_index=tu timeline;
    timeline_position = 0;
    timeline_running = true;
    }


Eso hará que la timeline sólo se ejecute si no se estaba ya ejecutando una timeline.
310
Al llegar al punto de la timeline que asigna la path, detén la timeline y asigna la path. Luego usa el evento end of path para detectar cuándo termina el path y entonces reactiva la timeline en la posición donde te interesa continuar.

También puedes detectar cuándo termina el path revisando el valor de la variable path_position en otro evento: si vale 1, la instancia está al final del path.
311
Tendrías que probar. Lo que te sugerí requiere de cálculos trigonométricos de cierta complejidad para proyectar las coordenadas rotadas, pero si puedes crear un fondo con el ángulo que deseas, mejor... aunque ¿cómo lo harías para que una instancia 2D desaparezca al moverse tras un edificio del fondo, por ejemplo?
312
GM:S es una revisión mayor de la serie GM y va mucho más allá del color de la interfaz, deberías leer el manual de GM:S para ver los numerosos cambios que trae, entre los cuales están:

-El código deja de ser interpretado y pasa a ser compilado, haciendo su ejecución mucho más rápida (yo lo he notado claramente)
-Muchas funciones de la versión 8 dejan de existir por quedar obsoletas o ser incompatibles con un código compilado
-Permite programar para múltiples plataformas, no sólo para windows (dependiendo de la versión de GM:S)
-Trae soporte para sonidos en .ogg y .mp3
-Trae un motor físico
-Tiene un debugger mucho más completo
-etc.

Dado que la versión standard de GM:S pasó a ser gratuita y puede hacer lo mismo y más que GM 8, mi consejo es: cámbiate a GM:S.
313
Preguntas y respuestas / Re:Paso por referencia
Agosto 11, 2014, 02:45:49 AM
No se puede, pero me cuesta imaginar un caso en que se necesite hacer eso, considerando que en GML puedes manipular la variable que quieras directamente. Con tu mismo ejemplo, para manipular la variable x de una instancia se puede entregar como argumento a un script la id de la instancia y con ello manipular su coordenada x directamente. Por ejemplo, un script para mantener centrada una instancia en el view:

en evento step:
scr_centrar(id);

script scr_centrar:
//centra la instancia argument0 en el view
argument0.x=view_xview[0]+view_wview[0]/2;
argument0.y=view_yview[0]+view_hview[0]/2;


314
Hay algunas cosas no aclaradas:

-menu_options es un array, ¿por qué en las sentencias draw lo usas sin indicar el subíndice?

-Estás dibujando varios textos, ¿todos tienen el tamaño de letras cambiados?

-¿usas algún font?
315
Preguntas y respuestas / Re:Paso por referencia
Agosto 10, 2014, 10:08:12 PM
GML no permite el uso de punteros a variables. Si explicas un poco más el asunto podemos ver una manera de hacer lo que necesitas más eficientemente.