2010-11-05 21 views
2

En utilisant CeeBot, je n'ai pas trouvé un moyen d'obtenir l'angle d'inclinaison d'un robot. Par exemple, si le robot doit tirer sur un ennemi, il doit changer l'angle du canon pour viser l'ennemi.CeeBot: obtenir l'inclinaison du robot

Mais si le robot n'est pas sur un terrain plat, mais sur une pente raide, l'angle du canon devra prendre en compte l'angle du raide.

Est-il possible de connaître cet angle?

Répondre

1

Vous recherchez la valeur "pitch" de votre robot.

Par exemple, ce segment de code relativement simple trouve le plus proche TargetBot et utilise alors la valeur de hauteur, plus quelques trigonométrie de base pour nourrir la valeur correcte en vue()

//our variables 
object KillMe; 
float range; 
float ZDif; 
float absoluteElevation; 
float correctedElevation; 


//calculate the angle we need to adjust our cannon 
range = distance(this.position, KillMe.position); 
absoluteElevation = atan((KillMe.position.z - position.z)/distance(this.position,KillMe.position)); 
correctedElevation = absoluteElevation - pitch; 

aim(correctedElevation); 
fire(0.1); 

De toute évidence, il ne prend pas en compte les élévations min/max pour l'arme de bot particulière que vous utilisez, ou la portée min-max de celle-ci.