Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Jangse en Junio 03, 2013, 09:24:52 PM

Título: ¿Cómo se fija la salida de disparo del personaje?
Publicado por: Jangse en Junio 03, 2013, 09:24:52 PM
Me gustaría saber como se define el punto exacto desde donde dispara el personaje. Yo lo he creado con el [Creating moving] de la pestaña de main1 de actions.

El personaje (Un simple cubo) dispara una flecha al pulsar [space]. Pero esa flecha sale del centro del personaje ¿Cómo se sitúa el punto en el personaje que queremos salga el disparo?

Lo he realizado viendo un vídeo. Y claro, no si es la manera correcta de hacerlo o hay otras.
Título: Re:¿Cómo se fija la salida de disparo del personaje?
Publicado por: Daz en Junio 03, 2013, 09:30:41 PM
Activando la casilla "Relative", el objeto que crees (bala) se creará en relación a la posición del que lo crea (cubo).

Modificando los valores de las casillas x e y, tu objeto se creará en distinta posición. Si en x pones, por ejemplo, 16, el objeto "bala" se creará 16 píxeles a la derecha del origen del objeto "cubo". Lo mismo con y, si pones 8, el objeto "bala" se creará 8 píxeles más abajo del origen del objeto "cubo".
Título: Re:¿Cómo se fija la salida de disparo del personaje?
Publicado por: Jangse en Junio 03, 2013, 09:40:05 PM
Cita de: Daz en Junio 03, 2013, 09:30:41 PM
Activando la casilla "Relative", el objeto que crees (bala) se creará en relación a la posición del que lo crea (cubo).

Modificando los valores de las casillas x e y, tu objeto se creará en distinta posición. Si en x pones, por ejemplo, 16, el objeto "bala" se creará 16 píxeles a la derecha del origen del objeto "cubo". Lo mismo con y, si pones 8, el objeto "bala" se creará 8 píxeles más abajo del origen del objeto "cubo".

¡Ha funcionado! Pero ahora hay otro 'problema'. Si voy hacia la derecha el disparo le sala de la cara (Es un cubo). Pero si gira a la izquierda le sale de la espalda. Osea, del mismo punto ¿Como se hace para que le salga de la cara de nuevo gira a la izquierda?
Título: Re:¿Cómo se fija la salida de disparo del personaje?
Publicado por: Daz en Junio 03, 2013, 10:03:18 PM
Es algo más complejo, porque tenemos que usar variables para eso. Pero para eso estamos aquí :)

Bien, para poder hacer lo que quieres, tenemos que saber en qué dirección está mirando tu personaje. Se puede hacer de varias maneras, pero la más común y la que menos dolores de cabeza te va a dar es usando variables.

En el evento (http://gamemaker.info/dnd/event_create.gif) Create, tienes que declarar una variable.
En D&D, se hace con (http://gamemaker.info/dnd/action_variable.gif). Cuando arrastres el icono, el programa te saltará con una ventana que te pedirá dos valores. Uno variable, y otro value. Variable es el nombre que le quieres dar a la variable, puede ser cualquiera, pero para tu caso y como ejemplo, pongámosle "mirando". Value es el valor que tendrá la variable en un comienzo. Dejémoslo en 0, tal y como aparece predeterminadamente.

Esta variable nos servirá para saber en qué dirección está mirando tu personaje. Cuando el value de la variable "mirando" sea 0, es que está mirando hacia la derecha. Si el value es 1, es que está mirando a la izquierda. Eso debes colocarlo tú en el que código que ya tengas. Como no sé cuál es, no puedo ayudarte mucho en este punto. Pero tendrás que ir a la parte donde haces que tu personaje se mueva a la izquierda (supongo que será en Keyboard <Left>), y usando el mismo icono que has usado en el evento Create, cambiar el value por 1.

Ahora, lo mismo que has hecho para cuando tu personaje se mueve a la izquierda, debes hacerlo para cuando tu personaje se mueve a la derecha, pero cambiando el value a 0.

Ahora, en la acción de disparo, debemos crear una condición. Dependiendo desde donde está mirando el personaje, la bala se creará desde un punto o desde otro.

Para crear una condición, en D&D, usa el icono (http://gamemaker.info/dnd/action_ifvariable.gif).
En variable, colocas "mirando", que es la que hemos estado usando todo este tiempo. En value, deja el 0. Y en la última opción, déjalo tal cual. Con ésto, decimos que si la variable "mirando" es 0, ocurra -algo-.

Ese -algo- es lo que vamos a colocar ahora. Justo después del icono de arriba, coloca (http://gamemaker.info/dnd/action_begin.gif), que significa que has abierto la condición. Ahora, dentro, colocas el código que tienes ahora para disparar. Tras ello, coloca (http://gamemaker.info/dnd/action_end.gif).

Ésto hace que, si el personaje está mirando hacia la derecha (por lo tanto, la variable "mirando" es igual a 0), la bala se crea en la punta derecha de tu cubo.

A continuación, coloca (http://gamemaker.info/dnd/action_else.gif), que significa "por el contrario...", es decir, si la variable "mirando" no es igual a 0. Vuelves a colocar los iconos (http://gamemaker.info/dnd/action_begin.gif) y (http://gamemaker.info/dnd/action_end.gif) justo detrás del Else. Dentro de esos dos iconos, debes colocar el mismo código que tienes para crear la bala, pero esta vez, modificando el valor de x, para que se cree en la punta izquierda de tu cubo.


Con ésto, debería crear la bala dependiendo de donde está mirando tu personaje. Como te dije, es algo más complejo, pero no demasiado. El D&D yo ya lo tengo bastante oxidado, pero debería funcionarte. Prueba lo que te he explicado, experimenta un poco, y me comentas :)


¡Saludos!