Comunidad de diseño web y desarrollo en internet online

tutorial coches de carreras problema en el capitulo 2

Citar            
MensajeEscrito el 05 Jun 2009 10:05 am
Hola, primero agradecer el tutorial ya que es bastante entretenido en cuanto a gente que no sabemos mucho de script jeje.

el problema lo tengo a la hora de acoplar el codigo del capitulo dos
//Colisión contra las paredes
//Derecha etc,...

dentro del evento onClipEvent (enterframe) "parte final"

ej:

Código ActionScript :

//Colisión contra las paredes
//Derecha
if (_parent._x>880) {
   _parent._x = 880;
   if (_root.speeda>0) {
      _root.speeda--;
   } else {
      _root.speeda++;
   }
}
//Izquierda
if (_parent._x<20) {
   _parent._x = 20;
   if (_root.speeda>0) {
      _root.speeda--;
   } else {
      _root.speeda++;
   }
}
//Abajo
if (_parent._y>880) {
   _parent._y = 880;
   if (_root.speeda>0) {
      _root.speeda--;
   } else {
      _root.speeda++;
   }
}
//Arriba
if (_parent._y<20) {
   _parent._y = 20;
   if (_root.speeda>0) {
      _root.speeda--;
   } else {
      _root.speeda++;
   }
}


dentro de

Código ActionScript :

onClipEvent (enterFrame) {
//determinar velocidades maximas
if (speed<-10) {
speed += Number(.3);
}
if (speed>15) {
speed -= .1;
}
//disminuir la velocidad si no se esta acelerando
if (!Key.isDown(Key.UP) && !Key.isDown(Key.DOWN)) {
speed *= .98;
}
//cuando la velocidad esta por debajo de 0.1 y mas de -0.1 se convierte en 0
if (speed<.1 && speed>-.1) {
speed = 0;
}
//acelerar
if (Key.isDown(Key.UP)) {
if (speed<-1) {//aceleracion extra si venis en reversa
speed -= (speed/3);
} else {//aceleracion normal
speed += Number(.1);
}
}
if (Key.isDown(Key.DOWN)) {//frenado y reversa
speed -= .3;
}
if (Key.isDown(Key.LEFT)) {//rotacion
if (speed != 0) {//si no hay velocidad, no se puede girar
_rotation -= 2;
}
}
if (Key.isDown(Key.RIGHT)) {
if (speed != 0) {
_rotation += 2;
}
}
this._x += Math.sin(_rotation*(Math.PI/180))*speed;//formulas de avance
this._y += Math.cos(_rotation*(Math.PI/180))*speed*-1;
}


tema que me da a entender que logicamente tendria que quedar asi el codigo completo:

Código ActionScript :

onClipEvent (load) {
speed = 0;
}
onClipEvent (enterFrame) {
//determinar velocidades maximas
if (speed<-10) {
speed += Number(.3);
}
if (speed>15) {
speed -= .1;
}
//disminuir la velocidad si no se esta acelerando
if (!Key.isDown(Key.UP) && !Key.isDown(Key.DOWN)) {
speed *= .98;
}
//cuando la velocidad esta por debajo de 0.1 y mas de -0.1 se convierte en 0
if (speed<.1 && speed>-.1) {
speed = 0;
}
//acelerar
if (Key.isDown(Key.UP)) {
if (speed<-1) {//aceleracion extra si venis en reversa
speed -= (speed/3);
} else {//aceleracion normal
speed += Number(.1);
}
}
if (Key.isDown(Key.DOWN)) {//frenado y reversa
speed -= .3;
}
if (Key.isDown(Key.LEFT)) {//rotacion
if (speed != 0) {//si no hay velocidad, no se puede girar
_rotation -= 2;
}
}
if (Key.isDown(Key.RIGHT)) {
if (speed != 0) {
_rotation += 2;
}
}
this._x += Math.sin(_rotation*(Math.PI/180))*speed;//formulas de avance
this._y += Math.cos(_rotation*(Math.PI/180))*speed*-1;
}
//Colisión contra las paredes
//Derecha
if (_parent._x>880) {
   _parent._x = 880;
   if (_root.speeda>0) {
      _root.speeda--;
   } else {
      _root.speeda++;
   }
}
//Izquierda
if (_parent._x<20) {
   _parent._x = 20;
   if (_root.speeda>0) {
      _root.speeda--;
   } else {
      _root.speeda++;
   }
}
//Abajo
if (_parent._y>880) {
   _parent._y = 880;
   if (_root.speeda>0) {
      _root.speeda--;
   } else {
      _root.speeda++;
   }
}
//Arriba
if (_parent._y<20) {
   _parent._y = 20;
   if (_root.speeda>0) {
      _root.speeda--;
   } else {
      _root.speeda++;
   }
}


pero no se como diablos "y disculpad mi ignorancia" las 4 declaraciones que me dan error aparezcan dentro del controlador onClipEvent.


Código :

**Error** Escena=Escena 1, capa=Capa 1, fotograma=1:Línea 46: La declaración debe aparecer dentro del controlador on/onClipEvent
     if (_parent._x>880) {

**Error** Escena=Escena 1, capa=Capa 1, fotograma=1:Línea 55: La declaración debe aparecer dentro del controlador on/onClipEvent
     if (_parent._x<20) {

**Error** Escena=Escena 1, capa=Capa 1, fotograma=1:Línea 64: La declaración debe aparecer dentro del controlador on/onClipEvent
     if (_parent._y>880) {

**Error** Escena=Escena 1, capa=Capa 1, fotograma=1:Línea 73: La declaración debe aparecer dentro del controlador on/onClipEvent
     if (_parent._y<20) {



gracias por la ayuda, la verdad que no encuentro manera de arreglarlo.

Por anzio

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Jun 2009 12:03 pm
Te comiste todas las identaciones, pero por ejemplo esa llave que ves aquí:

}
//Colisión contra las paredes
//Derecha

Pásala al final de todo. Luego también pon un link al tutorial

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 05 Jun 2009 06:59 pm

solisarg escribió:

Te comiste todas las identaciones, pero por ejemplo esa llave que ves aquí:

}
//Colisión contra las paredes
//Derecha

Pásala al final de todo. Luego también pon un link al tutorial

Jorge


hola, gracias por la respuesta el link es este juego de carreras de coches

todabia no entiendo realmente lo que me quieres decir con que me comi todas las identificaciones, me lo podrias explicar un poquillo mas sencillo? perdona enserio pero esque no te acabo de entender ya que en teoria si hago lo que entiendo que dices se me reducen los errores a 2 que segun entiendo es eliminar "} " de

Código ActionScript :

this._y += Math.cos(_rotation*(Math.PI/180))*speed*-1;
}
//Colisión contra las paredes
//Derecha
if (_parent._x>880) {


Código ActionScript :

**Error** Escena=Escena 1, capa=Capa 1, fotograma=1:Línea 4: El bloque de declaración debe finalizar con '}'
     onClipEvent (enterFrame) {

**Error** Escena=Escena 1, capa=Capa 1, fotograma=1:Línea 80: Error de sintaxis.
     }

Total de errores de ActionScript: 2     Errores comunicados: 2


intento borrar el error de sintaxis pero no hay manera, me vuelve a dar error, estoy mirando en varios tutoriales sobre action script pero ninguno me resuelve la duda del error,... gracias.

Por anzio

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Jun 2009 07:15 pm
Ok amigo, copia y pega:

Código ActionScript :

onClipEvent (enterFrame) {
   // Primer IF, incremento y decremento del giro
   if (_root.speeda>0 || _root.speeda<0) {
      if (Key.isDown(Key.RIGHT)) {
         _root.angleclav1 = 4;
      } else if (Key.isDown(Key.LEFT)) {
         _root.angleclav1 = -4;
      }
   }
   //Segundo IF,velocidad y desaceleracion en la marcha adelante 
   if (Key.isDown(Key.UP)) {
      if (_root.speeda<8) {
         _root.speeda += 0.5;
      }
   } else {
      if (_root.speeda>0) {
         _root.speeda -= 0.1;
         if (_root.speeda<0.5) {
            _root.speeda = 0;
         }
      }
   }
   //Tercer IF,velocidad y desaceleracion en la marcha atras
   if (Key.isDown(Key.DOWN)) {
      if (_root.speeda>-4) {
         _root.speeda--;
      }
   } else {
      if (_root.speeda<0) {
         _root.speeda = _root.speeda+0.1;
         if (_root.speeda>0.5) {
            _root.speed1 = 0;
         }
      }
   }
   _root.angle1 += _root.angleclav1;
   _root.angleclav1 = 0;
   //Colisión contra las paredes
   //Derecha
   if (_parent._x>880) {
      _parent._x = 880;
      if (_root.speeda>0) {
         _root.speeda--;
      } else {
         _root.speeda++;
      }
   }
   //Izquierda 
   if (_parent._x<20) {
      _parent._x = 20;
      if (_root.speeda>0) {
         _root.speeda--;
      } else {
         _root.speeda++;
      }
   }
   //Abajo 
   if (_parent._y>880) {
      _parent._y = 880;
      if (_root.speeda>0) {
         _root.speeda--;
      } else {
         _root.speeda++;
      }
   }
   //Arriba 
   if (_parent._y<20) {
      _parent._y = 20;
      if (_root.speeda>0) {
         _root.speeda--;
      } else {
         _root.speeda++;
      }
   }
}


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 05 Jun 2009 07:24 pm
a valee digamos que la estructura } no la tenia bien organizada por lo que me has dado a entender en el codigo que pusiste no? me a quedado mas claro al ver las posiciones de los " } " gracias y perdona por las molestias, no era mi intencion hacer un copy+paste si no de aprender del error gracias de todas formas ya que lo e visto bastante claro.

Por anzio

6 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.