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

1876
Una variable es suficiente, la variable contendría el nombre de la última habitación en la que se estuvo, excluyendo la habitación de pausa.

Inicias la variable en CREATE con el nombre de tu primer habitación
ultima_habitación = l1

en el evento ROOM START
if ultima_habitación != room_pausa
     ultima_habitación = room            //Si no se está en la habitación de pausa, guardar el nombre de la habitación actual

Cada que entres a una habitación que no sea la de pausa, la variable se actualizaría con el nombre de esa habitación.
1877
Preguntas y respuestas / Re:QUE ES PHYSICS
Febrero 24, 2014, 11:20:09 PM
No es obligatorio usarlo, sobre todo, si eres nuevo en GM, sería mejor comenzar con otras cosas y olvidarte de Physics

¿Qué es? Es una librería de funciones funciones para controlar el movimiento de los objetos e interacciones entre ellos.

GM:S incluye un tutorial de Physics, por ahi deberías empezar si quieres aprender a usarlas. Si usas Physics para mover objetos, no puedes usar las funciones tradicionales de GM. O usas Physics para todo, o usas los métodos tradicionales.
1878
Cita de: Jangse en Febrero 24, 2014, 09:35:50 PM
No, si no hay mas código que ese. Un simple instance_destroy() de la puerta. De todas formas, según mi código, primero muevo el personaje. Porque esta primero que el instance_destroy().

Ahí está el detalle. Cuando mueves al personaje, la puerta se destruye, todo en el mismo STEP (En términos prácticos, si tu velocidad de habitación es de 30, mover al personaje, abrir la puerta y destruir la puerta ocurre en 3 centésimas de segundo).

Yo usaría un objeto puerta, con dos subimágenes. Una de la puerta cerrada y otra de la puerta abierta. Cuando ya no hubiera enemigos, cambiaría la subimagen a la de la puerta abierta y arrancaría una alarma a 1 o dos segundos. En el evento de la alarma pondría instance_destroy(). Así daría tiempo de ver que la puerta está abierta y después de unos segundos de mostrar la imagen de la puerta abierta, la instancia se destuiría.
1879
Preguntas y respuestas / Re:"Animar" el image_angle?
Febrero 24, 2014, 09:20:32 PM
Es casi lo mismo, sólo agregas un signo al código que ya tienes

image_angle += 10;


Aunque dependiendo de la velocidad de la habitación, a lo mejor 10 es un número muy alto, y la animación iría demasiado rápido.
1880
Nunca he usado sleep, pero no creo que funcione como intentas. No hay manera de que el sleep sepa que quieres "detener" solamente la apertura de la puerta. el sleep detiene TODO el juego, o eso creo, no importa dese qué instancia lo llames.

Lo que debes hacer es mover al personaje primero, y luego hacer que la puerta se abra, cosa que sucede al revés. Por ejemplo, ya sé que es un bloque y que todo se ejecuta cuando la condición se cumple, pero siendo estrictos, ahí estás reproduciendo el sonido de la puerta antes de mover al jugador, y sería más lógico mover al jugador y hasta después abrir la puerta y reproducir el sonido. Ayudaría que pusieras el código con el que se abre la puerta y mencionaras exactamente en qué momento lo llamas.
1881
Cita de: 7sixerCF en Febrero 24, 2014, 05:00:50 PM
No me quedo muy claro esta parte:

CitarEl inicio del evento step es ejecutado al inicio de cada paso, antes de que ocurra cualquier otro evento

¿En que se diferencia con el evento create?

En que CREATE no es un evento que se ejecute en cada paso, sino que se ejecuta una vez, al crear la instancia.

CitarEste evento ocurre cuando una instancia del objeto se crea, y es lo primero que sucede dentro de una instancia colocada en la habitación mediante el editor de habitaciones cuando se entra a una habitación. Esto significa que este evento es el lugar ideal para iniciar variables, comenzar lineas de tiempo, definir paths,... y en egenral, hacer cualquier cosa que sólo necesite ser realizada  una vez o sólamente cuando una instancia aparece en la habitación.
]
1882
Cita de: 7sixerCF en Febrero 24, 2014, 12:52:06 AM
begin step (primer paso) primer paso antes de que?
Antes del evento Step.

Cita de: 7sixerCF en Febrero 24, 2014, 02:57:51 AM
vale ambos estábamos equivocados pero nadie sabe cuando ocurre end step y begin step u.u


¿Por qué tanto desprecio al manual? Pareciera que es pecado consultarlo. Aunque no lo crean, ahí viene cuando ocurre begin y end step  :-X

Citar
El evento step sucede a cada paso/frame del juego. Aquí puedes colocar acciones que requieren ejecutarse continuamente.  Para ser más preciso, hay tres diferentes eventos step. Normalmente solo necesitas el evento por defecto. Pero usando el menú puedes también seleccionar el inicio y el final del evento step. El inicio del evento step es ejecutado al inicio de cada paso, antes de que ocurra cualquier otro evento. El evento step normal es ejecutado justo antes de que se coloquen las instancias en sus nuevas posiciones. El final del evento step se ejecuta al final de cada paso, justo antes de que se dibuje la escena.

Orden de eventos:
http://docs.yoyogames.com/source/dadiospice/000_using%20gamemaker/events/index.html

Y dejo esto que puede aclarar mejor begin y end step
Object1 - Begin Step
  Object2 - Begin Step
  Object1 - Alarm 0
  Object2 - Alarm 0
  Object1 - keyboard and mouse
  Object2 - keyboard and mouse
  Object1 - Keyboard and mouse press
  Object2 - Keyboard and mouse press
  Object1 - Keyboard and mouse release
  Object2 - Keyboard and mouse release
  Object1 - Step
  Object2 - Step
  Object1 - End Of Path
  Object2 - End Of Path
  Object1 - Outside room
  Object2 - Outside room
  Object1 - Intersect Boundary
  Object2 - Intersect Boundary
  Collision events*
  Object1 - End Step
  Object2 - End Step
  Object1 - Draw
  Object2 - Draw
  Object1 - Animation End**
  Object2 - Animation End**

Begin y end step se pueden usar para ser más específicos de qué acciones ocurren en qué momento. Pero se puede programar un juego completo sin usarlos. Claro que tambien sirven para organizar mejor el código, si es que eres de los que te gusta "dispersar" el código.
1883
Preguntas y respuestas / Re:Duda con choose();
Febrero 23, 2014, 09:01:26 PM
Cita de: DarkKRuleR en Febrero 23, 2014, 08:31:15 PM
si alguien ve que me he equivocado en algo que diga :)

Según el makero ordo_ab_chao, el problema es que las elecciones siempre se repiten, es decir, se elige siempre lo mismo. Si no me equivoco, aunque modifique el porcentaje de probabilidad como le has sugerido. seguirán repitiéndose las mismas elecciones.

if (global.GameMode=="PvsC" and select1_obj.elegir==0 and ele==1)
{
    ele=0;
    randomize()   //<--------   prueba con esta función.
    fila=choose(0,1,2,3);
    if (fila<2) columna=choose(0,1);
    else columna=choose(0,1,2,3,4);   
}

1884
Cita de: DarkKRuleR en Febrero 23, 2014, 08:24:44 PM
Si me bajo el studio standard, podría importar mi juego de gm8, usar funciones como image_angle y modo 3D y todo igual a GM8?

Existe la posibilidad de que puedas importarlo sin problemas a GM:S. También existe la posibilidad de que en tu juego actual uses una o más funciones obsoletas, lo que provocaría más o menos trabajo de adaptar el juego a GM:S, dependiendo de qué tantas funciones obsoletas hayas usado.

YoYo recomienda TERMINAR los juegos hechos en GM8, ya que cada vez agregan otras funciones que no tiene GM8 (o quitan funciones de GM8  XD)

Las diferencias a favor que he notado sobre GM8:

Shaders (efectos que solo eran fantasía o costaban mucho en GM8)
Más funciones que antes no había en GM8 (son muchas, necesitarías ver el manual)
Un debuger más poderoso que el de GM8
Sistema de sonido que soporta ogg .
Sistema de físicas integrado
Posibilidad de usar sprites en formato vectorial
Nuevos eventos como Draw GUI y otros eventos DRAW nuevos.
Se rumora que los scripts corren más rápido, no sé si sea cierto
También se dice que es más rápido que GM8

Contras:
Quitaron funciones que muchos usuarios viejos adoraban, por ejemplo, no hay manera de poner un video en el juego
A muchos usuarios les choca que corra en modo sandboxed, es decir, ya no se permite guardar ni escribir datos en cualquier lugar como en GM8, ni se puede llamar a ejecutables como en GM8
Quitaron ciertas capacidades en las partículas, como la posibilidad de usar atractores, destructores, deflectores.
Hay más, pero de momento no las recuerdo  XD

Con todo y todo, yo te recomendaría que cambiaras a GM:S. Se ve que YoYo le va añadiendo más capacidades. Tal vez de momento no sea así, pero es posible que con el tiempo notes que haya cosas que no puedas hacer en GM8 y que los usuarios de GM:S hacen de manera fácil.
1885
Pero fíjate que por ejemplo, que la física se va al @!$ en los juegos de plataforma.

Todos los personajes de juegos de plataforma saltan distancias que están más allá del potencial humano. Mario Bross a duras penas podriá aplastar una tortuga, pero nunca llegar de pie hasta el tubo más corto del juego. En las plataformas, cualquier "personajete" logra saltar su estatura y aun mucho más, cosa que no pasa en la realidad.

Sería raro simular una gravedad "real" cuando el personaje puede saltar dos metros sin sudar.
1886
Pues no, no se puede hacer que funcionen igual. Una cosa es sleep y otra cosa es instance_deactivate.

Las instancias van a desaparecer. El truco que se hace en estos casos es tomar una captura de la pantalla del juego ( sprite_create_from_screen, background_create_from_screen ) antes de desactivar las instancias, y luego mostrar esa imagen al momento de la "pausa".

La otra opción aun más penosa y tardada sería crear tu sistema manual de pausa, en donde cada instancia debe estar programada para reaccionar o quedarse quieta en pantalla según la pausa esté activa o no.
1887
Significa que ese día dejan de ofrecer de manera gratuita la licencia y vuelven al esquema de pago. Si esto lo hicieron en Diciembre y ahora en febrero, me imagino que la competencia con Construct o Multimedia Fusion es fuerte.
1888
No quieras complicar las cosas. No hay ninguna fórmula de la gravedad en el GM "NORMAL". eso que se llama gravedad en game maker es símplemente un vector etiquetado con un nombre significativo que permite mover un objeto a cierta velocidad. Incluso a la "gravedad" en game maker le puedes cambiar la dirección en que actúa, así de falsa es.

Como ejercicio podemos hacer una lista de los 10 mejores juegos de plataforma de la historia y podría apostar que NINGUNO se basa en crear una gravedad exacta, ni en simular lo más fielmente posible un sistema de físicas. En muchos casos simular la exactitud del mundo real destruiría la jugabilidad.

No hay una norma para darle magnitud a la gravedad. Depende de cómo sientas que funciona para tu juego y tiene mucho que ver  la velocidad de la habitación. Ahora, si quieres crear un sistema de físicas, GM no es la solución, necesitas un lenguaje más preciso y rápido.

La otra posibilidad, si quieres que tu juego se comporte considerando factores como masa, torque, densidad, fricción, etc. es usar una dll como ExtremePhysics o el sistema de físicas Box2D de Game Maker Studio..
1890
Cita de: Jangse en Febrero 22, 2014, 09:14:46 PM
¿La forma correcta es...? with (obj_puerta) instance_destroy();
Sí.

Cita de: Jangse en Febrero 22, 2014, 09:14:46 PM
¿Porqué no admite parámetros? ¿No sería lógico un instance_destroy(objeto)?
No lo sé a ciencia cierta. Pero instance_destroy es una función "delicada", creo que es más seguro y produce menos errores  "entrar" a la instancia ESPECÍFICA y destruirla, en lugar de tener el "poder" de destruir instancias desde cualquier lugar.