Skip to content

Instantly share code, notes, and snippets.

@samelinux
Forked from yuyi/robot.js
Created December 7, 2012 08:06
Show Gist options
  • Select an option

  • Save samelinux/4231647 to your computer and use it in GitHub Desktop.

Select an option

Save samelinux/4231647 to your computer and use it in GitHub Desktop.
OPENROBOT
var Robot = function(robot) {
robot.rotateCannon(-90);
};
var x_target = -1;
var y_target = -1;
Robot.prototype.onIdle = function(ev) {
var robot = ev.robot;
robot.ahead();
//robot.rotateCannon(-0.0005);
//i'll add a clone but i need to refactor collision
//robot.clone();
if(x_target == -1)
{
x_target = robot.arenaWidth / 2;
y_target = robot.arenaHeight / 2;
}
var x = robot.position.x;
var y = robot.position.y;
var dx = x_target - x;
var dy = y_target - y;
var pi = 3.1415927;
var deg = Math.atan2(dy,dx)*360/2/pi+180;
var ddeg = (deg-robot.cannonAbsoluteAngle+180 + 360*10)%360-180;
robot.rotateCannon(ddeg);
//if (ddeg > 10 || ddeg < 10)
//console.log(ddeg,x,x_target,y,robot.cannonAbsoluteAngle);
};
Robot.prototype.onScannedRobot = function(ev) {
var robot = ev.robot;
var scanned =ev.scannedRobot;
if(scanned.id !== robot.parentId && scanned.parentId !== robot.id) {
robot.fire();
//robot.rotateCannon(-10);
//robot.rotateCannon(15);
x_target = scanned.position.x;
y_target = scanned.position.y;
}else{
}
};
Robot.prototype.onHitByBullet = function(ev) {
var robot = ev.robot;
//robot.turn(ev.bearing); // Turn to wherever the bullet was fired
// so we can see who shot it
};
Robot.prototype.onRobotCollision = function(ev) {
var robot = ev.robot;
robot.rotateCannon(90);
};
Robot.prototype.onWallCollision = function(ev) {
var robot = ev.robot;
robot.turn(-90+ev.bearing);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment