protected abstract bool CollideCircle(CircleCollider other, out CollisionData data);
 protected override bool CollideCircle(CircleCollider other, out CollisionData data)
 {
     // TODO: check collision
     data = new CollisionData(Vector2.Zero);
     return false;
 }