Bueno, antes tenia un problema y lo solucione creando 2 objetos del heroe principal (uno q mira a la derecha y otro a la izquierda), el problema es q cuando mi heroe camina a la derecha y quiero girar a la izquierda para en la posicion de la izquierda.
Aca pongo lo q puse en los obj heroe:
El obj_heroe1 mira a la derecha y el 2 a la izquierda.
obj_heroe1: cuando se oprime izquierda: Destruye el obj_heroe1 y crea al obj_heore2 (cuando el 2 se oprime izquierda camina hacia la izquierda).
obj_heroe2: cuando se oprime derecha: Destruye el obj_heroe2 y crea al obj_heroe1 (cuando el 1 se oprime derecha camina hacia la derecha).
Pero cuando pasa de obj_heroe1 al 2 y se mantiene oprimido la direccion izquierda no se mueve pero el heore2 muestra el sprite de movimiento hacia la izquierda; tambien pasa aun asi uno no continue oprimiendo izquierda.
Esto tambien sucede viceversa.
Alguna idea de como solucionarlo???
no hace falta dos objetos solamente tenes que tener los sprites de movimiento derecha e izquierda y haces lo siguiente
"boton derecha"
direction= 360;
speed= 2;
sprite_index= (el sprite movimiento dereecha);
image_speed= 0.5;
"boton izquierda"
direction=180;
speed= 2;
sprite_index= (el sprite movimiento izquierda);
image_speed= 0.5;
esta es una de las tanta formas de hacerlo y espero haber repuesto tu pregunta
:D :D
eso lo tenia pero lo cambie por q tenia un problema con los disparos, nesesitaba q cuando este el personaje a la derecha la bala salga el obj_disparo y cuando este a la izquierda el obj_disparo2 pero no logre ninguna forma para gacer eso.
pero eso se arregla facil, mira:
en el evento create de la bala
if obj_heroe.sprite_index=(el sprite movimiento derecha) or obj_heroe.sprite_index=(el sprite parado derecha)
{
direction=0
speed=5
}
else if obj_heroe.sprite_index=(el sprite movimiento izquierda)or obj_heroe.sprite_index=(el sprite parado izquierda)
{
direction=180
speed=5
}
y con eso te deberia de funcionar
suerte :P
:o genial ya me funciono muchas grax, ahora solo una cosa:
Aca en la parte de los sprites de la izquierda nesesito que la bala salga la imagen invertida (es por q la bala tene una punta y un arco atras, y se be alrevez cuando uno dispara con este codigo sin hacer invertir la imagen), pss tonces que le a?ado a este codigo para q cuando dispare con los sprites de la izquierda la bala salga invertida?
if obj_heroe.sprite_index=(el sprite movimiento derecha) or obj_heroe.sprite_index=(el sprite parado derecha)
{
direction=0
speed=5
}
else if obj_heroe.sprite_index=(el sprite movimiento izquierda)or obj_heroe.sprite_index=(el sprite parado izquierda)
{
direction=180
speed=5
}
una opcion que se me ocurre seria,si la bala no tiene animaci?n,creas una subimagen que mire a la derecha y otra a la izquierda con eso se puede decir que tienes dos sprites en uno. XD
Una vez lo tengas en el codigo que tienes puesto en el evento create pones esto:
if obj_heroe.sprite_index=(el sprite movimiento derecha) or obj_heroe.sprite_index=(el sprite parado derecha)
{
direction=0;
speed=5;
image_index=0;
}
else if obj_heroe.sprite_index=(el sprite movimiento izquierda)or obj_heroe.sprite_index=(el sprite parado izquierda)
{
direction=180;
speed=5;
image_index=1;
};
Esto te va a funcionar siempre que pongas bien el indice de la subimagen(image_index), ten en cuenta que siempre empiezan desde 0 y no desde 1, tambi?n f?jate que la subimagen coincida con la direcci?n correcta de la bala porque en el c?digo yo he puesto 0 como derecha y 1 como izquierda.
Si en un futuro quieres utilizarlo en otra cosa ten en cuenta que este en el evento create y no step o draw, porque estos eventos se actualizan cada milisegundo y te dar?a problemas.
Espero que te sirva. :)
lo que dice Croer es cierto pero si la bala tiene animacion usa esto
en el create de la bala
if obj_heroe.sprite_index=(el sprite movimiento derecha) or obj_heroe.sprite_index=(el sprite parado derecha)
{
direction=0
speed=5
image_index=1//la imagen por defecto
}
else if obj_heroe.sprite_index=(el sprite movimiento izquierda)or obj_heroe.sprite_index=(el sprite parado izquierda)
{
direction=180
speed=5
image_index=-1//te invierte la imagen a partir del eje x
}
si tienes la version lite usa esto:
en el create de la bala
if obj_heroe.sprite_index=(el sprite movimiento derecha) or obj_heroe.sprite_index=(el sprite parado derecha)
{
direction=0
speed=5
sprite_index=bala_derecha
}
else if obj_heroe.sprite_index=(el sprite movimiento izquierda)or obj_heroe.sprite_index=(el sprite parado izquierda)
{
direction=180
speed=5
sprite_index=bala_izquierda
}
aqui tienes que tener 2 sprite para la bala igual que el obj_heroe
pero si no tiene animacion puedes usar perfectamente el codigo que te paso Croer
suerte :p