protected override void OnContacted(PengContactEventArgs e) { if (isSleep && e.Contactee is Player) { Body.IgnoreCollisionWith(World.Objects["ballLeftStand"].Body); Body.IgnoreCollisionWith(World.Objects["ballRightStand"].Body); isSleep = false; } base.OnContacted(e); }
private ContacteeEnum GetContactee(PengContactEventArgs e) { switch (e.Contactee.Name) { case "tree": return ContacteeEnum.Tree; case "roof": return ContacteeEnum.Roof; default: if (e.Contactee == this) return ContacteeEnum.Self; return ContacteeEnum.Other; } }
void ball_Contacted(object sender, PengContactEventArgs e) { if (!GameStopped && gameplay) { var ball = (Ball)sender; if (e.Contactee.Name == "footer") { if (ball.Position.X < 2.2f) { rightPlayerPoints++; StopGame(GameStopReason.GoalToLeft); } else if (ball.Position.X > 2.8f) { leftPlayerPoints++; StopGame(GameStopReason.GoalToRight); } } } }
void Ball_Contacted(object sender, PengContactEventArgs e) { if (!GameStopped) { var contactee = GetContactee(e); if (InMySide(World.Ball.Position) && contactee != ContacteeEnum.Other) { if (contactee == ContacteeEnum.Self) { CalculateTargetPosition(ContacteeEnum.Self); } else CalculateTargetPosition(contactee); } } }
protected override void OnContacted(PengContactEventArgs e) { if (e.Contactee.Name == "footer" && InJump) { InJump = false; } base.OnContacted(e); }