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

46
Cita de: brunoxzx en Junio 05, 2013, 03:16:16 PM
Mmmmm ¿no sería mejor simplemente usar un solo objeto y hacer que en una alarma a un step se copie la pantalla?. No recuerdo muy bien como funcione esto de los eventos en studio, pero creo que al crear un nuevo objeto el evento create es instantaniamente ejecutado, antes de que se ejecute el evento draw de los demas objetos y por lo tanto no se habria dibujado nada para cuando la pantalla se haya copiado. Ahora no estoy en mi casa así que no tengo gm para probar.
Como lo puse los eventos draw de los objetos deberían ejecutarse antes de que se ejecute el instance_create, así que debería funcionar bien, creo yo.
Pero tenés razón, una alarma de un step podría ser una mejor opción.
47
Podés probar así.
Creá un objeto nuevo y ponele de nombre objCountdown. Ponele una depth muy baja (tiene que tener la depth más baja de todos los objetos del juego) como -9999999, y ponele en draw:
[gml]instance_create(0, 0, objActualCountdown);
instance_destroy();[/gml]

Después en otro objeto nuevo, de nombre objActualCountdown, poné en create:
[gml]sprite_index = sprite_create_from_screen(view_xview, view_yview, view_wview, view_hview, false, false, false, true, 0, 0);
instance_deactivate_all(true);
count = 3;  // Esta es la cantidad de números de la cuenta atrás.
time = 2;  // Esta es la duración en segundos de cada número.

alarm[0] = time * room_speed;[/gml]

En la alarma 0:
[gml]count -= 1;
if (count <= 0) {
    instance_destroy();
}
alarm[0] = time * room_speed;[/gml]

En destroy:
[gml]sprite_delete(sprite_index);
instance_activate_all();[/gml]

Y en draw:
[gml]draw_sprite(sprite_index, 0, view_xview, view_yview);
// Acá abajo podés poner el código que dibuje el número actual de la cuenta, al que podés acceder con la variable count.
// E.g.:
draw_text(view_xview + view_wview / 2, view_yview + view_hview / 2, string(count));[/gml]

Después poné el objeto objCountdown en las rooms que quieras que tengan una cuenta atrás.
No está probado pero debería funcionar.
48
Solo cambiar el sprite no debería causar ese problema, el image_index se mantiene al cambiar el sprite.

Si dibujás el sprite manualmente (o sea si tenés código en el evento draw), puede que lo estés dibujando mal.
Si no puede ser que le hayas asignado algún valor a image_single, o le hayas asignado 0 o un valor muy bajo a image_speed, o estés constantemente asignando image_index en algún evento como step.
49
Preguntas y respuestas / Re:"Rayo" ¿Como hacerlo?
Junio 01, 2013, 03:53:48 AM
Nakatu, no trates de ponerte creativo con el ícono del post. Usá el ícono correspondiente según las reglas: http://www.comunidadgm.org/index.php?topic=18.0
50
Preguntas y respuestas / Re:como hacer esto
Mayo 30, 2013, 07:11:38 PM
Falta cerrar un paréntesis. Te podrías haber dado cuenta vos mismo leyendo el mensaje de error, lorenzo.
51
Todo lo que dice MRafX es correcto, pero me parece raro que notes un "parpadeo" si la velocidad es solo 2. ¿Podés poner el código que usaste, o el editable?
52
Preguntas y respuestas / Re:get_save_filename
Mayo 17, 2013, 08:57:22 PM
Creo recordar haber tenido ese problema en el pasado, y llegar a la conclusión de que no tenía solución :/. Es una limitación del propio GM. Lo que podés hacer es poner un nombre genérico como *.txt.

Y por cierto, los archivos txt son archivos de texto plano, no "bloc de notas" xP.
53
Tratá de no hacer doble post, usá el botón de editar.

No vi el editable. Si es un ejemplo que vino junto con la 39dll debería estar bien.
En este punto lo único que se me ocurre es que antes no funcionaba por el firewall y/o lo del UDP vs TCP, y ahora te cambió la IP privada, ya que no parece que hayas establecido una estática...

Si no es eso... bueno, ya te ayudará Texic :P.
54
El problema debe ser lo que dice Texic.
El firewall de Windows casi seguro que tenés que desactivarlo, y tenés que forwardear el puerto con el protocolo TCP. (Si después decidís usar UDP vas a tener que forwardear el puerto con UDP también, o posiblemente un puerto distinto, pero igual necesitás mínimo un puerto con TCP para iniciar la conexión.)

En fin, si acabás arreglándolo con la ayuda de Texic por teamviewer, posteá acá después cuál era el problema y cómo lo arreglaron, así queda documentado y puede ayudar a otras personas :).
55
Entiendo de qué tipo de juego hablás, pero sigo sin entender qué es lo que querés exactamente.
¿Es esto? http://www.comunidadgm.org/index.php?topic=15276.0

Por cierto, en ese tema puse un ejemplo que a mí me funcionaba correctamente pero a los demás no. Acabo de arreglarlo, ya debería funcinarle bien a todo el mundo. Te lo dejo acá por si es lo que necesitás.
56
a) Cualquier puerto en el rango 49152-65534 debería no tener problemas.
b) No se podrán ejecutar ambas aplicaciones a la vez. Igualmente es difícil que pase, y si pasa es difícil que sea un problema, siempre y cuando elijas un número en el rango que dije antes. Si te preocupa mucho podés hacer que el puerto se pueda configurar por medio de un archivo ini o lo que sea.
c) Sí. También puede que necesites dos puertos, si querés usar UDP. En ese caso tenés que forwardear ambos.
d) Sí a ambas cosas. Y deberías primero elejir una IP local con el último número menor a 100 (y mayor a 1), porque el router seguramente asigna las de 100 para arriba a los dispositivos que no tienen IP fija.
e) Por lo general, sí.
57
Exacto. Tiene otro nombre simplemente porque tu router está en español :P.
Otra cosa importante: aparentemente estás usando las funciones mplay de Game Maker. Están desactualizadas y no funcionan correctamente (excepto con versiones muy viejas de Windows), deberías usar una dll. Podrías probar con la 39dll, que es bastante popular.
58
¿Qué método probaste?
Esto debería funcionar, para la view 0:
[gml]view_wview[0] = display_get_width();
view_hview[0] = display_get_height();
view_wport[0] = display_get_width();
view_hport[0] = display_get_height();[/gml]
59
Si usás la opción que indicó romon_28, los márgenes deberían desaparecer (aunque la imagen se alargaría y podría verse muy estirada).
60
Te aclaro rapidito cómo es el tema.
Cada equipo conectado a la red WAN (es decir, conectado a internet) tiene una IP que lo identifica. Esta IP es la que llaman "global" o "pública", y es la que aparece en http://www.cualesmiip.com/ y demás páginas similares.
Para conectarse a internet se necesita un módem. En tu casa seguramente tenés uno. El problema es que un módem solo puede conectar un dispositivo a la vez. Para conectar varios, por lo general se utiliza un router. Seguramente tenés uno en tu casa también. El router lo que hace es conectarse a internet a través del módem, y así otros dispositivos se pueden conectar al router para acceder a internet. El router toma las peticiones de los dispositivos, se las pasa al modem, y devuelve a cada dispositivo la respuesta adecuada. Para esto el router identifica a cada dispositivo con una IP, que es distinta (y no está relacionada) a la IP global o pública que usa el módem. Esta es la IP "local" o "privada".

Si usás tu IP local, deberías ser capaz de conectarte desde cualquier computadora o dispositivo que esté conectado con tu router. Si eso es lo único que querés, perfecto, no hay nada más que tengas que hacer. (Pero tené en cuenta que la IP local cambia seguido; si te es un problema podés evitarlo simplemente cambiando la configuración de tu PC).
Si querés que cualquier persona se pueda conectar desde cualquier parte del mundo, es un poco más difícil. Aquellos que se quieran conectar tendrán que usar tu IP pública (que también cambia a menudo; si querés evitar ese problema tenés que usar un servico de DNS dinámico, como el proveído por no-ip). El problema es que la IP pública no es la IP de tu computadora, sino de tu router. Los datos llegan a tu router, y tu router no sabe qué hacer con ellos, porque ningún dispositivo los pidió. Para arreglar este problema tenés que realizar el famoso port forwarding. Lo que hacés es básicamente decirle a tu router "todos los datos que lleguen por este puerto, quiero que los envies a este dispositivo". El proceso por lo general involucra configurar una IP privada estática para el dispositivo, y entrar a http://192.168.1.1/ que suele ser la página de configuración del tu router (aunque en tu caso parece que es http://192.168.0.1/).

En fin, básicamente lo que estuvo explicando Mgbu, y algunas otras cosas.