Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- getTargets: function() {
- targets = [], minDistance = 1000, nearestTarget = null;
- targets = ig.game.getEntitiesByType(EntityBaseEnemy);
- for (var i = 0, len = targets.length; i < len; i++){
- var target = targets[i];
- if (minDistance > this.distanceTo(target)){
- nearestTarget = target;
- }
- }
- var angle = this.angleTo( nearestTarget );
- this.vel.x = Math.cos( angle ) * this.speed;
- this.vel.y = Math.sin( angle ) * this.speed;
- this.currentAnim.angle += (angle - this.currentAnim.angle) * this.turnFactor;
- },
- distanceTo: function( other ) {
- var xd = (this.pos.x + this.size.x/2) - (other.pos.x + other.size.x/2);
- var yd = (this.pos.y + this.size.y/2) - (other.pos.y + other.size.y/2);
- return Math.sqrt( xd*xd + yd*yd );
- },
- angleTo: function( other ) {
- return Math.atan2(
- (other.pos.y + other.size.y/2) - (this.pos.y + this.size.y/2),
- (other.pos.x + other.size.x/2) - (this.pos.x + this.size.x/2)
- );
- },
- getEntitiesByType: function (type) {
- var entityClass = typeof (type) === 'string'
- ? ig.global[type]
- : type;
- var a = [];
- for (var i = 0; i < this.entities.length; i++) {
- var ent = this.entities[i];
- if (ent instanceof entityClass && !ent._killed) {
- a.push(ent);
- }
- }
- return a;
- },
RAW Paste Data