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: ¿Cómo cambiar Sprite para un objeto que se mueve aleatoriamente?[SOLUCIONADO]  (Leído 700 veces)

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

Desconectado KratosSeba

Hola Comunidad  ;D
Me registré hace unos días porque volví a adentrarme en el Game Maker después de dos años jeje y ahora soy más completo  XD

Bueno, mi problema es que... En un menú de inicio que he creado, puse un objeto y quise que este se moviése aleatoriamente de izquierda a derecha (no logro que lo haga cuando se le de la gana xD), el problema es que no se como hacer que cambie el sproite al moverse hacia el otro lado, no sé si me explico xD.

Si este objeto se mueve hacia allá  ->, tiene su sprite original. Pero como aleatoriamente también se mueve hacia allá <- no se como hacer que cambie su sprite por otro que hice con esa orientación.

Si me pudiesen ayudar con este problemilla porfa.
Gracias, saludos :)
« última modificación: Julio 22, 2014, 04:51:39 am por KratosSeba »

Soy solo otro recién empezado que aspira a tener un juego en la vil tienda Play Store :D
 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado Iros

Respuesta #1 en: Julio 21, 2014, 02:14:11 am
Acá te dejo un código, ponelo en el evento Step:

if (xprevious > x) { //Si la posición X anterior es mayor que la nueva posición en X...
   sprite_index(sprLeft); //...cambiamos el sprite por uno orientado a la izquierda.
} else if (xprevious < x) { //En cambio si X previous es menor que la posición actual de X...
   sprite_index(sprRight); //...cambiamos el sprite por uno orientado a la derecha.
}

Cualquier cosa comentá.

 


Desconectado KratosSeba

Respuesta #2 en: Julio 21, 2014, 02:21:41 am
Hola, gracias por responder  :D
Buenop ems, cambié el código por el nombre de mi sprite (dentor del paréntesis cierto? ajaja)
Pero al testear me sale este código en el reporte de errores:

Citar
In object perro_main_menu, event Step, action 1 at line 2: Unknown function or script: sprite_index

Que pudo ser eso?

Soy solo otro recién empezado que aspira a tener un juego en la vil tienda Play Store :D
 


Desconectado eams1986

Respuesta #3 en: Julio 21, 2014, 02:25:25 am
Prueba los comandos que te obsequio Iros por sierto muy explicable .
Hazlo en una room aparte o en un proyecto nuevo para que lo entinedas mejor .
Gracais Iros .. :)


Desconectado Iros

Respuesta #4 en: Julio 21, 2014, 02:27:03 am
Error mio, no era entre paréntesis si no =:

if (xprevious > x) { //Si la posición X anterior es mayor que la nueva posición en X...
   sprite_index = sprLeft; //...cambiamos el sprite por uno orientado a la izquierda.
} else if (xprevious < x) { //En cambio si X previous es menor que la posición actual de X...
   sprite_index = sprRight; //...cambiamos el sprite por uno orientado a la derecha.
}
« última modificación: Julio 21, 2014, 02:32:22 am por Iros »

 


Desconectado eams1986

Respuesta #5 en: Julio 21, 2014, 02:32:53 am
Iros no todo puede ir en bandeja de plata.
Por cierto yo vi el error pero no le quize comentar estaba bien por que asi uno pone mas atention..a lo que esta haciendo .ademas ese codigo es el que mas se usa.

Gracias


Desconectado KratosSeba

Respuesta #6 en: Julio 21, 2014, 02:43:06 am
Gracias Iros, me ayudaste un montón  :D y pués, errar es de humanos ;)
Solo que me si se mueve hacia el otro lado estando en posición < x   igual sigue con el mismo sprite  XD, pero ahí me fijo como arreglarlo, reitero, muchas gracias ;D

Soy solo otro recién empezado que aspira a tener un juego en la vil tienda Play Store :D
 


Desconectado LowHertzs

  • Asiduo
  • *
  • Puntos: 337
  • Mensajes: 248
  • Sexo: Masculino
  • We're all mad here..
    • Ver Perfil
    • Ultbit
Respuesta #7 en: Julio 21, 2014, 12:46:16 pm
También podría servir este:
Step:
Código: [Seleccionar]
switch (direction div 90)
{
case 0: sprite_index=spr_right; break; //R
case 1: sprite_index=spr_up; break; //U
case 2: sprite_index=spr_left; break; //L
case 3: sprite_index=spr_down; break; //D
}

y en draw:
Código: [Seleccionar]
if xprevious=x && yprevious=y
draw_sprite(sprite_index,0,x,y);
else
draw_sprite(sprite_index,-1,x,y);

"Y cuando termines de hablar... te callas."
 


Desconectado KratosSeba

Respuesta #8 en: Julio 22, 2014, 04:34:40 am
Al parecer eso solo funcionaba si el objeto se encontraba en el lado derecho, pero si estaba en ese lado moviéndose a la izquierda no cambiaría el sprite.
Probaré con tu código LowHertz, muchas gracias ;)

Por otra parte, intentaba crear mi propio código pero no veo que funcione:

Citar
if vspeed = 2 {
 sprite_index = animDER; }

else if vspeed = -2 {
{ sprite_index = animIZQ; } }

Eso lo puse en step, y en Create he colocado que se mueva en dirección izquierda y derecha con velocidad dos y sería todo, sin embargo, no cambia el sprite por el que quiero, en que estaría fallando?

Soy solo otro recién empezado que aspira a tener un juego en la vil tienda Play Store :D
 


Desconectado 3dgeminis

Respuesta #9 en: Julio 22, 2014, 04:42:26 am
Busca en la ayuda la funcion vspeed y te vas a dar cuenta del error

 


Desconectado KratosSeba

Respuesta #10 en: Julio 22, 2014, 04:51:14 am
Vaya.... No sabía que existía hspeed  XD XD
Muchas gracias geminis.

TEMA SOLUCIONADO
Gracias a todos ;)

Soy solo otro recién empezado que aspira a tener un juego en la vil tienda Play Store :D