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

61
¿Qué querés decir con "colosión circular perfecta"?
62
Preguntas y respuestas / Re:hacer zoom
Abril 30, 2013, 05:56:05 AM
abramelin, si tenés otra duda creá otro tema.
63
¿Qué código usás para matar al enemigo, y qué tiene que ver con el código que pusiste o con encontrar al enemigo más cercano?
64
Creo que lo que pasa es que esos códigos solo hacen algo cuando la dirección es exactamente 0 o exactamente 90 o exactamente 180 o exactamente 270, y al mover el personaje con el mouse no pasa seguido. Yo haría lo siguiente:
[gml]switch (floor(direction / 45)) {
    case 1:
    case 2:
        sprite_index = sprArriba;
        break;
    case 3:
    case 4:
        sprite_index = sprIzquierda;
        break;
    case 5:
    case 6:
        sprite_index = sprAbajo;
        break;
    case 7:
    case 0:
        sprite_index = sprDerecha;
        break;
}[/gml]

También puede ser lo que dice Klind. wrnr mencionó que usa "step towards", pero no sé si eso modifica la direction o no.
65
Es una capa de compatibilidad, no un emulador. De hecho la misma palabra "Wine" es la sigla: "Wine Is Not an Emulator".

Wine es un programa bastante interesante, pero difícilmente se puede ver como una solución permanente al problema. Los juegos hechos en GM son especialmente problemáticos al tratar de ejecutarlos con Wine. Tal vez no se note con los juegos más sencillos y pequeños, pero los juegos un poco más complejos se ejecutan considerablemente más lento de lo normal y muchas veces con otros problemas molestos (e.g. sin música).
66
carlos81lp, el ícono del post tenés que colocarlo como se muestra en la imagen, no en el cuerpo del mensaje:

Esta vez lo arreglé por vos, la próxima acordate.

Explicá más detalladamente qué intentaste y qué salió mal. GM no crea un .deb, ¿qué tipo de archivo crea, entonces?

Saludos.
67
Preguntas y respuestas / Re:Gestión de Publicidad
Abril 11, 2013, 02:33:03 AM
El código que pusiste parece que trata de expresar el tamaño de los ads en función al tamaño de la pantalla. Si AdMob garantiza que los ads siempre van a tener ese tamaño (tamaño_de_la_pantalla / 960 * 100), ambos deberían funcionar exactamente igual. El problema es que si AdMob crea en algún momento un ad de otro tamaño, la ecuación devolvería un número erróneo y le daría al ad demasiado espacio, o demasiado poco.
ads_get_display_height, por otro lado, devuelve el tamaño del ad directamente, por lo que siempre debería funcionar.
Solo tené en cuenta que el argumento de ads_get_display_height debe ser igual al tercer argumento de ads_enable, e.g.:
[gml]ads_enable(0, display_get_gui_height() - ads_get_display_height(0), 0);
ads_enable(0, display_get_gui_height() - ads_get_display_height(1), 1);
ads_enable(0, display_get_gui_height() - ads_get_display_height(2), 2);
// etc[/gml]
68
Preguntas y respuestas / Re:Gestión de Publicidad
Abril 11, 2013, 12:29:07 AM
Aparentemente la función ads_enable no trabaja con los pixeles del room, sino directamente con el tamaño de la pantalla. Por lo tanto lo que buscás es:
[gml]ads_enable(0, display_get_gui_height() - ads_get_display_height(0), 0);[/gml]
No estoy seguro de que vaya a funcionar, nunca usé GM Studio.
69
Con object_set_visible cambiás la propiedad del objeto. Lo que querés es modificar el valor de la propiedad de las instancias que tenés creadas, simplemente así:
[gml]objOpcionesSonidoOn.visible = global.bSonido;
objOpcionesSonidoOff.visible = !global.bSonido;[/gml]

Por otro lado si los objetos son iguales pero con un sprite distinto, te recomendaría que uses solo un objeto y le cambies el sprite...
En step del propio objeto:
[gml]if (global.bSonido) {
    sprite_index = sprSonidoOn;
} else {
    sprite_index = sprSonidoOff;
}[/gml]

Otra optimización más, si los sprites tienen solo una imagen cada uno, podés ponerlas ambas en un mismo sprite (primero la del sonido desactivado, y después la del sonido activado) y hacer lo siguiente:
[gml]image_single = global.bSonido;[/gml]

Saludos.
70
Disculpame, no puedo dejar mi respuesta a medias :P.

Para evitar que se salga parte del sprite, podés probar con este código en lugar del código anterior:
[gml]x = max(sprite_get_bbox_left(sprite_index), min(room_width - sprite_width + sprite_get_bbox_right(sprite_index), x));
y = max(sprite_get_bbox_top(sprite_index), min(room_height - sprite_height + sprite_get_bbox_bottom(sprite_index), y));[/gml]

El problema acá es que si el sprite cambia a otro de distinto tamaño, el personaje podría moverse de forma no deseada cerca de los bordes (siempre intentando evitar que parte del sprite se salga de la room). Para remediarlo podés ponerle una mask al objeto (si es que no tiene una ya) y usar este código en su lugar:
[gml]x = max(sprite_get_bbox_left(mask_index), min(room_width - sprite_get_width(mask_index) + sprite_get_bbox_right(mask_index), x));
y = max(sprite_get_bbox_top(mask_index), min(room_height - sprite_get_height(mask_index) + sprite_get_bbox_bottom(mask_index), y));[/gml]
Solo tené cuidado con cambiar la mask durante el juego.
71
Yo recomendaría lo siguiente:
[gml]x = max(0, min(room_width, x));
y = max(0, min(room_height, y));[/gml]
Al final de step, o en end step.

Usar -1 y +1 no es una buena idea, porque si el personaje se mueve a más de un pixel por step, el código disminuiría su velocidad al llegar al borde, pero no impediría que siga moviéndose.
xprevious y yprevious son más efectivos pero tienen un pequeño problema. Consideremos un caso en el que el jugador se mueve a 5 pixeles por step, y se encuentra a 4 pixeles del borde. Al moverse contra el borde, si el código usa xprevious y yprevious, lo devuelve a la posición anterior, a 4 pixeles del borde otra vez. El resultado final es que el personaje solo puede acercarse a cierta distancia al borde (que incluso puede ir variando de manera aparentemente aleatoria).
El código que puse arriba no tiene ninguno de esos problemas (y es un poco más rápido, creo yo).

EDIT: Otra alternativa escribir un código que coloque bloques alrededor del room automáticamente. Eso debería funcionar bien.
72
Elivs ese enlace era ilegal. Cuidado con lo que posteás.
73
move_towards_point es para que el objeto se vaya moviendo hasta el destino. Poné esto:
[gml]x = objPersonaje.x;
y = objPersonaje.y;[/gml]
Cambiá objPersonaje por el nombre del objeto personaje.
74
El problema es este:
Cita de: francordoba en Enero 22, 2013, 03:47:18 PMNo hago un objeto con el campo de fuerza porque no sigue a suficiente velocidad al personaje y se desnivela,
¿Qué código probaste para hacer que el objeto siga al personaje? ¿"Se desnivela", cómo exactamente? Probá ponerle al campo de fuerza un depth menor que al personaje.
75
Preguntas y respuestas / Re:Trabajar con SVN
Enero 22, 2013, 06:20:33 PM
Cita de: francordoba en Enero 17, 2013, 01:31:28 PM¿Cual SVN recomendáis?
¿... hay más de uno?

Esta guía parece bastante completa: http://wiki.yoyogames.com/index.php/Source_Control_and_GameMaker:Studio ¿Es eso lo que ya leíste?

Por cierto ¿SVN? Eso es arcáico, ¿por qué GM no tiene soporte para un VCS moderno, como GIT o Mercurial? :/