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

1951
Por eso puse esto:

Cita de: penumbra en Febrero 02, 2014, 09:20:11 PM
Yo ahí pondría una condición para revisar si existe el jugador. De ser cierta, pondría una variable velocidad_local = 8, por ejemplo.

Para evitar esto:

Cita de: Jangse en Febrero 04, 2014, 07:44:19 PM
en el evento create del jugador no la reconoce.

Es decir, hacer que la global.velocidad sólo cambie/se ajuste si existe el objeto jugador. El cambio de velocidad en el objeto jugador debería ser en STEP, no en CREATE, a menos que el jugador se cree cada vez que se entra a una nueva habitación. Si el objeto jugador es persistente, En CREATE del jugador se puede poner un valor de speed cualquiera que sea, sólo para iniciar la variable y luego en STEP se podría poner

if (speed != global.velocidad)
     speed = global.velocidad                            //Ajustar la velocidad en STEP sólamente si global.velocidad no coincide con la velocidad anterior

1952
Cita de: rapsi en Febrero 03, 2014, 09:27:13 PM
pero no tengo idea como usarlo o como instalarlo en el GM, he instalado las últimas versiones y tampoco.

¿Qué pocedimiento has hecho? ¿Cuál es el error o qué pasa al intentar instalarlo?

Nunca antes he usado extremephysic, pero justamente también quiero hacer físicas de agua en mi proyecto, ahora que voy terminando otros pendientes. Apenas voy a leer la documentación, pero el zip trae las instrucciones para instalarlo. tienes que instalar el archivo .gex haciendo click en el símbolo"+" en el menú superior de GM. Ahora, el problema es que en GM8.1 sí me corren los ejemplos sin falla, en GM:S también corren, pero hay varios que no se ven, por ejemplo el que simula fluido, no se ve el fluido, sólo las paredes de la habitación, aunque tal vez sea mi tarjeta gráfica.
1953
Es imposible que haya un tutorial para cada caso específico. Probablemente vayas a tener que tomar el camino largo y aprender por ti mismo el uso de ExtremePhysics. De hechom en el zip de  ExtremePhysics vienen ejemplos en GML
1954
Switch es más rápido que IF. Switch está optimizado para elegir entre distintas opciones. No sólo en GML, creo que en cualquier otro lenguaje es asi.

Acá hay un test de velocidad entre Switch e IF en Game maker. http://gmc.yoyogames.com/index.php?showtopic=490446 Pongo un ejemplo:

if-statments:2960ns
Switch:620ns

if-statments:2650ns
Switch:630ns

Ahora, en el caso del juego de Jangse, la diferencia de velocidad entre IF y Switch me parece secundaria. Es cierto que de algún modo hay que dercírselo, pero con IF o con SWITCh, tienes que preguntar antes de decírselo (probar una condición o caso), en cambio con el código en CREATION CODE del room, no preguntas nada, símplemente le dices la velocidad que es y ya. Y otra cosa, el evento CREATION CODE se ejecuta una vez, durante un solo STEP por cada habitación, en cambio el SWITCH o IF en STEP se ejecutaría continuamente todo el rato, siendo innecesario ya que generalmente duras mucho tiempo en una misma habitación.




1955
Cita de: DarkKRuleR en Febrero 02, 2014, 09:22:34 PM
Algo tan sencillo como poner en step del personaje...

[gml]if (room == room0) objPersonaje.velo = 5;
else if (room == room1) objPersonaje.velo = 8;
etc...[/gml]

Eso funciona, pero si por ejemplo, el juego tiene 100 rooms, tienes que poner 99 ifs. COn el switch también ocuparías poner un montón de casos.
1956
El evento CREATE se ejecuta una sola vez, y ahí estás escogiendo entre varias velocidades. Esto se hace una sola vez

En STEP, que se ejecuta continuamente mientras no mueras, estás indicando que la velocidad es 4, sin importar si en CREATE elegiste 8 o 16.

Cada habitación tiene un evento CREATION CODE que se ejecuta al crear el room. Yo ahí pondría una condición para revisar si existe el jugador. De ser cierta, pondría una variable velocidad_local = 8, por ejemplo.

En el STEP del jugador pones speed = velocidad_local y eso debería hacer que la velocidad cambie con la habitación


1957
Preguntas y respuestas / Re:evento remplazar SLEEP zzz
Febrero 02, 2014, 08:35:05 PM
¿Y por qué motivo la alarma se debería ejecutar si antes desactivaste TODAS las instancias?
1958
De nada, es bueno saber que ya funciona.

Cita de: Jangse en Febrero 01, 2014, 09:00:21 PM
Tampoco conocía que esta expresión !health era lo mismo a poner health == 0.

!algo es una de mis expresiones favoritas, pero para mi sorpresa...

He hecho pruebas en GM:S y ahora no me deja usar !health, sino que forzosamente tengo que usar (healt == 0). Escribo esto como aviso o por si a alguien sí le funciona me diga cómo.   >:(

Y sí, todo afecta en STEP, todo está "vivo". Si cambias una variable y más adelante, en el mismo evento hay decisiones basadas en su valor, el cambio les afecta
1959
En el objeto Héroe, en la colisión contra las serpientes, agregué una condición extra al IF mientras trasteaba con tu código, quita esa condición extra y listo

if (invencible == false) and (obj_Control.health > 1)

lo cambias a

if (invencible == false)

se me había olvidado   :-[ Lo acabo de probar y funciona, las serpientes me mataron por completo
1960
Listo. Lo que hacías primero era que cuando la salud llegaba a cero, se reiniciaba a 100 y restabas una vida
if (health == 0)  {
    health = 100;
    lives -= 1;
    }


Luego revisabas si el número de vidas era cero, para poner la salud también en cero, terminarr el juego y mostrar mensaje
if (lives == 0) {
    health = 0;
    show_message('Game Over');
    game_restart();
    }
       

No sabía que esto pasaba, pero me da la impresión ( a menos que otra cosa pase y yo lo ignore) que en cuanto terminas el juego, el evento DRAW no lee ya el valor de la variable health, que sí cambia en STEP a cero. El evento DRAW se ejecuta después que STEP, pero yo moví el código de terminar el juego a DRAW y hacía lo mismo, seguía mostrando el valor de healt mayor a cero. Se me hace normal no saber esto ya que hasta ahora en mi proyecto nunca he usado las funciones que terminan/reinician el juego  XD

Lo que hice fue editar un poco los IF que ajustan energía y vida. Y SOBRE TODO, mover el bloque que termina el juego ANTES del bloque que revisa vidas, para que si en STEP las vidas se acaban, dar oportunidad que se ejecute DRAW y esperar hasta el otro STEP para revisar que las vidas son cero y terminar el juego

Al principio de STEP

if (!health) and (!lives)                         //Si vidas y salud son cero
{
    show_message('Game Over');
    game_restart();
}



Al final de STEP
if (lives >= 1)               //Si tienes al menos una vida...
{
    if (health < 1)                   //... y se te acaba la salud                   
    {
        lives -= 1;
        health = 100;               //Quitar una vida y reiniciar la salud
    }
}
else   
    health = 0;                      // Si ya no te quedan vidas, la salud se acaba


Antes tenías healt = 0 en el bloque que terminaba el juego, eso hacía que nunca cambiara la energía a cero en DRAW, por eso lo saqué y lo puse en el último IF-ELSE


1961
Lo que puedo decir, según mi insípida experiencia, estos errores son de lógica, no del GM. Digo, hay un 0.01% de Probabilidad de que sea un bug del GM y un 99.99% de que sea un error en el código que has escrito.

Sube tu archivo de GM y seguro damos con la solución
1962
No entiendo muy bien, pero si dices que el planeta rota a una velocidad de 0.2, entiendo que avanza un grado cada cinco pasos.

Otro método alternativo al que propuso DarkKRuleR sería sin realizar el cálculo del ángulo de la casa en cada paso, símplemente una vez que la casa haga contacto con el planeta, hacer que la casa gire un grado cada cinco pasos.
1963
Para lo de las frecuencias, se podria usar

display_get_frequency()
display_set_frequency()

para ajustar la velocidad de refresco según el monitor del usuario

Siempre está la opción de usar una dll, por ejemplo GMOgre3D que es más potente y extiende la funcionalidad 3D de GM, claro, lo que implica tener invertir tiempo en aprender cosas nuevas
1964
Preguntas y respuestas / Re:Sonido no se reproduce
Enero 30, 2014, 05:41:40 AM
En el árbol de recursos, entra a "Global Game Settings"

En la pestaña "General", desactiva la casilla "Use new audio engine"

El nuevo sistema de audio usa otras funciones, como

audio_play_sound(index, priority, loop);
audio_stop_sound(index)

etc
1965
Mmm, una de las primeras cosas que te insisten cuando haces algo en 3D es ser tacaño con los polígonos y objetos, siempre usar lo menos, menos, menos posible.

Cita de: DarkKRuleR en Enero 29, 2014, 09:29:28 PM
Eso era una escena, es el promedio, pues todas suelen ser del mismo tamaño de room

No entiendo muy bien, o me da miedo entender  XD. ¿Por qué usas tantos objetos para hacer pisos y paredes? ¿Estás usando objetos como mosaicos (o pixeles) para ir construyendo paredes y pisos? Sobre todo en 3D, una pared debería ser un único objeto, el piso otro objeto, otra pared otro objeto, etc. para que al final tengas unos 3 o 4 objetos para todos esos muros.