Jypeli 10
The simple game programming library
RandomMoverBrain.cs
Siirry tämän tiedoston dokumentaatioon.
1namespace Jypeli
2{
7 {
10
15 {
16 get { return changeDirectionTimer.Interval; }
17 set { changeDirectionTimer.Interval = value; }
18 }
19
23 public Vector WanderPosition { get; set; }
24
28 public double WanderRadius { get; set; }
29
34 : base()
35 {
39
41 WanderRadius = double.PositiveInfinity;
42 }
43
47 public RandomMoverBrain( double speed )
48 : this()
49 {
50 Speed = speed;
51 }
52
54 protected override void OnAdd( IGameObject newOwner )
55 {
57 WanderPosition = newOwner.Position;
58 base.OnAdd( newOwner );
59 }
60
62 protected override void OnRemove( IGameObject prevOwner )
63 {
65 base.OnRemove( prevOwner );
66 }
67
69 {
71 }
72
77 public override void OnCollision( IGameObject target )
78 {
79 Vector d = target.Position - Owner.Position;
80 Angle n1 = d.Angle - Angle.RightAngle;
81 Angle n2 = d.Angle + Angle.RightAngle;
82
84
85 base.OnCollision( target );
86 }
87
89 protected override void Update( Time time )
90 {
91 if ( Owner == null )
92 return;
93
94 if ( !double.IsInfinity( WanderRadius ) )
95 {
97 if ( d.Magnitude > WanderRadius )
99 }
100
102 base.Update( time );
103 }
104 }
105}
Yleiset liikkumiseen tarkoitetut aivot.
virtual double Speed
Nopeus, jolla liikutaan.
void Move(Vector direction)
Liikuttaa aivojen hallitsemaa hahmoa
IGameObject Owner
Aivojen haltija.
Definition: Brain.cs:69
Satunnaisgeneraattori. Luo satunnaisia arvoja, mm. lukuja, vektoreita sekä kulmia.
Definition: RandomGen.cs:39
static Angle NextAngle()
Palauttaa satunnaisen kulman.
Definition: RandomGen.cs:202
Aivot, jotka laittavat omistajansa liikkumaan satunnaisesti eri suuntiin törmäyksissä ja tietyn ajan ...
override void Update(Time time)
Kutsutaan, kun tilaa päivitetään. Suurin osa päätöksenteosta tapahtuu täällä. Perivässä luokassa meth...
RandomMoverBrain(double speed)
Luo uudet satunnaisliikkujan aivot ja asettaa niille nopeuden.
RandomMoverBrain()
Luo uudet satunnaisliikkujan aivot.
double ChangeMovementSeconds
Aika sekunteina, jonka kuluttua muutetaan liikesuuntaa
override void OnCollision(IGameObject target)
Kutsutaan, kun tapahtuu törmäys.
override void OnAdd(IGameObject newOwner)
Kutsutaan, kun aivot lisätään oliolle.
Vector WanderPosition
Paikka, jonka ympärillä harhaillaan, jos WanderRadius on asetettu.
override void OnRemove(IGameObject prevOwner)
Kutsutaan, kun aivot poistetaan oliolta.
double WanderRadius
Säde, jonka sisälle harhailu rajoittuu.
Ajastin, joka voidaan asettaa laukaisemaan tapahtumia tietyin väliajoin.
Definition: Timer.cs:38
double Interval
Aika sekunneissa, jonka välein TimeOut tapahtuu.
Definition: Timer.cs:87
void Stop()
Pysäyttää ajastimen ja nollaa sen tilan.
Definition: Timer.cs:292
Action Timeout
Tapahtuu väliajoin.
Definition: Timer.cs:44
void Start()
Käynnistää ajastimen.
Definition: Timer.cs:257
Yhteinen rajapinta kaikille peliolioille.
Definition: IGameObject.cs:11
new Vector Position
Paikka.
Definition: Positional.cs:32
Suuntakulma (rajoitettu -180 ja 180 asteen välille) asteina ja radiaaneina. Tietoja kulmasta: http://...
Definition: Angle.cs:40
static readonly Angle RightAngle
Suora kulma (90 astetta).
Definition: Angle.cs:49
Sisältää tiedon ajasta, joka on kulunut pelin alusta ja viime päivityksestä.
Definition: Time.cs:14
2D-vektori.
Definition: Vector.cs:67
Angle Angle
Kulma radiaaneina.
Definition: Vector.cs:372
double Magnitude
Vektorin pituus.
Definition: Vector.cs:345