Muy buenas,
resulta que estoy con mi "aprendizaje" particular en este mundillo, y uno de mis ejercicios consiste en un RPG de lucha por turnos. Algo sencillote, no os vayáis a pensar xD.
El problema me viene en los cálculos de daño.Mi idea es mostrarlos en pantalla, pero usando sprites en lugar de números. Me explico:
-A ataca de alguna manera a B.
-B recibe un daño.
-El daño se representa en pantalla numéricamente.
Ahora, si tengo los sprites del 0 al 9, y pretendo que se escriban de manera que indiquen el daño, me encuentro con un problema. Supongamos que el daño es 132. En teoría, habría que dividir el nº en centenas, decenas y unidades, o sea, dejar 100, 30 y 2. Luego con unos cuantos if, sería:
if(centenas==100) { PA_CreateSprite(lo que sea, x, y); //Se crea el sprite PA_SetSpriteAnim(frame 1); //Se pone el frame que indica el 1 } if(decenas==30) { PA_CreateSprite(lo que sea, x+1, y); PA_SetSpriteAnim(frame 3); //Se pone el frame que indica el 3 } if(unidades==2) { PA_CreateSprite(lo que sea, x+2, y); PA_SetSpriteAnim(frame 2); //Se pone el frame que indica el 2 }
Esa era mi idea. Ahora viene la pregunta: ¿Cómo consigo separar el número en centenas, decenas y unidades? ^^U No sé si es posible de alguna manera (con alguna ecuación o algo) La verdad es que estoy un poco perdido, y no me voy a poner a crear sobre 200 frames para 200 cifras...
¿Algún truquito que me pueda ayudar? Lo agradecería... ^^U
Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderás trucos para resolver tus dudas antes.
Habria que crear 10 frames,
Habria que crear 10 frames, nada mas.
Yo lo haria asi:
Ya me cuentas como te ha ido y tal...
Saludos!
Mi creacciónes particulares:
http://www.scenebeta.com/noticia/la-serpiente
http://www.scenebeta.com/node/22535
Ahi tienes para dividir el
Ahi tienes para dividir el número en cifras...
gracias crak!
esto me ha venido muy bien para los nunmeros de una cuenta atras con sprites ^^
yo creo que lo correcto
yo creo que lo correcto seria, hacer el calculo del daño numericamente, y obtienes 132, como ya creo que haces, luego lo convertiria a cadena y mostraria en pantalla segun la posicion del vector char.
por ejemplo:
char cadDanno[5]="xxxxx"; //cadena de cinco numeros (0-99999)
sprintf(cadDanno,"%d", intDanno); //se convierte el numero en cadena
for(int i=0;i<5;i++){ //para cada elemento de cadDaño
if(cadDanno[i] != 'x'){
PA_CreateSprite(sprite,loquesea, x+(anchoCaracter * i), y);
PA_SetSpriteAnim(sprite,frame1+cadDanno[i]); //Teniendo en cuenta que frame1 es la primera animacion
}
}
Imagino que algo asi funcionaria. ¿Tu que crees?
Saludos!
EDITO EL CODIGO. no esta probado pero creo que van por ahí los tiros.
Visita mi blog. Zenit + 5 will win