Buenashh! Cómo puedo hacer un círculo que indica, por ejemplo, la vida: un circulo lleno es el 100% de la vida, y que se vaya reduciendo como las agujas de un reloj, quedando como una pizza a la que le vas quitando trozos triangulares, a medida que baja. El uso que le daré será tiempo restante: al usar una habilidad aparece un círculo sobre ella, el círculo se llena, y se va restando de esta manera hasta llegar al 0, indicando que la habilidad podrá volver a usarse.
Lo que se me ocurre es que podrías hacer un círculo dibujado simplemente con líneas que varían de ángulo. El problema es que quedarían espacios mal dibujados. Si no la otra es hacerlo con sprite he ir cambiando la sub imagen.
hacer un círculo dibujado simplemente con líneas que varían de ángulo... eso implicaría dibujar 360 líneas... lo puedo probar pero no sé si será eficiente, y seguramente queden huecos, como dices D:
lo de las subimágenes ya lo intenté una vez.. debería hacer MUCHAS para que quedara bien y aún así quedaba mal... prefiero una manera eficiente sin tener que hacer 360 subimágenes...
Bien, tenés el draw_sprite_part que es para eso, y si no querés usar una sprite podés generar una surface con el círculo deseado y hacer un draw_surface_part
No veo cómo el draw part hace lo que quiero... no quiero dibujar parte de un sprite (eso sólo permite coger una parte cuadrada) sino un círculo que se va comiendo poco a poco como si fuéramos arrancando pequeños pedazos triangulares de una pizza.
Acá estuve echando una miradita por GMC y encontré estos scripts:
http://gmc.yoyogames.com/index.php?showtopic=419425
Lo probé y es justo lo que queres (creo, espero no haber entendido mal xD).
[EDIT]
Te lo dejo adjunto, ya que lo hice, lo pongo xD
Gracias, creo que es el ejemplo que encontré y me hice un lío xD
luego encontré esto: http://yal.cc/gamemaker-circular-cooldown-rectangle/ y sólo puedo decir Resuelto =)
Ahhh, leí cualquier cosa. La función que posteó Iros parece algo pesada, me quedaría con la segunda, dibujando el cuadrado en negativo (con bm_subtract) sobre un círculo previamente dibujado en una surface