[LEFT PRESSED]
if personaje1=1 and personaje2=1 and personaje3=1
{
sprite_index = choose(per1,per2,per3);
}else{
if personaje1=1 and personaje2=1
{
sprite_index = choose(per1,per2);
}}else{
if personaje1=1 and personaje3=1
{
sprite_index = choose(per1,per3);
}}else{
if personaje2=1 and personaje3=1
{
sprite_index = choose(per2,per3);
}}else{
if personaje1=1
{
sprite_index = per1
}}else{
if personaje2=1
{
sprite_index = per2
}}else{
if personaje3=1
{
sprite_index = per3
}}
Las variables "personaje1, 2 y 3" son las que desbloquean al personaje (si estan en 0: el personaje esta bloqueado, si esta en 1 : el personaje esta desbloqueado).
La idea es hacer un botón "RANDOM" que escoja aleatoria mente pero solo si los personajes están desbloqueados.
Tal vez ese código no sea tan difícil pero es demasiado tardado y en mi juego son aproximadamente 15 personajes y me tardaría demasiado en hacerlo.
Intenta algo así.
var a = "",b = "",c= "";
if(personaje1 == 1){
a = per1;
}
if(personaje2 == 1){
b = per2;
}
if(personaje3 == 1){
c = per3;
}
sprite_index = choose(a,b,c);
En los If siempre se usan los 2 iguales, ya que estas preguntando, mientras que cuando usas solo 1 igual estas asignando un valor.
No se si te dejará inicializarlo así las variables, pruebalo y me cuentas, el tema es que lo que haces antes de realizar el choose y el asignamiento al valor del sprite_index, es hacer una pregunta a cada uno en caso de que sea cierto le asignas el sprite deseado y sino, se queda con un valor vació/nulo.
De esta forma lo que haces es "engañar" un poco, ya que cuando toque un valor nulo como el Sprite no existe no va a cambiar.
La otra posibilidad ya que vas a tener hasta 15 personajes es que vayas concatenando Strings en el Choose.
En un array almacenar todos los sprites y llamar al indice con el random
con un switch(personaje...) comparar los valores de cada uno y asignar el sprite segun el indice random. sprite_index=array[0]spr_lalalas
Si no comprendes pasa por el manual y leete sentencia switch
Y en el manual pasate por listas