public bool TryCollision(Tile t, Vector2 tileOffset, Vector2 testOffset, float angle) { if (!CollisionRect.isNear(cr, t.cr)) { return(false); } foreach (Tile myTile in tiles) { if (myTile.TryCollision(t, testOffset, tileOffset, angle)) { return(true); } } return(false); }
public bool TryCollision(Actor act, Vector2 offsetActor, Vector2 globalOffset) { if (!CollisionRect.isNear(cr, act.cr)) { return(false); } foreach (Tile t in act.tiles) { if (TryCollision(t, act.position + offsetActor + globalOffset, position + globalOffset, act.angle)) { return(true); } } return(false); }
public bool Collision(Actor act, Vector2 offset) { foreach (Tile t in data) { if (CollisionRect.isNear(act.cr, t.cr) && act.Collision(t, offset, true)) { if (onCollision != null) { onCollision(this, act); } return(true); } } return(false); }
public bool Collision(Tile t, Vector2 tileOffset, bool collisionEventFlag = false) { if (!CollisionRect.isNear(cr, t.cr)) { return(false); } foreach (Tile myTile in tiles) { if (myTile.Collision(t, this.position, tileOffset)) { if (onCollision != null && collisionEventFlag) { onCollision(this, t); } if (collisionEventFlag) { Raise("oncollision", this, t); } return(true); } } return(false); }