Skip to content

Instantly share code, notes, and snippets.

@maryrosecook
Created April 29, 2013 21:45
Show Gist options
  • Save maryrosecook/5485060 to your computer and use it in GitHub Desktop.
Save maryrosecook/5485060 to your computer and use it in GitHub Desktop.
var aliens = [{}, {}, {}];
var aliensCollidingWithPlayer = [];
for (var i = 0; i < aliens.length; i++) {
if(colliding(alien[i], player)) { // is colliding current tick
var collidingInPreviousTick = false;
for (var j = 0; j < aliensCollidingWithPlayer.length; j++) {
if (aliens[i] === aliensCollidingWithPlayer[j]) {
collidingInPreviousTick = true;
break;
}
}
if (!collidingInPreviousTick) {
// know that this is the first tick where we were colliding
player.health -= 1;
aliensCollidingWithPlayer.push(alien[i]);
}
} else { // not colliding in current tick
var collidingInPreviousTick = false;
for (var j = 0; j < aliensCollidingWithPlayer.length; j++) {
if (aliens[i] === aliensCollidingWithPlayer[j]) {
aliensCollidingWithPlayer.splice(i, 1);
break;
}
}
}
}
//------------------------------------------------
[a, b c]
a a
b b
c c
collision: function(otherObject) {
if (otherObject instanceof Alien) {
//
} else if(otherObject instanceof Pawerup) {
//
}
}
var objects = [{}, {}, {}];
var objectCollisions = [[obj1, obj2]];
var collisionRegisteredInPreviousTick = function(obj1, obj2) {
var collidingInPreviousTick = false;
for (var j = 0; j < objectCollisions.length; j++) {
if ((obj1 === objectCollisions[i][0] && obj2 === objectCollisions[i][1])) {
return true;
}
}
return false;
};
for (var i = 0; i < objects.length; i++) {
for (var j = i; i < objects.length; i++) {
if (objects[i] !== objects[j]) {
if(colliding(objects[i], objects[j])) { // is colliding current tick
if (!collisionRegisteredInPreviousTick()) {
if (object[i].colliding !== undefined) {
object[i].colliding(object[j]);
}
if (object[i].colliding !== undefined) {
object[j].colliding(object[i]);
}
}
} else { // not colliding in current tick
if (collisionRegisteredInPreviousTick()) {
if (object[i].uncolliding !== undefined) {
object[i].uncolliding(object[j]);
}
if (object[i].uncolliding !== undefined) {
object[j].uncolliding(object[i]);
}
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment