Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: pacne en Octubre 27, 2014, 04:47:35 PM

Título: Hacer un cañon???
Publicado por: pacne en Octubre 27, 2014, 04:47:35 PM
Alguien sabe como hacer un cañon estilo este, http://www.kongregate.com/games/microsheep/micro-olympics
Es que estoy intentando pero no se por donde empezar.
Muchas Gracias
Título: Re:Hacer un cañon???
Publicado por: kostra en Octubre 28, 2014, 04:48:45 AM
Pongo un ejemplo igual al del juego, pero con valores inventados que eso ya luego lo calibras tu <.<
, todo improvisado, no te fies mucho de mi xd

---
sprite cañón sin el soporte, sprite soporte, sprite lo que lance.

objeto con el sprite soporte, dealo sin nada

objeto con el sprite cañón (el sprite apunta a la derecha, por el royo del angulo).
en su create:
tiempo = room_speed*10; //10 = segundos que tarda en terminarse el tiempo para que el jugador dispare;
angsp = 5; //velocidad demovimiento del cañón, el ida y vuelta ese que sale en el juego;
potencia = 0; //empieza con 0 luego ya se vera más;
potenciamax = 100; //el máximo de potencia que puede disparar;
dir = -1; //para que sepa hacia donde se va moviendo el cañón.
fase = 0; //fases del cañón, 0 será al elegir el angulo, 1 la potencia y 2 el disparo;
image_angle = 360; //esto lo pongo para no liarme luego poniendo numeros negativos, no tengo anas de pensar xd


en step:
if fase == 0
{
   if dir = -1 //el -1 indica que queremos que empieze yendo pa la izquierda el angulo
  {
      if image_angle <= 270 dir = 1; //si se pasa del grado 270, osea, recto arriba xd, pues cambia de direccion
      else image_angle -= angsp; //y si no, pues tira pa la izquierda el angulo que es a lo que iba xd
   }
   else
   {
      if image_angle >= 360 dir = -1; //pos lo contrario a lo anterior xd
      else image_angle += angsp; //recuerda en create esta variable, a más pongas más rapido girará xd
   }
}
else if fase == 1
{
   if dir = 1 //aprovechamos la misma variable pa indicar cuando sube y cuando baja la potencia :P
   {
      if potencia < potencia max potencia += 1 //1 o más si quieres que vaya más rápido, o puedes poner menos potenciamax, eso a tu lo vas probando xd;
      else dir = -1;
   }
   else
   {
      if potencia > 0 potencia -= 1; //lo mismo que antes;
      else dir = 1;
   }
}
else
{
   if !instance_exists(objeto_bola)
   {
      bola = instance_create(x,y,objeto_bola); //metemos la creacion en una variable para poder darle lo elegido, luego en otros eventos, antes de que sea la fase 2, se le pondran bien las variables;
      bola.speed = potencia;
      bola.direction = image_angle;
   }
}


en el click o donde te plazca... vigila no pongas uno que al mantener siga todo, pon los pressed esos como se digan xd
if fase < 2 fase += 1; //las variables que usas para la bola de image_angle y potencia, al cambiar de fase se quedarán como quedaron y al ultimo click, a la fase 2 se ponen a la bola tal y como quedaron :)


al objeto_bola...
en step:
gravity = 1; //esto, pues eso, que lo calibres tu, que asi yo a ojo, seguro que nada encaja xd, la bola saldra disparada a saber que velocidad xd, en la misma direccion que el ángulo del cañón y al añadirle gravedad, irá bajando
image_angle = direction; //esto ponlo si el sprite que use, te interese que miere alante siempre según cae :)


Y bueno... el tubo de la potencia, no tienes más que usar un draw_healthbar mismo, usando de variable la potencia. si te lias con eso, preguntalo y ya si eso te respondo mañana xd, joer que sueño xd
Título: Re:Hacer un cañon???
Publicado por: pacne en Octubre 29, 2014, 07:17:36 PM
Jajajaja, que bueno. lo he probado asi rapido y es mas lo que buscaba. muchas gracias. Si necesitas algo me dices, te debo una.