En mi juego, cuando pierdes, te lleva a una room en la que tengo este código:
global.record=score
draw_self()
draw_text(250,120,"Score: "+string(score))
if(score==global.record) draw_text(250,200,"Best: "+string(score))
else draw_text(250,200,"Best: "+string(global.record))

Mi intención es que salga la puntuación de esa partida y que si bates el récord, abajo ponga Best:(puntuación), y si no lo bates, que ponga Best:(récord).
Mi problema es que en "Best", nunca sale el récord "histórico", sólo sale la puntuación.
¿Me podríais ayudar con esto, por favor?

#1 Agosto 23, 2015, 06:39:27 PM Ultima modificación: Agosto 23, 2015, 06:48:28 PM por Guacusio
Al hacer global.record=score obligas a la condición del if de abajo a que siempre se cumpla, por eso siempre te muestra Best (score). Prueba lo siguiente:

draw_self()
draw_text(250,120,"Score: "+string(score))
if(score>=global.record) draw_text(250,200,"Best: "+string(score))
else draw_text(250,200,"Best: "+string(global.record))


tampoco es la manera más eficiente para hacer algo así (deberías comprobar si se bate el récord una sola vez en otro evento en vez de hacerlo permanentemente en draw). Lo que yo haría sería:

En un evento anterior:
global.record=max(global.record,score);
score_text="Score: "+string(score);
record_text="Best: "+string(global.record);


En Draw:
draw_self();
draw_text(250,120,score_text);
draw_text(250,200,record_text);


Cita de: Guacusio en Agosto 23, 2015, 06:39:27 PM
Al hacer global.record=score obligas a la condición del if de abajo a que siempre se cumpla, por eso siempre te muestra Best (score). Prueba lo siguiente:

draw_self()
draw_text(250,120,"Score: "+string(score))
if(score>=global.record) draw_text(250,200,"Best: "+string(score))
else draw_text(250,200,"Best: "+string(global.record))


tampoco es la manera más eficiente para hacer algo así (deberías comprobar si se bate el récord una sola vez en otro evento en vez de hacerlo permanentemente en draw). Lo que yo haría sería:

En un evento anterior:
global.record=max(global.record,score);
score_text="Score: "+string(score);
record_text="Best: "+string(global.record);


En Draw:
draw_self();
draw_text(250,120,score_text);
draw_text(250,200,record_text);


Muchas gracias y perdón por las molestias, pero no me han servido ninguna de las dos formas :(

¿Nada ha funcionado?
Te recuerdo una cosa: game_restart() y game_en() resetea las variables globales. ¿Como lo haces para guardar el récord?