Navegando por internet encontré el siguiente código de el juego del gusanito

Navegando por internet encontre el siguiente código de el juego del gusanito:
beginFill(0xeeeeee);
lineStyle(1);
lineTo(511, 0);
lineTo(511, 256);
lineTo(0, 256);
endFill();
createTextField ("t", 0, 0, 255, 125, 32);
t.text = "Snake Game\t-\tPress SPACE";
f=3;
l=1;
r=0;
m=createEmptyMovieClip( "a"+(f-1), f-1 );
onEnterFrame = function(){
if(Key.getCode()==32) {
onEnterFrame = function(){
if(Key.getCode()==37)r= Math.PI*-.5;
if(Key.getCode()==38)r= 0;
if(Key.getCode()==39)r= Math.PI*.5;
if(Key.getCode()==40)r= Math.PI;
duplicateMovieClip( "a"+(f-1), "a"+f, f );
_root["a"+f]._x += Math.sin(r)*8;
_root["a"+f]._y -= Math.cos(r)*8;
removeMovieClip( _root["a"+(f-l)] );
i=f-1;
while( i-- > f-l-1)
if( _root["a"+i].hitTest(_root["a"+(f-1)]._x,_root["a"+(f-1)]._y)
|| _root["a"+f]._x < 0 || _root["a"+f]._y < 0
|| _root["a"+f]._x > 504 || _root["a"+f]._y > 248){
l += " Juego acabado\t";
delete onEnterFrame;
}
if (b.hitTest(_root["a"+f]._x, _root["a"+f]._y)){
b._x = random(64)*8;
b._y = random(32)*8;
l++;l++;l++;l++;l++;
}
t.text = "Puntaje: " + l;
f++;
}
}
}
m._x = 20*8;
m._y = 8*8;
m.beginFill(0x555588);
m.lineTo(7, 0);
m.lineTo(7,7);
m.lineTo(0,7);
m.endFill();
m=createEmptyMovieClip( "b", 1 );
m._x = random(64)*8;
m._y = random(32)*8;
m.beginFill(0xff0000);
m.lineTo(7, 0);
m.lineTo(7,7);
m.lineTo(0,7);
m.endFill();
Mi duda es la siguiente y te agradeceria si fueras ten amable de contestarme. No entiendo el comportamiento de "i" en la sentencia while. Necesito por favor que me escribas al lado de cada renglón la funcion realizada con ejemplos de valores de "i" en la siguiene parte del codigo:
while( i-- > f-l-1)
if( _root["a"+i].hitTest(_root["a"+(f-1)]._x,_root["a"+(f-1)]._y)
|| _root["a"+f]._x < 0 || _root["a"+f]._y < 0
|| _root["a"+f]._x > 504 || _root["a"+f]._y > 248){
l += " Juego acabado\t";
delete onEnterFrame;
}

1 respuesta

Respuesta
1
while( i-- > f-l-1)
if( _root["a"+i].hitTest(_root["a"+(f-1)]._x,_root["a"+(f-1)]._y)
|| _root["a"+f]._x < 0 || _root["a"+f]._y < 0
|| _root["a"+f]._x > 504 || _root["a"+f]._y > 248){
l += " Juego acabado\t";
delete onEnterFrame;
}
antes de comenzar i = 2 y luego va disminuyendo
while( i-- > f-l-1)
if( _root["a"+i].hitTest(_root["a"+(f-1)]._x,_root["a"+(f-1)]._y)
Determina si existe una colosion en el entorno del movieclip "a"+i
|| _root["a"+f]._x < 0 || _root["a"+f]._y < 0
|| _root["a"+f]._x > 504 || _root["a"+f]._y > 248){
Al parecer si el movieclip se salió de la región
Por otra parte, creo que hay un error de sintáxis en el while, ¿pues no comienza nunca? ¿{ }

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas