Parecia facil XD..
Ya lo tengo, para el FORWARD que es el primer modo de desplazamiento ya esta conseguido..
Tio son 4 modos internos de programarlo XD.. con o sin rotacion, y dentro de esas dos, con o sin cuerpo fisico.. para que todo quede abstraido al programador tela marinera jajaja..
tenenseño el codigo preliminar del modo FORWARD..
[Codebox=javascript file=Untitled.js]move(type_){
switch(type_){
case FORWARD:
switch(this.fst){
case 0:
if(!this.rotation){
var angle = _id_actual_sprite_runing_.getAngle(this.points[this.pos].x, this.points[this.pos].y);
_id_actual_sprite_runing_.advance2(this.vel, angle);
} else{
var angle = _id_actual_sprite_runing_.getAngle(this.points[this.pos].x, this.points[this.pos].y);
if(_id_actual_sprite_runing_.body_created){
_id_actual_sprite_runing_.setAngle(angle);
_id_actual_sprite_runing_.advance2(this.vel, angle);
} else{
_id_actual_sprite_runing_.angle = angle;
_id_actual_sprite_runing_.advance(this.vel);
}
}
var d = dist(_id_actual_sprite_runing_.x, _id_actual_sprite_runing_.y, this.points[this.pos].x, this.points[this.pos].y);
if(d <= this.lastDist){
this.lastDist = d;
} else{
if(_id_actual_sprite_runing_.body_created){
_id_actual_sprite_runing_.translate(this.points[this.pos].x, this.points[this.pos].y);
} else{
_id_actual_sprite_runing_.x = this.points[this.pos].x;
_id_actual_sprite_runing_.y = this.points[this.pos].y;
}
this.lastDist = 999999999999;
this.fst = 10;
}
return false;
break;
case 10:
if(this.pos+1 < this.points.length){
this.pos ++;
this.fst = 0;
return false;
} else{
return true;
}
break;
}
break;[/Codebox]
Vale.. el codigo es bastante feo.. pero funciona bien jeje.. haber si termino los 3 modos restantes y lo publico y pasamos a los nivels
