Buenas gentes,
Estoy desarrollando un juego de navecitas y tengo un problema. El juego dispone de un menu con 4 opciones New Game, Highscores, multiplayer y credits, el problema es el siguiente:
Al entrar en la room que corresponde a HighScores salir y empezar una partida nueva no se visualiza correctamente la puntuación, no solo se desplaza si no que no se suman puntos es raro por que no tengo nada que me haga pensar que el código esta mal. Os expongo el código que interviene:
En la room en la que se inicia la nueva partida tengo un objeto llamado sistema que contiene un evento draw y pinta lo siguiente:
draw_set_font(ScoreFont1)
draw_text_color(x+10,y-19,"Score: " + string(score),c_red,c_red,c_red,c_red,1)
draw_text_color(x+11,y-20,"Score: " + string(score),c_white,c_white,c_white,c_white,1)
Hasta aquí todo bien ya que si inicias una partida sin pasar por los HighScores todo funciona correctamente
En la room Highscores tengo un objeto llamado highScoresObject que cuando se crea lee un archivo ini para ver las puntuaciones de la siguiente manera:
ini_open("scores.ini");
score1n = ini_read_string("puntuaciones", "1n", false);
score1 = ini_read_real("puntuaciones", "1", false);
score2n = ini_read_string("puntuaciones", "2n", false);
score2 = ini_read_real("puntuaciones", "2", false);
score3n = ini_read_string("puntuaciones", "3n", false);
score3 = ini_read_real("puntuaciones", "3", false);
score4n = ini_read_string("puntuaciones", "4n", false);
score4 = ini_read_real("puntuaciones", "4", false);
score5n = ini_read_string("puntuaciones", "5n", false);
score5 = ini_read_real("puntuaciones", "5", false);
score6n = ini_read_string("puntuaciones", "6n", false);
score6 = ini_read_real("puntuaciones", "6", false);
score7n = ini_read_string("puntuaciones", "7n", false);
score7 = ini_read_real("puntuaciones", "7", false);
score8n = ini_read_string("puntuaciones", "8n", false);
score8 = ini_read_real("puntuaciones", "8", false);
score9n = ini_read_string("puntuaciones", "9n", false);
score9 = ini_read_real("puntuaciones", "9", false);
score10n = ini_read_string("puntuaciones", "10n", false);
score10 = ini_read_real("puntuaciones", "10", false);
ini_close ();
Y en el evento pintar dibuja lo siguiente:
draw_set_font(textFont1);//escogemos la fuente...
draw_set_halign(fa_left)
draw_text_color(x+70,y+60,"1.",c_red,c_red,c_red,c_red,1)
draw_text_color(x+105,y+60,string(score1n),c_red,c_red,c_red,c_red,1)
draw_set_halign(fa_right)
draw_text_color(x+430,y+60,string(score1),c_red,c_red,c_red,c_red,1)
draw_set_halign(fa_left)
draw_text_color(x+70,y+90,"2.",c_white,c_white,c_white,c_white,1)
draw_text_color(x+105,y+90,string(score2n),c_white,c_white,c_white,c_white,1)
draw_set_halign(fa_right)
draw_text_color(x+430,y+90,string(score2),c_white,c_white,c_white,c_white,1)
draw_set_halign(fa_left)
draw_text_color(x+70,y+120,"3.",c_white,c_white,c_white,c_white,1)
draw_text_color(x+105,y+120,string(score3n),c_white,c_white,c_white,c_white,1)
draw_set_halign(fa_right)
draw_text_color(x+430,y+120,string(score3),c_white,c_white,c_white,c_white,1)
draw_set_halign(fa_left)
draw_text_color(x+70,y+150,"4.",c_white,c_white,c_white,c_white,1)
draw_text_color(x+105,y+150,string(score4n),c_white,c_white,c_white,c_white,1)
draw_set_halign(fa_right)
draw_text_color(x+430,y+150,string(score4),c_white,c_white,c_white,c_white,1)
draw_set_halign(fa_left)
draw_text_color(x+70,y+180,"5.",c_white,c_white,c_white,c_white,1)
draw_text_color(x+105,y+180,string(score5n),c_white,c_white,c_white,c_white,1)
draw_set_halign(fa_right)
draw_text_color(x+430,y+180,string(score5),c_white,c_white,c_white,c_white,1)
draw_set_halign(fa_left)
draw_text_color(x+70,y+210,"6.",c_white,c_white,c_white,c_white,1)
draw_text_color(x+105,y+210,string(score6n),c_white,c_white,c_white,c_white,1)
draw_set_halign(fa_right)
draw_text_color(x+430,y+210,string(score6),c_white,c_white,c_white,c_white,1)
draw_set_halign(fa_left)
draw_text_color(x+70,y+240,"7.",c_white,c_white,c_white,c_white,1)
draw_text_color(x+105,y+240,string(score7n),c_white,c_white,c_white,c_white,1)
draw_set_halign(fa_right)
draw_text_color(x+430,y+240,string(score7),c_white,c_white,c_white,c_white,1)
draw_set_halign(fa_left)
draw_text_color(x+70,y+270,"8.",c_white,c_white,c_white,c_white,1)
draw_text_color(x+105,y+270,string(score8n),c_white,c_white,c_white,c_white,1)
draw_set_halign(fa_right)
draw_text_color(x+430,y+270,string(score8),c_white,c_white,c_white,c_white,1)
draw_set_halign(fa_left)
draw_text_color(x+70,y+300,"9.",c_white,c_white,c_white,c_white,1)
draw_text_color(x+105,y+300,string(score9n),c_white,c_white,c_white,c_white,1)
draw_set_halign(fa_right)
draw_text_color(x+430,y+300,string(score9),c_white,c_white,c_white,c_white,1)
draw_set_halign(fa_left)
draw_text_color(x+60,y+330,"10.",c_white,c_white,c_white,c_white,1)
draw_text_color(x+105,y+330,string(score10n),c_white,c_white,c_white,c_white,1)
draw_set_halign(fa_right)
draw_text_color(x+430,y+330,string(score10),c_white,c_white,c_white,c_white,1)
Bueno el caso es ese, si no pasas por la pantalla highscores la cosa funciona perfectamente, en cuanto vas a la pantalla highscore deja de funcionar el score en la partida ¿por que? pues no tengo ni idea a ver si alguien me puede exar una manita, os dejo la url para ver el juego con el navegador y que veais el comportamiento:
http://fxartedigital.com/juego/
Gracias de antemano
revisa las variables en modo debuger osea con el triangulo rojo, ahi veras la falla.
Gracias Elvis,
por tu recomendación ahora se que no es que se quede en cero el score y no funcione, ya que la variable sigigue sumando en el modo debug, el problema es que tras pasar por la pantalla de highScores el marcador de puntuación se pinta en otro lugar, pero no se por que. Habrá que seguir investigando
Tema Cerrado.
Preguntas y respuestas: qué es y cómo funciona - Leer antes de postear (http://www.comunidadgm.org/index.php?topic=18.0)