Noticias

¡Ayuda a la Comunidad GM, haz una donación!

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: Cambia Sprite de Arma en Direccion del Mouse  (Leído 938 veces)

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

Desconectado T789

  • Habitual
  • *
  • Puntos: 110
  • Mensajes: 60
  • Agradecido: 2 veces
  • Sexo: Masculino
  • Solo quiero aprender para ser Mejor
    • Ver Perfil
en: Octubre 20, 2019, 10:03:59 pm
Hola busco un efecto en el que el arma cambie de sprite segun la direccion del mouse
Por si el cursor esta a la izquierda o derecha del player

Un ejemplo de lo que busco: https://richard08.itch.io/liar-laboratories
Hecho en GameMaker

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado dixon

  • Habitual
  • *
  • Puntos: 78
  • Mensajes: 44
  • Agradecido: 4 veces
  • Juegos de educación gratis dixon 2019. Prov. 4:7
    • Ver Perfil
Respuesta #1 en: Octubre 21, 2019, 07:39:53 pm
Hola, gusto en saludarle.

Podemos cambiar de sprite, tambien podemos cambiar la imagen del sprite, de igual manera podemos girar una imagen y por ultimo podemos escalar una imagen para obtener imagen espejo.

sprite_index: Es el sprite que usará el objeto.
imagen_index: Es la imagen que mostrará del sprite seleccionado. (Para sprites secuenciales con varias imágenes)
image_xscale: Es para escalar una imagen (hacerla grande o pequeña), pero también puedes voltearla como si fuera un espejo (Osea en otra dirección.)
image_angle: Para girar la imagen en un ángulo determinado cuyos valores varían de 0 a 360.

Ahora bien, los que usan game maker viejísimo (como yo que estoy comenzando a usar el 1.1 del año 2000 ), no pueden usar image_xscale ni imagen_angle, todo eso fue implementado en la version 6 del game maker si no e equivoco. Pero pueden obtener el mismo efecto que aparece en el juego mediante otros métodos.

En el juego mostrado vi un arma que gira a 360 grados, que cuando la posición x del mouse se coloca antes de la posicion x del player en tonces ocurre alguna de estas dos alternativas: El arma cambia de sprite o la imagen del sprite hace una escala.  Al parecer la experiencia del programador es buena como para dominar la xscale por lo tanto deduzco que esta usando la image_xscale.(Yo lo haria de esa forma pues me ahorraria un sprite espejo)

¿Como lograr el efecto de las dos formas?

1. Cambiando el sprite del arma
Código: [Seleccionar]
if(mouse_x<object_player.x){sprite_index=sprite_derecha}else{sprite_index=sprite_izquierda}
2.Escalando el arma
Código: [Seleccionar]
if(mouse_x<object_player.x){image_xscale=-1}else{image_xscale=1}
También pudieses crear un solo sprite y no usar xscale y tampoco requerir de un cambio de sprite. ¿como? creando un solo sprite que contenga todas las imagenes con vista a la derecha y las de vista a la izquierda. Y usarias:

Código: [Seleccionar]
image_index=point_direction(object_player.x,object_player.y,mouse_x,mouse_y)
1. Todos los códigos son para el objeto pistola, o para el objeto que la contenga
2. El objeto_plaer es el nombre del objeto player
« última modificación: Octubre 21, 2019, 09:53:53 pm por dixon »

 


Desconectado kostra

  • Legendario
  • *
  • Puntos: 2474
  • Mensajes: 2.037
  • Agradecido: 89 veces
  • Sexo: Femenino
  • Sé literalmente el sentido de la vida.
    • Ver Perfil
Respuesta #2 en: Octubre 21, 2019, 10:27:04 pm
aquí mi versión xD

image_angle = point_direction(x,y,mouse_x,mouse_y)
if image_angle >= 90 && image_angle < 270
      image_yscale = -1;
else
    image_yscale = 1;
no hace falta ni tener 2 sprites

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


Desconectado T789

  • Habitual
  • *
  • Puntos: 110
  • Mensajes: 60
  • Agradecido: 2 veces
  • Sexo: Masculino
  • Solo quiero aprender para ser Mejor
    • Ver Perfil
Respuesta #3 en: Octubre 22, 2019, 05:00:11 pm
Disculpa no se si entendi mal pero creo encontre un defecto
1:Eso no rotaria y voltearia solo el sprite del obj_Player y como en el juego solo se rota el sprite de la pistola
2:Y si la pistola es un objeto aparte como haria para anclarlo al objeto del player

La verdad solo quisiera rotar la pistola si se puede

 


Desconectado kostra

  • Legendario
  • *
  • Puntos: 2474
  • Mensajes: 2.037
  • Agradecido: 89 veces
  • Sexo: Femenino
  • Sé literalmente el sentido de la vida.
    • Ver Perfil
Respuesta #4 en: Octubre 22, 2019, 05:38:24 pm
ese código va en la pistola, no en el player xD

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


Desconectado T789

  • Habitual
  • *
  • Puntos: 110
  • Mensajes: 60
  • Agradecido: 2 veces
  • Sexo: Masculino
  • Solo quiero aprender para ser Mejor
    • Ver Perfil
Respuesta #5 en: Octubre 23, 2019, 03:50:39 am
Ya entendi

Otra pregunta como haria para pegar o anclar el objeto de la pistola al objeto player

 
Los siguientes usuarios dieron las gracias a este tema: jhgv


Desconectado jhgv

  • Habitual
  • *
  • Puntos: 46
  • Mensajes: 23
  • Sexo: Masculino
    • Ver Perfil
Respuesta #6 en: Octubre 23, 2019, 10:04:07 am
Ya entendi

Otra pregunta como haria para pegar o anclar el objeto de la pistola al objeto player
Mira nene :3 me imagino que habran otras formas, te digo la mia; En el objeto de la pistola le modificas sus variables "x" e "y" a las del jugador ¿sabes como?
seria algo asi
x = obj_player.x 
  y asi mismo con la "y" (el obj_player seria el objeto del jugador, Duh :p) y hay muchas mas formas ejemplo yo estaba buscando un editor de personajes y se me ocurrió (me ayudaron xd) que en el evento draw del personaje dibujara las manos, pies y todo separado y asi dejar que el jugador lo edite (obviamente ya no se podría usar el image angle, pero entonces hay que planear las animaciones a la hora de hacer los sprites) wueno esto no importa jeje solo lo de arriba...

 


Desconectado T789

  • Habitual
  • *
  • Puntos: 110
  • Mensajes: 60
  • Agradecido: 2 veces
  • Sexo: Masculino
  • Solo quiero aprender para ser Mejor
    • Ver Perfil
Respuesta #7 en: Octubre 24, 2019, 04:38:31 am
que otro metodo existe, este no me convenze y al moverse el player este no se mueve al momento exacto con el

 


Desconectado kostra

  • Legendario
  • *
  • Puntos: 2474
  • Mensajes: 2.037
  • Agradecido: 89 veces
  • Sexo: Femenino
  • Sé literalmente el sentido de la vida.
    • Ver Perfil
Respuesta #8 en: Noviembre 09, 2019, 06:38:53 pm
para que siga al player solo puedes haces
x = obj_player.x;
y = obj_player.y;

Y si se ve feo por el retraso que causa al seguirlo, pues solo tienes que usar el eventro draw y dibujar el arma donde el  player a tiempo real, sin retraso alguno
draw_sprite_ext(sprite_index,image_index,obj_player.x,obj_player.y,image_xscale,image_yscale,image_angle,image_blend,image_alpha);

y listo.

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