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

736
Justo antes de guardar, activa una variable que indique que la música se debe reiniciar en el siguiente step, por ejemplo:
[gml]
global.reiniciar_musica = true;
[/gml]
En el evento Step del objeto música, revisa la variable y ejecuta el código del evento Room Start si es necesario:
[gml]
if( global.reiniciar_musica )
{
   event_perform( ev_other, ev_room_start );
   global.reiniciar_musica = false;
}
[/gml]
737
Se me ocurre esto: utiliza with, point_distance y ds_lists para crear una lista con las instancias más cercanas, ordenadas por su distancia, después, para cada instancia en la lista asigna una alarma y en la alarma cambia la imagen.
739
Adjunto un ejemplo. Para no usar tile_layer_find constantemente la posicion de las tiles se guarda en un array. El código quedó un poco complicado porque quería un comportamiento muy específico del jugador (la posicion de descanso siempre debe estar alineada a una rejilla y debe poder entrar en huecos pequeño cuando se mueve verticalmente a alta velocidad), pero se puede hacer mucho más sencillo.
740
Primero deberías diseñar un sistema de colisiones del mundo visto desde arriba, y después agregar el movmiento en el eje z.
El diseño de los escenarios se podría hacer en dos partes, en un lugar agregas la información sobre la altura del terreno y la posición de los objetos y en otro lugar agregas los gráficos. Todo se movería en una cuadrícula 2D y las coordenadas se transforman para dibujar los gráficos en la posición correcta, de acuerdo al estilo de proyección de los escenarios. Me gustaría hacer un ejemplo, pero tengo poco tiempo, espero terminar pronto con el trabajo.
742
Puedes usar un código como este
[gml]
//guardar id del muro que esta arriba
muro =  collision_line( x,y, x,y-150, obj_muro, false,true );

//si se presiona W y hay muro arriba
if( keyboard_check_pressed(ord('W')) and muro<>noone )
{
    distancia = (sprite_get_height(mask_index) + sprite_get_height(muro.mask_index))/2;
    y = muro.y - distancia; //mover personaje
}
[/gml]
Observa que la distancia se calcula sumando la mitad de la las alturas de las máscaras de colisión, eso depende de cómo estén configurados tus sprites. Si todos los muros tienen el mismo tamaño no sería necesario estar recalculando la distancia todo el tiempo.

Para no usar collision_line constantemente, el código se puede modificar así
[gml]
if keyboard_check_pressed(ord('W')) //si se presiona W
{
    //guardar id del muro que esta arriba
    muro =  collision_line( x,y, x,y-150, obj_muro, false,true );
    if( muro <> noone )
    {
        distancia = (sprite_get_height(mask_index) + sprite_get_height(muro.mask_index))/2;
        y = muro.y - distancia; //mover personaje
    }
}
[/gml]
743
Preguntas y respuestas / Re:Juegos para VR
Mayo 25, 2016, 09:07:00 PM
Puedes usar 2 views con el mismo tamaño pero con diferente xport. Busca tutoriales de pantalla dividida.
744
Es para que el teléfono vibre.
745
Buen juego, pero me pareció demasiado difícil.
Sería mejor si la velocidad horizontal fuera menor.

Encontré 3 bugs:
No pude entrar a la puerta grande, presioné W y ARRIBA, y ninguna funcionó.
Al bajar por una plataforma atravesable, mientras el personaje está tocando un bloque sólido, hace que se atasque.
Es difícil hacer doble salto estando sobre una plataforma que se mueve hacia abajo, parece que el personaje se despega durante un frame.
746
Puede ser una simple relación lineal entre distancia y velocidad
[gml]
//velocidad
vel = point_distance( x,y, obMeta.x,obMeta.y );
if( vel > 20  ) vel = 20;
if( vel < 0.5 ) vel = 0.5;

//direccion
dir = point_direction( x,y, obMeta.x,obMeta.y );

x += lengthdir_x( vel, dir );
y += lengthdir_y( vel, dir );
[/gml]

O puede tener transiciones más elaboradas:
http://easings.net/es
747
Preguntas y respuestas / Re:Error apk
Mayo 21, 2016, 05:04:01 PM
Las virtual keys se deben definir con coordenadas relativas al tamaño de la pantalla (usa display_get_width y display_get_height), y para que quede más perfecto se podría tomar en cuenta la densidad de pixeles (display_get_dpi_*), pero eso ya es mucho trabajo.

El error de gráficos extraños puede ser por la memoria caché corrupta, límpiala usando el icono de brocha, que está junto al icono para correr el juego.

Para saber qué sucede con el otro error, deberías mostrar el mensaje que aparece.
748
Se podría hacer copiando un modelo 3D, real o digital. Primero copiando los contornos (line art), después rellenando con los colores base, y al último agregando luces y sombras.
749
Aquí mencionan que es un problema Build-tools 24:
https://code.google.com/p/android/issues/detail?id=202972
prueba desinstalando el paquete
En este post llegaron a la misma conclusión:
http://webcache.googleusercontent.com/search?q=cache:a7EX7ZAUkFMJ:www.comunidadgm.org/preguntas-y-respuestas/error-al-exportar-a-apk-aidl-exe


Aquí el error se debía a que "Package name" era incorrecto
https://www.reddit.com/r/gamemaker/comments/23apon/when_creating_an_android_executable_the_same/
(en Global Game Settings » Android » General)
750
Si quieres chatear únete a Slack. Sólo envía una dirección de email a NiuWeb, a Jucarave o a mí.