bool circular(D& x, A a, P p) { D t = x; collision_point(x, a, p); if (p(x)) { a(x); return t == x; } return false; }
void collisions() { ////////////////////////////////////////// // Collisions ////////////////////////////////////////// colSolidLeft = false; colSolidRight = false; colLeft = false; colRight = false; colTop = false; colBot = false; colLadder = false; colPlatBot = false; colPlat = false; colWaterTop = false; colIceBot = false; runKey = false; if (isCollisionMoveableSolidLeft(1)) { colSolidLeft = true; } if (isCollisionMoveableSolidRight(1)) { colSolidRight = true; } if (isCollisionLeft(1)) { colLeft = true; } if (isCollisionRight(1)) { colRight = true; } if (isCollisionTop(1)) { colTop = true; } if (isCollisionBottom(1)) { colBot = true; } if (isCollisionLadder()) { colLadder = true; } if (isCollisionPlatformBottom(1)) { colPlatBot = true; } if (isCollisionPlatform()) { colPlat = true; } if (isCollisionWaterTop(1)) { colWaterTop = true; } if (collision_point(x, y + 8, oIce, 0, 0)) { colIceBot = true; } }
bool terminating(D& x, A a, P p) { // Precondition: p(x) ⇔ a(x) is defined collision_point(x, a, p); return !p(x); }