Hola, tengo un problema ya que estoy usando un ciclo FOR para dibujar un sprite por cada nivel de mi juego pero los sprites al llegar al nivel 12 exceden la view y me gustaria saber como le puedo hacer para que al pasar esto dibuje los sprites a la derecha de los otros, volviendo a empezar desde arriba.
Aqui les dejo como lo estoy haciendo:
[gml]var i;
for (i=0; i<obj_nivel.nivel_desbl; i+=1)
{
if i = opcion-1
{
draw_sprite(spr_nivel,-1,view_xview+50,view_yview+25+30*i);
}
else
{
draw_sprite(spr_nivel2,-1,view_xview+50,view_yview+25+30*i);
}
}[/gml]
se me ocurre que crees un objeto que sea la barra de la derecha y en el room le pones que la siga, entonces al bajar com las flechas o como le hagas que tambien baje y puedas ver los otros botones :D
Hola debes usar dos for pero antes que eso, debes calcular el n?mero de veces m?ximo que cabe el sprite en la altura de la view:
Primero necesitamos una variable que contenga el numero de niveles desbloqueados ejemplo n=12
Despu?s tenemos que calcular cuantas veces cabe el sprite en la altura de la view, por ejemplo:
ny=view_hview[0] div sprite_get_height(sprite0)
Luego tenemos que dividir el numero de niveles desbloqueados entre el numero de veces que cabe el sprite en la altura de la view
nx=n div ny
Despu?s como el numero de niveles desbloqueados no siempre ser? m?ltiplo exacto del numero de veces que cabe el sprite en el alto de la view. Calculamos el residuo
nr= n mod ny
Ahora utilizando dos for en draw ya se dibujaran a la derecha si exceden la view
for(i=0;i<=nx;i+=1)
{
if i=nx and nr!=0 nny=nr else nny=ny// en todas las columnas a excepci?n de la ultima se dibujara el numero m?ximo de veces que quepa el sprite en la altura de la view
for(j=0;j<nny;j+=1)
draw_sprite(sprite0,-1,view_xview[0]+i*sprite_get_width(sprite0),view_yview[0]+j*sprite_get_height(sprite0))
}
saludos ;) anexo el ejemplo
gracias por la ayuda. ya dibuja todos los sprites que ocupo pero todavia no puedo hacer que se pueda escoger uno para ir a un nivel. te dejo el ejemplo
solo hab?a que modificar una l?nea y bueno agregue lo de llevarte a los niveles saludos p34 :D
Cita de: licshendu en Abril 03, 2011, 01:14:57 AM
solo hab?a que modificar una l?nea y bueno agregue lo de llevarte a los niveles saludos p34 :D
Gracias de verdad, no tenia la mas minima idea de como lograrlo y tu me lo resolviste :D