Noticias

Importante: ¡Si quieres publicar tu juego no olvides leer este tema!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Quiero volver a pedir su ayuda.  (Leído 350 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado NU597

  • Habitual
  • *
  • Puntos: 22
  • Mensajes: 11
    • Ver Perfil
en: Noviembre 07, 2019, 12:05:54 am
Alguien sabe como hacer trancisiones al estilo SMW?

algo como sale en la imagen

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado kostra

  • Legendario
  • *
  • Puntos: 2475
  • Mensajes: 2.038
  • Agradecido: 89 veces
  • Sexo: Femenino
  • Sé literalmente el sentido de la vida.
    • Ver Perfil
Respuesta #1 en: Noviembre 07, 2019, 03:53:53 pm
Manera fácil.

dibujas un sprite GIGANTE todo negro con el centro de círculo. Lo pones en un objeto y en cada step lo vas poniendo más pequeño con image_xscale/image_yscale

Manera más dificil, con surfaces, pero eso yo no sé explicarte, esperemos el siguiente mensaje, será lo mejor xD

"ola k ase clickarme o k ase"
la imagen no se quita xD
 


Desconectado NU597

  • Habitual
  • *
  • Puntos: 22
  • Mensajes: 11
    • Ver Perfil
Respuesta #2 en: Noviembre 07, 2019, 05:59:49 pm
Mala idea. por que eso genera memoria. en un sprite.

 


Desconectado Arcadian

Respuesta #3 en: Noviembre 07, 2019, 07:30:19 pm
Mala idea. por que eso genera memoria. en un sprite.
Sí, amigos, porque los sprites, al igual que ocurre con los elefantes, tienen memoria.

Coincido con Kostra, yo lo haría igual.

 


Desconectado Johann

  • Las cosas como son!
  • Moderadores globales
  • Okupa
  • *
  • Puntos: 778
  • Mensajes: 888
  • Agradecido: 125 veces
  • Sexo: Masculino
  • First Class Soldier... 10 años en CGM, 5 como mod
    • Ver Perfil
Respuesta #4 en: Noviembre 07, 2019, 08:37:23 pm
Esa solucion que plantean es como la forma "chapucera" XD pero si se hace con surfaces se gastaría mas memoria y mas procesamiento, entonces Si es mejor la chapuza jajajaja

Cita de: Fenris78
Si un tema os resulta de interes y veis que hay poca información, la mejor solucion no es quejarse o pedir sin pensar, sino sugerir algo bien planteado o aportarlo vosotros mismos.
Cita de: Calio
Somos desarrolladores independientes y, por lo tanto, no tenemos por qué guiarnos por las tendencias del mercado.
 


Desconectado NU597

  • Habitual
  • *
  • Puntos: 22
  • Mensajes: 11
    • Ver Perfil
Respuesta #5 en: Noviembre 07, 2019, 09:03:09 pm
Alguien que sepa porfavor y no sea con la solucion de un sprite gigante porfavor. ayuda .v

 


Desconectado Johann

  • Las cosas como son!
  • Moderadores globales
  • Okupa
  • *
  • Puntos: 778
  • Mensajes: 888
  • Agradecido: 125 veces
  • Sexo: Masculino
  • First Class Soldier... 10 años en CGM, 5 como mod
    • Ver Perfil
Respuesta #6 en: Noviembre 07, 2019, 09:18:15 pm
Creo que tu solucion ideal es esta: https://www.comunidadgm.org/desarrollo-de-scripts/dibujar-anillosdonasredondelas-huecas/

Pones el radio exterior equivalente a la distancia que hay entre el centro de la pantalla y la esquina superior izquierda (puede ser cualquier esquina), y en cada step vas reduciendo el radio interior hasta que llegue a un valor pequeño como 0 o 1.

Cita de: Fenris78
Si un tema os resulta de interes y veis que hay poca información, la mejor solucion no es quejarse o pedir sin pensar, sino sugerir algo bien planteado o aportarlo vosotros mismos.
Cita de: Calio
Somos desarrolladores independientes y, por lo tanto, no tenemos por qué guiarnos por las tendencias del mercado.
 


Desconectado NU597

  • Habitual
  • *
  • Puntos: 22
  • Mensajes: 11
    • Ver Perfil
Respuesta #7 en: Noviembre 08, 2019, 12:45:26 am
Creo que tu solucion ideal es esta: https://www.comunidadgm.org/desarrollo-de-scripts/dibujar-anillosdonasredondelas-huecas/

Pones el radio exterior equivalente a la distancia que hay entre el centro de la pantalla y la esquina superior izquierda (puede ser cualquier esquina), y en cada step vas reduciendo el radio interior hasta que llegue a un valor pequeño como 0 o 1.

bueno. por que no pasan un GMK para comprobar si funciona el codigo?

 


Desconectado getnoff

Respuesta #8 en: Noviembre 08, 2019, 03:48:25 pm
Vamos compañero, no cuesta nada comprobar un script por tu cuenta e intentar entender cómo trabaja.

Piensa en lo siguiente: en el mundo de la programación existen miles y miles de trucos, efectos y formas de hacer las cosas, por lo que es imposible poder siempre encontrar ejemplos precisos para lo que uno busca hacer (y que además sea compatible con tu juego). Entonces la mejor forma de aprender es investigando conceptos, en este caso por ejemplo de ¿qué son las surfaces y cómo trabajan? o ¿cómo se utilizan los scripts?

Y una vez que entras en el mundo, aprenderás y si tienes dudas de algo en específico, puedes preguntarlas.

Y por último, no pusiste qué versión de game maker usas, como mencionas gmk parece que usas gm8 así que el script que te dieron quizás ni siquiera sea compatible, como ves es de gran importancia ser específico para poder ayudarte mejor.

 
Los siguientes usuarios dieron las gracias a este tema: Johann


Desconectado BssString

Respuesta #9 en: Noviembre 10, 2019, 02:51:48 am
Hola NU597

No sé si este tema está resuelto o no.
Yo hago transiciones con Shader usando una imagen en escala de grises, eso te permite generar transiciones de diferentes formas con el mismo código, así como las transiciones de batalla en los juegos de Pokémon.
En este link puedes encontrar cómo realizar esa técnica: https://gdpalace.wordpress.com/2017/10/07/transitions/

Si no estás acosumbrado a las Shader, otra alternativa más simple puede ser usar Surfaces.

Para lograr el efecto usando Surfaces:
Crea un nuevo objeto para la transición.
En su Create Event pone:
Código: [Seleccionar]
surface = surface_create(room_width,room_height) //Si usas Views(GMS1.4)/Cameras(GMS2), deberás usar esas dimensiones en vez de las de room.
fade = 1//Esta variable controla el tamaño del círculo transparente. 1 significa que el agujero cubre toda la pantalla (todo se ve normal), 0 significa que el agujero ya se cerro por completo (se ve todo negro)

En su Stem Event pones esto:
Código: [Seleccionar]
if fade > 0 {
fade = max(0,fade-0.02) //Esto reduce el tamaño del círculo, impidiendo que pase bajo del cero.
if fade = 0 alarm[0] = room_speed //Si ya llegó a cero, esto asigna un retardo de 1 seg para eliminar la transición
}

En el Evento Alarm0 pones:
Código: [Seleccionar]
instance_destroy() //Esto destruye el objeto y la transición, también puedes colocar cualquier efecto post-transición, como ir a otra room o terminar el juego o lo que quieras
Aquí es donde ocurre la magia:
En el Draw Event pones:
Código: [Seleccionar]
if !surface_exists(surface) surface = surface_create(room_width,room_height) //Simplemente re-crea la surface en caso que se haya borrado por minimizar el juego
surface_set_target(surface) //Asigna el foco a esta surface para dibujar en ella.
draw_clear(c_black) //Pinta la surface de un fondo color negro (lo más importante es que asigna el alpha a 1 para ser invertido en el blend mode)
draw_set_blend_mode_ext(bm_inv_src_alpha, bm_inv_src_alpha); //Cambia el Blend Mode para los futuros dibujos. Es un poco enredada la explicación técnica que hay
detrás, pero básicamente para todos los nuevos dibujos: si hay color, ahora dibuja un agujero, si hay partes transparentes, entonces conserva el color de abajo del fondo negro como normalmente se dibujaría algo con alpha.
//En GMS2 es: gpu_set_blendmode_ext
var radio = fade*sqrt(power(room_width/2,2)+power(room_height/2,2)) //Esto es pitágoras, puedes usar la función point_distance() también. Calcula la distancia desde el centro de la pantalla hasta una esquina para saber qué tan grande debe ser el círculo de forma que cubra toda la pantalla, ese valor se multiplica por fade, a medida que fade se reduce, el tamaño del círculo también.
draw_circle(room_width/2,room_height/2,radio,false) //Esto dibuja el círculo, pero por efecto del blend mode, en vez de eso dibujará un agujero del porte de la pantalla xD que se irá haciendo cada vez más pequeño según la variable "radio"
draw_set_blend_mode(bm_normal); //Resetea el blend mode.
surface_reset_target() //Resetea el focus en la surface para ahora dibujar en la "Application Surface"
draw_surface(surface,0,0) //Dibuja la surface en la coordenada 0,0 de la room, si usas "view" (GMS1) o "cameras" (GMS2) deberás usar las coordenadas X e Y.

Para que se vea el efecto, tienes que dibujar este objeto de transición en alguna layer encima de todo lo demás, sino no te servirá.

Con este método, si usas un sprite escalado, puedes hacer que en la transición en vez de un círculo se vea una forma diferente cerrándose, ej: el sombrero de mario o el honguito o la estrella, etc. lo importante es que lo escales bien para que te cubra justo toda la pantalla cuando "fade" es 1.

Saludos
« última modificación: Noviembre 10, 2019, 02:57:42 am por BssString »

 


Desconectado jhgv

  • Habitual
  • *
  • Puntos: 46
  • Mensajes: 23
  • Sexo: Masculino
    • Ver Perfil
Respuesta #10 en: Noviembre 11, 2019, 08:12:49 pm
Manera fácil.

dibujas un sprite GIGANTE todo negro con el centro de círculo. Lo pones en un objeto y en cada step lo vas poniendo más pequeño con image_xscale/image_yscale

Manera más dificil, con surfaces, pero eso yo no sé explicarte, esperemos el siguiente mensaje, será lo mejor xD

JAJAJAJAJAJ ME ENCANTAS! xD ya te eh visto hacer esto varias veces, la otra vez dijiste que para un cuadro con scrollbar le ponías la textura del fondo para ocultar el texto 😂😍

 


Desconectado elviskelley

Respuesta #11 en: Noviembre 12, 2019, 10:55:58 am
ESTE POTS VIOLA EL REGLAMENTO (EL TITULO DEBE SER DESCRIPTIVO) PUDISTE COLOCAR ALGO COMO; 'TRANSICIONES DE ROOM

Volviendo a tu pregunta, podrias usar un background o sprite con un tamaño de 32x48  y dibujarle el circulo en el medio,  Aumentar su tamaño tanto como la view sea, y reducirlo, no es nada dificil... y no consume muchos recursos de esa manera.,

Atentamente.-
Elvis Kelley
Mi Manual.