Skip to content

Instantly share code, notes, and snippets.

@dardevelin
Created April 21, 2014 19:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dardevelin/11154432 to your computer and use it in GitHub Desktop.
Save dardevelin/11154432 to your computer and use it in GitHub Desktop.
var player = map.getPlayer();
var moveToward = function (obj, type) {
var target = obj.findNearest(type);
var leftDist = obj.getX() - target.x;
var upDist = obj.getY() - target.y;
var direction;
if (upDist == 0 && leftDist == 0) {
return;
} if (upDist > 0 && upDist >= leftDist) {
direction = 'up';
} else if (upDist < 0 && upDist < leftDist) {
direction = 'down';
} else if (leftDist > 0 && leftDist >= upDist) {
direction = 'left';
} else {
direction = 'right';
}
if (obj.canMove(direction)) {
obj.move(direction);
}
}
map.placeObject(map.getWidth()/2, map.getPlayer().getY(), 'block');
map.defineObject('bulletUp', {
'type': 'dynamic',
'symbol': '.',
'color': 'green',
'interval': 200,
'projectile': true,
'behavior': function (me) {
me.move('up');
}
});
map.defineObject('bulletRight', {
'type': 'dynamic',
'symbol': '.',
'color': 'green',
'interval': 200,
'projectile': true,
'behavior': function (me) {
me.move('right');
}
});
map.defineObject('bulletLeft', {
'type': 'dynamic',
'symbol': '.',
'color': 'green',
'interval': 200,
'projectile': true,
'behavior': function (me) {
me.move('left');
}
});
map.defineObject('attackDrone', {
'type': 'dynamic',
'symbol': 'd',
'color': 'green',
'interval': 200,
'onCollision': function (player) {
player.killedBy('an attack drone');
},
'behavior': function (me) {
moveToward(me, 'boss');
map.placeObject(me.getX(), me.getY()-2, 'bulletUp');
map.placeObject(me.getX()-1, me.getY(), 'bulletLeft');
map.placeObject(me.getX()+1, me.getY(), 'bulletRight');
}
});
player.setPhoneCallback(function(){
//map.placeObject(player.getX(), player.getY() -2, 'bullet2');
map.placeObject(player.getX(), player.getY() -2, 'attackDrone');
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment