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

391
Preguntas y respuestas / Re: DUDAS CON EL TECLADO
Noviembre 21, 2009, 12:05:52 AM
La funci?n keyboard_clear(tecla) lo que hace es ignorar por un instante el evento de la tecla presionada, hasta que ?sta se vuelva a "repetir", es decir, se mantenga presionada. No es que deje de generar eventos hasta que se suelte y se vuelva a presionar. Es lo que ocurre cuando dejas presionada una tecla en un editor de texto: el editor coloca una sola letra correspondiente a la tecla que presionaste, y luego de un instante, si la mantuviste presionada, comienza a repetir la letra indefinidamente; eso es lo que simula la funci?n keyboard_clear(tecla). La funci?n io_clear() hace lo mismo, pero con todas las teclas, como bien dices.

Sobre io_handle(), soy tan ignorante como t?. Quiz? alguien m?s pueda ayudarnos.

Dejo un ejemplo en GM6 que muestra sonoramente a lo que me refiero. En ?l, puedes ver el efecto de colocar o no colocar io_clear() en el evento de presi?n de una tecla.

392
No me qued? clara la relaci?n entre este asunto y las matrices. ?Podr?as explicar un poquito qu? tienes en mente? Yo tambi?n tengo personajes articulados en varios juegos pero no veo por d?nde una matriz podr?a ser ?til... No conozco los m?todos de matrices de rotaci?n en 3D, quiz? a eso te refer?as. Y quiz? con esto yo tambi?n pueda aprender algo para aplicar en mis personajes rotulados. Actualmente hago estos personajes calculando punto por punto las coordenadas de cada parte y su giro mediante trigonometr?a, pero puede haber una mejor forma.

393
Preguntas y respuestas / Re: Error en Colision
Noviembre 19, 2009, 01:23:46 AM
?Pero d?nde haces la operaci?n de subida? Me refiero a algo como:

y-=4;

o como sea que el personaje suba.
394
Preguntas y respuestas / Re: Error en Colision
Noviembre 19, 2009, 01:10:59 AM
La sintaxis es correcta. Sin embargo, creo que ser?a mejor colocar el c?digo en el evento key_press y dentro de ?ste revisar si existe la colisi?n con la liana (es m?s costoso revisar una colisi?n que la presi?n de una tecla). Sobre lo otro, todo depende de lo que hagas con la variable escalar. ?C?mo la usas?
395
Preguntas y respuestas / Re: Deshabilitar teclado
Noviembre 19, 2009, 01:06:05 AM
Despu?s de leer tu pregunta, me qued? dando vueltas la siguiente inquietud: ?c?mo hace la "computadora" para presionar las teclas? ?Usas event_perform y llamas a los eventos de teclas? ?Y c?mo sabe el juego que debe reconocer s?lo aquellos eventos que genera la computadora durante el turno de ?sta y no los de las teclas presionadas? ?Los movimientos de la computadora son instant?neos o dejan tiempo al jugador para presionar teclas?

396
Preguntas y respuestas / Re: Error en Colision
Noviembre 19, 2009, 12:42:50 AM
La situaci?n que propones, tal como la planteas, es imposible. Toda instancia, por el hecho de existir, tiene un cierto grupo de variables, entre ellas la variable y.

La ?nica explicaci?n posible me parece ser que desde el momento en que ocurre la colisi?n y el momento en que revisas la expresi?n que causa el error algo ocurri? que desactiv? o destruy? la otra instancia y en consecuencia su variable y deja de existir. ?Tienes alg?n c?digo para el evento rec?proco, es decir, la colisi?n con objeto_Yoshi del objeto objeto_consejos?

Aseg?rate de que existe la instancia asociada a other antes de evaluar su variable y. Por ejemplo, para probar, luego de colocar en cero la variable global.escalar agrega un mensaje que indique el valor de la coordenada y de other:

show_message("other.y="+string((other.id).y);
397
Bueno, primero gracias por las respuestas. No voy a cambiar al modo 3D para esto, ser?a desastroso si part? trabajando en 2D. No puedo probarlo en GM7 pero sospecho que deber?a ocurrir lo mismo a menos que se haya corregido este bug (porque eso es). No es una variaci?n de frames, ?stos permanecen iguales. Tampoco puedo darme el lujo de tener 2 im?genes de lo mismo. Sin embargo, logr? solucionar el problema y me acabo de encontrar con que Killer tambi?n dio en el clavo: sumar 360 al ?ngulo cuando se acerque a cero. Como sospechaba, ocurre por un asunto de redondeo del ?ngulo a cero cuando se acerca a dicho valor; no ocurre ni con 90, 180, 270, 360 ni ning?n otro ?ngulo, s?lo con cero. Seguramente es porque don Mark Overmars pens? que cuando le damos un ?ngulo peque?ito queremos decir que el sprite est? "derecho" y lo asume como cero. Como me pasa con ?ngulos cuyo m?dulo es menor a 1?, voy a sumarle 360? si baja de este valor.
398
Bueno, resulta que dentro del programa que estoy preparando necesito girar un sprite mediante la manipulaci?n de la variable image_angle. Este sprite tiene su origen fuera de s? mismo, m?s abajo, y necesito rotarlo en incrementos muy peque?os, del orden de 0.2 grados por step. El problema es que cuando me acerco al valor cero, el giro se detiene moment?neamente y luego da un salto hasta el nuevo ?ngulo (todo esto ocurre gr?ficamente, porque el valor de image_angle s? cambia suavemente). Me parece que es porque el GM aproxima los ?ngulos con valor absoluto menores a 0.5 a 0, produci?ndose este desagradable efecto. Dejo un editable hecho en  :GM6: donde se aprecia el problema.

?Alguien tiene una idea de c?mo corregir este efecto visual?
399
Preguntas y respuestas / Re: collision_rectangle, solido?
Noviembre 10, 2009, 01:33:32 AM
Lo "s?lido" no se refiere a que es tratado como una instancia s?lida, en el sentido de que la instancia que colisiona con ella retrocede a su posici?n anterior. Se refiere a que la colisi?n con el rect?ngulo considera todos los puntos interiores a ?ste y no s?lo el borde del rect?ngulo.

Respecto al error, mi consejo es que trates de evitar el uso de instancias s?lidas a menos que ?stas nunca deban ser traspasadas.
400
Preguntas y respuestas / Re: duda con instance_nearest
Noviembre 05, 2009, 05:15:41 AM
Primera duda: no necesariamente. Si la declaras (mediante var), el alcance de la variable ser? s?lo dentro de esa pieza de c?digo (y as? ahorras memoria), mientras que si no la declaras, permanecer? como parte de la instancia hasta que ?sta sea destruida.

Para cambiar una variable puedes usar sin problemas la id guardada en la variable cercaobjeto, tal como dices. El par?ntesis ser?a redundante en este caso ya que no hay confusi?n posible. Otra cosa ser?a si quieres leer una variable del "enemigo" de cercaobjeto, donde enemigo es la id del enemigo que guarda la variable. Ser?a as?:

(cercaobjeto.enemigo).variable

Los c?digos que has colocado son correctos, no veo por qu? no habr?a de funcionar, a menos que el problema est? en otro lado.
401
Desarrollo de Scripts / Re: Dibujar poligono regular
Noviembre 05, 2009, 12:33:24 AM
Buen script, tiene la gracia de usar la versi?n lite de GM; tambi?n hab?a creado un script que dibuja pol?gonos regulares y sectores circulares (http://www.comunidadgm.org/index.php?topic=9364.msg43353#msg43353), pero como usa primitivas s?lo aplica para la versi?n registrada.
402
Con todo respeto, romon_28, me anim? a comentar tu soluci?n por lo disparatada que me parece: partiendo por lo innecesariamente complicado del m?todo (ver la instancia m?s cercana y luego desactivarla...), luego porque buscas variables con valor 0 en vez de 6 y no inicializas la variable Cuenta, y finalmente porque s?lo vuelves a activar la ?ltima instancia que desactivaste en vez de todas (y ni hablar de las faltas de ortograf?a y errores en los nombres de las funciones, por ejemplo "instance_active"...)
403
No existe una funci?n "nativa" para eso, es demasiado espec?fico. Pero puedes crear un script y usar una variable temporal para contarlos si es que no quieres usar "OTRA" variable (si entend? bien). Por ejemplo:

var cuenta;
cuenta=0;
with argument0
    {
    if idd==6
        cuenta+=1;
    }
return cuenta;


donde argument0 es el objeto que te interesa.
404
?Qu? interesante idea, Killer, no se me hab?a ocurrido! Es un m?todo muy ingenioso para mantener variables temporales que no pertenezcan a ninguna instancia y evitar el uso de globales. Creo que voy a comenzar a utilizarlo.

8)
405
Eso es totalmente cierto, Raul_Omega. De hecho, para una igualdad absoluta en la competencia las naves deber?an partir en el mismo punto, ya que si parten en puntos diferentes, aunque sean siempre los mismos, ?qui?n decidi? cu?l nave parte en cada uno? Podemos ponernos todo lo quisquillosos que queramos al respecto. Lo que comentas sobre resultados diferentes en las pruebas que hiciste me parece un asunto bastante delicado, prueba de c?mo la aleatoriedad de la ubicaci?n inicial puede modificar los resultados (y ni hablar de cuando las propias IA toman decisiones aleatorias, como suger? antes). Podr?amos eliminar el problema si intentamos dotar a nuestras IA de simetr?a (es decir, que por ejemplo los movimientos no var?en con las coordenadas x,y sino con la distancia al centro, la cual es id?ntica para ambas naves al comienzo) y prohibir el uso de n?meros aleatorios en las IA; en la anterior GIA, tuvimos la "suerte" de que las IA eran deterministas y todos los personajes part?an en el mismo lugar, por lo que fue posible obtener siempre los mismos resultados en cada ensayo y as? lo demuestra el ejecutable de cada ronda. Esta fue definida como una competencia de IAs y gana la m?s eficiente y efectiva, no la que muestra comportamientos m?s realistas. Por lo tanto, en mi opini?n, no debe haber espacio para la aleatoriedad ya que tendr?amos que hacer infinitas pruebas para saber cu?l es la mejor IA a la larga. Tambi?n existe la posibilidad de, por ejemplo, confiar en KrakenHimoto y dejar que ?l haga las pruebas y cree un registro de ellas (como un video, por ejemplo) donde se muestre el ensayo definitivo. Como sea, creo que este tema debiera ser analizado a fondo para no encontrarnos con sorpresas m?s adelante.