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 solucionar el Error de Shake Y Zoom A la Vez  (Leído 321 veces)

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

Desconectado Radix62

  • Visitante
  • *
  • Puntos: 3
  • Mensajes: 1
  • Sexo: Masculino
  • I am Kuku the battling
    • Ver Perfil
en: Diciembre 08, 2019, 01:52:31 am
estoy Trabajando en Mumu's Land y tengo problemas con el zoom y shake

[youtube]https://www.youtube.com/watch?v=-7BZfRPRGUA[/youtube]

como no se quiere mostrar aqui un link


Alguien sabe como solucionarlo?

tengo aqui un GMK de GM8
Para que lo vean

tiene el mismo codigo de mi juego hecho en GMStudio
« última modificación: Diciembre 08, 2019, 03:37:11 am por Radix62 »

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado BssString

Respuesta #1 en: Diciembre 12, 2019, 04:09:36 am
Hola Radix62

Al parecer el error está en la configuración de tu View, en el objeto que sigues en la room.
Cuando seteas un "object follow" a la view, eso hace que Game Maker sobre-escribe cualquier modificación en la view_x / view_y que tú hagas, así que no verás ningún temblor.

Mi sugerencia es que NO uses en el objeto CAMERA la línea:
Código: [Seleccionar]
view_object = selfPara que la configuración de Game Maker no sobreescriba la tuya.

Para hacer que el shake funcione sin centrar la cámara, te sugiero usar variables para el movimiento en X y en Y.
Coloca esta línea al principio del Step event del objeto CAMERA (antes de que ejecutes el Zoom y el Shake o incluso puedes usar el evento BEGIN STEP):
Código: [Seleccionar]
x_offset = 0
y_offset = 0
Eso crea 2 variables con valor 0 y en cada step vuelven a resetearse a valor cero.

En el Step del Shake, reemplaza el Shake actual:
Código: [Seleccionar]
view_xview[0] = random_range(view_xview[0]-4,view_xview[0]+4)
view_yview[0] = random_range(view_yview[0]-4,view_yview[0]+4)
Por un nuevo Shake que modificará las variables que has creado en un rango [ -4 ; 4 ]
Código: [Seleccionar]
x_offset = random_range(-4,+4)
y_offset = random_range(-4,+4)

Finalmente, en lugar de usar la configuración de View por defecto del Game Maker, centrarás manualmente la cámara al objeto CAMERA con este código:
Asegúrate de escribir esto al final del Step Event (después del Shake y el Zoom o si gustas puedes usar el evento END STEP)
Código: [Seleccionar]
view_xview[0] = x-(view_wview[0]/2) + x_offset
view_yview[0] = y-(view_hview[0]/2) + y_offset

Eso recreará el efecto de Shake y funcionará para cualquiera sea el Zoom que coloques.

Una última cosa, cuando termina el Shake, tu alarma 0 del objeto "CAMERA" resetea la posición de la View, elimina ese código porque ya no es necesario.
Ahora el Step event estará re-centrando la View en cada step según la coordenada x/y del objeto CAMERA, así que el reseteo de la view en el Alarm 0 es innecesario.

Saludos