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

1966
Cita de: Jangse en Enero 29, 2014, 09:09:09 PM
Creo que GM en los IFs le es igual que utilices el signo = o ==, ya que en ambos caso realiza la comparación. Es decir, un IF no asigna, solo compara.

El IF no compara ni asigna, el IF se limita a evaluar una expresión (ver si es falsa o verdadera).

http://gmc.yoyogames.com/index.php?showtopic=424410#entry3079434  si ves el tema "Checking Variable Comparisons" verás que también se hace la distinción entre = y ==

EDIT: Y bueno, es cierto lo que comentaste, game maker es bastante relajado en ese aspecto y al parecer deja usar = y == de igual manera en las comparaciones  XD
1967
Cita de: DarkKRuleR en Enero 29, 2014, 08:58:51 PM
donde 250 aprox serán suelos, paredes, techos y fondos... realmente influye tanto?

¡Madre mía, eso es del diablo! *Arroja su PC lejos* ¿Estás dibujando todos esos objetos con las funciones de Game Maker, que no se distinguen por ser las más rápidas precísamente? ¿En una escena cuántos objetos en promedio tienes?

Cita de: TLT96 en Enero 29, 2014, 09:04:29 PM
Hablando de 3D, alguno sabe hacer models? a lo PS1?

Yo no uso todavía 3D en GM, probablemente me decida mejor por Unity, pero sé algo de modelado. No es difícil si quieres hacer modelos con un número bajo de polígonos, pero no desprecies un tutorial básico de modelado, hay conceptos que tienes que saber para evitarte problemas más tarde.





1968
Cita de: TLT96 en Enero 29, 2014, 08:45:26 PM
Yo lo veo perfecto o.O

:-\ No.

Esto NO ES una comparación.
if healt = 0        // Esto es una asignación, una asignación no debería usarse como condición aquí

ESTO SÍ ES una comparación.
if healt == 0        // Esto es una comparacion, el valor de healt no se altera, sólo se compara

No ví con detenimiento el código, sólo me llamó la atención cómo estás manejando los IF. Es muy probable que estos errores son los que estén provocando las fallas

En el primer caso, la variable healt (creo que se te refieres a "health") recibe el valor de cero, después el if evalúa la expresión, y como se encuentra con que es falsa (cero), el bloque if en realidad no se ejecuta.
1969
Lo único que se me ocurre es que las alarmas para crear y eliminar los objetos random las uses para otras cosas, si es así, usa unas alarmas nuevas o 'limpias'. Quizás alguno de los objetos A B C D modifiquen algo en los objetos p1 o p2
1970
Preguntas y respuestas / Re:usar la variable "OTHER"
Enero 29, 2014, 02:30:23 AM
Gracias, brunoxzx  :-[
1971
Preguntas y respuestas / Re:programacion de shaders
Enero 29, 2014, 02:15:49 AM
Cita de: abramelin en Enero 28, 2014, 09:47:57 PM
yo pensaba que se podia aplicar el shader a todo lo que hubiese debajo con un draw view o algo asi, si es tan lioso creo que trae mas cuenta hacerle el efecto al fondo con el vegas y hacerlo con imagenes en lugar de con shaders, eso si, solo afectaria al fondo... mi idea era que el efecto quedara por delante del jugador afectando tambien a este cuando pase por detras de dicho objeto con shader.. pero si hay que redibujarlo todo... total.. la solucion creo que va a ser cargar el fondo en el vegas aplicarle el efecto wave y exportar las imagenes para despues cargarlas como sprites.

Pero es que imagínate, que por defecto todos los Shaders funcionaran al revés, de manera global para todo lo que estuviera en la vista, todo mundo estaría preguntando lo contrario: como hacer que el shader afectara solo a un objeto, que sería lo más lógico, ya que en GM se trabaja con objetos y se requiere tener el control individual de objetos.

Ahora, si quieres que todo se vea afectado por el shader, se puede, no desesperes. Ahí están las benditas surfaces. Aun no he hecho pruebas, pero leyendo la comunidad de YoYo he dado con esta función

view_surface_id[]

que según entiendo (y peude que me equivoque) enlaza una superficie a una vista  8). Aquí se discute o se dan indicios de cómo aplicar el efecto de una shader a toda la pantalla mediante surfaces.

http://gmc.yoyogames.com/index.php?showtopic=586298

Pero aun sin shaders se puede hacer. Mira, esto es de GM8.1

ANTES:


DESPUÉS:


:D :D :D todo con surfaces
1972
Cita de: Slade en Enero 28, 2014, 10:00:58 PM
esto es muy util a la hora de tener varias instancias y querer cambiarles una variable local a un tipo de instancias y a otras no.

Si se tiene GM 8, que es el caso, creo que una manera más sencilla de hacerlo sería así (no vale para GM:S por que quitaron funciones dinámicas)


with (all)
{
     if (variable_local_exists(vida) ) and (variable_local_exists(vida) < 100)
           vida = 100
}
1973
Preguntas y respuestas / Re:programacion de shaders
Enero 28, 2014, 08:02:26 PM
Sabía que no resistirías  XD

Lo que preguntas no lo había probado, así que no sabía qué pasaba. Usé el shader de onda que pusiste en uno de los mensajes anteriores. Sin estar 100% seguro (puede que haya otro método que funcione) lo que me sucedió al querer dibujar más de una instancia con una sola llamada a un shader desde un solo objeto es que se presentan problemas en el dibujo, por lo que yo diría que no es recomendable.

Para activar un shader, usas shader_set(mi_shader). Pero aunque se usen shaders, las leyes gamemakerianas siguen aplicando, es decir, usa el evento draw como dictan los cánones.

- Lo que dibujas primero, queda por debajo de lo que dibujas después.
-  Puedes dibujar el sprite asociado a esta instancia (usando draw_self())
-Puedes dibujar fondos o tiles, ya que los fondos no son propiedad exclusiva de un objeto, sino que pertenecen a una habitación y están disponibles para ser manipulados desde cualquier objeto

Luego intenté usar la sentencia With dentro del evento DRAW para "entrar" a otro objeto (llamémosle objeto B) y dibujar un sprite (ya fuera el sprite asociado a la instancia o cualquier otro sprite). En primer lugar, el objeto_B YA se dibujaba a si mismo, cosa que hacen todos los objetos cuando los pones en la habitación y tienen un sprite asociado a ellos. Al usar draw_self(), se volvía a dibujar el sprite del objeto B, con el efecto shader aplicado, y quedaba por debajo del sprite original de B (porque el objeto B tenía una mayor profundidad que el objeto desde donde estaba usando el shader)

El detalle es que lo que dibujaba en la sentencia With quedaba distorsionado, al irse moviendo en onda (según el efecto de shader), no nada más aparecía el sprite del objeto B, también aparecán partes del sprite del objeto desde donde estaba usando el shader. Ocurría algo similar al usar draw_sprite en lugar de draw_self


Estuve leyendo y al parecer es posible usar una textura como máscara dentro del shader, para especificar qué región queda afectada por el efecto. Eso sí, no tengo idea de cómo hacer eso, igual buscando con calma das con la solución (y la compartes por acá)
1974
Usando dos alarmas, y suponiendo que los objetos que se quieren crear aleatoriamente son (A, B, C y D)

en CREATE Del objeto controlador

alarm[0] = irandom_range(room_speed*2, room_speed*6)       //Tiempo mínimo: dos segs., tiempo máximo: 6 segs.
instancia_al_azar = 0


ALARMA[0] del objeto controlador

if instance_number(instancia_al_azar) < 1                                       //Si no existe una instancia.
{
    randomize()
    instancia_al_azar = instance_create(200, 200, choose(obj_A, obj_B, obj_C, obj_D ))         //Crearla
}

alarm[1] = irandom_range(room_speed*2, room_speed*6)



ALARMA[1] del objeto controlador

if instance_number(instancia_al_azar) > 0                    //Si existe ya una instancia...
{
    with(instancia_al_azar)
    {
        randomize()
        instance_destroy()                                         //Destruírla
    }
}

alarm[0] = irandom_range(room_speed*1, room_speed*6)
1975
Preguntas y respuestas / Re:usar la variable "OTHER"
Enero 28, 2014, 04:24:37 AM
Empecemos por mencionar que "Other" no es una variable, en el manual de GM 8 creo que le llaman objeto especial y en GM:S una clave o palabra reservada.

"Other" sólo tiene sentido usarla cuando estás manejando eventos de colisión, o cuando estás usando una sentencia "With"

A ver si me hago entender, Other viene a ser una especie de atajo o palabra comodín para referirte a otra instancia sin saber su nombre exacto, por eso sólo es util en colisiones o sentencias with.

Ejemplo: Chocaste en tu bicicleta contra otra persona que también iba en bicicleta. Llegas a tu casa y después de que tu madre te vea golpeado y te pregunte qué te pasó, dices: choque en la bici, pero al "otro" le fue peor. Se entiende que el otro no eres tú, sino la otra persona involucrada, ¿cómo se llama? quién sabe, pero es la otra persona que chocó

Las colisiones se van evaluando por pares, es decir, GM no puede procesar de una sola vez un choque de tu personaje contra dos o más enemigos". Por eso siempre hay dos objetos involucrados en una colisión, generalmente tu personaje y "el otro" objeto.

Cuando ocurre un evento de colisión, casi siempre queremos que algo pase no nada más con nuestro jugador,  sino con el otro objeto. En el momento de colisión, GM te ahorra el trabajo de ir preguntando contra qué instancia chocaste, no necesitas saber si pertenece al objeto A, B o C, símplemente esa instancia es la otra

¿Choqué? Ah, pues a eso contra lo que choqué, quítale vida:
other.vida -= 10
1976
Preguntas y respuestas / Re:programacion de shaders
Enero 26, 2014, 06:06:07 AM
Cita de: ivn_eze en Enero 26, 2014, 04:34:19 AM
¿pero no lo hace mas lento al juego?

Creo que tendrías que hacer un enredo y caos con shaders para que se hiciera lento. No sé cómo funcione en otras plataformas, pero los shaders están diseñados para ejecutarse directamente en la tarjeta gráfica de la PC, por lo que un uso normal o hasta medio intenso no debería afectar el desempeño general.

Ignoro qué pasa con las PCs que tengan video integrado, no sé si ahí el rendimiento sí se vea afectado (o no) por el uso de shaders.

1977
Y bueno, una pregunta off-topic clásica. Pero no me resistí, es culpa de la nueva versión del foro... qué le vamos a hacer?

Y respondiendo a la pregunta: Para mi, el rey de los géneros es el RPG, en cualquiera de sus modalidades (action, classic, on-line masivo, etc). Porque generalmente las historias son complejas y elaboradas, porque es tal vez el género que se presta mejor para desarrollar totalmente una personalidad para cada personaje, por el tema fantasioso y mítico, la música, diseño de personajes, armas, poderes, etc.

Claro, esa es sólo mi opinión, estoy interesado en ver las tendencias más populares acá en la comu
1978
Bueno, para dar una respuesta políticamente correcta: Cada plataforma tiene lo suyo, cada una le guiñe el ojo a cierto usuario dependiendo de sus hábitos de juego y preferencias.

Habiendo dicho esto, mi plataforma favorita es la PC, no nada más por su potencia gráfica. Las consolas no están mál (amén que cada vez son más parecidas a una PC) y a veces las juego, pero la pc abarca mucho más, jugar, crear, diseñar, comunicar, etc.
1979
Noticias / Re:¡Bienvenidos a la nueva CGM!
Enero 25, 2014, 11:05:34 PM
Ahora caigo, ya te iba a preguntar si te habías olvidado de las traducciones, Daz, pero ahora veo por qué WeGame y tú andaban "desaparecidos". Bueno, aprovecho para recordarles a ambos que hay que ir aportando al asunto de las traducciones  (a mi mismo me lo recuerdo) que están algo olvidadas  :-[ .

Y de nuevo gracias a los responsables del cambio. Y no es por hostigar, pero un tema "dark" haría feliz a más de un makero por aquí  :D 
1980
Preguntas y respuestas / Re:programacion de shaders
Enero 25, 2014, 10:46:24 PM
Así es, para shaders hay varios lenguajes, YoYo se decidió por darle soporte al lenguaje GLSL ES. Anduve buscando y hay poco material para el novato que quiere aprender a manejar los shaders en GLSL ES. Me refiero no sólo a pegar líneas de código de un ejemplo y modificar algunos parámetros, sino a entender aspectos teóricos y fundamentos de los shaders. Incluso en los foros de YoYo los usuarios decían que había poca información para los principiantes, los que tienen experiencia con Shaders y hacen ejemplos, ya tienen experiencia con otros lenguajes de programación en otras plataformas. Ahora, en español, todavía es más difícil (o al menos yo tuve poco éxito) encontrar tutoriales para principiantes, específicamente hablando de GLSL en GM:S

Al igual que tú, andaba perdido, así que me puse a recolectar info y me decidí a realizar un tuto en español como introducción a los shaders, el cual estará listo en una o dos semanas. Pero  creo que no resistirás tanto tiempo...  XD

En GM, al abrir el shader, hay dos pestañas, vertex y fragment. No he visto ese efecto wave al que te refieres, pero probablemente la distorsión "de agua" basa en manipular el seno y coseno aplicados a coordenadas de la textura, ahí donde veas "sin" y "cos" puedes mover los parámetros para ajustar el efecto.

YoYo tiene un "tech blog" ahí tienen una "supuesta introducción" a los Shaders, la cual a mi me dejó bastantes dudas, por eso me puse a armar el tutorial, pero a lo mejor te sirve de algo.

http://www.yoyogames.com/tech_blog/20