internal void Przesóń(float WspółczynikZmiany, ObiektFizyczny obiektFizyczny2, Vector2 PunkStyku, Vector2 WzglednośćSierodków, Vector2 WzglednośćPredkości) { kierunekWektor += WzglednośćPredkości; Miejsce -= WzglednośćSierodków * 5 / WzglednośćSierodków.Length(); float Iloraz = 0.1f; float SKąt = Convert.ToSingle(Math.PI + Math.Atan2(PunkStyku.Y, PunkStyku.X)); float SKąt2 = Convert.ToSingle(Math.PI + Math.Atan2(WzglednośćSierodków.Y, WzglednośćSierodków.X)); Iloraz *= Math.Abs(SKąt - SKąt2); if ((SKąt) % MathHelper.PiOver2 < MathHelper.PiOver4) { Iloraz *= 1; } else { Iloraz *= -1; } Kierunek += Iloraz; }
public bool Kolizja(ObiektFizyczny ob, out Vector2 PunktStyku) { PunktStyku = Vector2.Zero; Vector2 v = ob.Miejsce - Miejsce; float zasieng = ob.Szkielet.MaksymalnyZasieng + Szkielet.MaksymalnyZasieng; if (v.X * v.X + v.Y * v.Y > (zasieng * zasieng)) { return(false); } if (Szkielet.Kolizja(ob.Szkielet, v, out PunktStyku)) { if (EventKolizja != null) { EventKolizja(this, v); } return(true); } return(false); }