2using System.Collections.Generic;
106 if (
Owner ==
null )
return 0;
107 if ( obj1 ==
null )
return 1;
108 if ( obj2 ==
null )
return -1;
112 double diff = Math.Abs( d1 - d2 );
114 if (
CurrentTarget == obj1 && diff < changeTargetDistance )
return -1;
115 if (
CurrentTarget == obj2 && diff < changeTargetDistance )
return 1;
117 return d1.CompareTo( d2 );
150 for (
int i = 0; i < targets.Length; i++)
154 else if (targets[i] is
string)
157 throw new ArgumentException(
string.Format(
"Target type not recognized: {0} ({1})", targets[i].ToString(), targets[i].GetType().Name));
167 foreach ( var obj
in layer.Objects )
198 if ( physTarget !=
null )
212 if ( dt <= 0 )
return;
231 if ( !
double.IsNaN( realDist.
Magnitude ) && !
double.IsInfinity( realDist.
Magnitude ) )
238 bool targetFar = Math.Abs( distance ) >
DistanceFar;
Yleiset liikkumiseen tarkoitetut aivot.
bool TurnWhileMoving
Käännytäänkö siihen suuntaan mihin liikutaan.
void Turn(Angle angle)
Kääntää aivojen hallitsemaan hahmoa
void Move(Vector direction)
Liikuttaa aivojen hallitsemaa hahmoa
Aivoluokka peliolioille. Voidaan käyttää tekoälyn ja tilannekohtaisten toimintamallien luomiseen peli...
static readonly Brain None
Tyhjät aivot, eivät sisällä mitään toiminnallisuutta.
IGameObject Owner
Aivojen haltija.
Mittari, joka mittaa double-tyyppisiä arvoja. Sidottavissa näyttöihin, kuten ValueDisplay ja BarGa...
Aivot, joiden tehtävänä on laittaa omistajansa seuraamaan jotakin kohdetta.
Comparison< IGameObject > FollowComparer
Metodi, joka vertailee kahta oliota keskenään. Kumpi olio tulee ensimmäiseksi, sitä seurataan.
IGameObject CurrentTarget
Olio, jota parhaillaan seurataan.
double? Delay
Viive seuraamislogiikassa. Oletuksena nolla (seuraa reaaliajassa)
Brain CloseBrain
Aivot, joita käytetään näiden sijasta kun ollaan lähellä kohdestta
Action TargetClose
Tapahtuma, joka suoritetaan, kun ollaan tarpeeksi lähellä seurattavaa.
List< IGameObject > ObjectsToFollow
Oliot, joita seurataan.
void SetTargetPosition(double dt)
double DistanceFar
Etäisyys, jolloin ollaan kaukana kohteesta ja lopetetaan sen seuraaminen.
Brain FarBrain
Aivot, joita käytetään näiden sijasta kun ollaan kaukana kaikista kohteista, esim....
List< string > TagsToFollow
Tagit, joita seurataan.
override void Update(Time time)
Kutsutaan, kun tilaa päivitetään. Suurin osa päätöksenteosta tapahtuu täällä.
Comparison< IGameObject > CreateDistanceComparer(double changeTargetDistance)
Luo FollowComparer-vertailijan, jolla aivot seuraavat aina lähintä oliota.
FollowerBrain(params object[] targets)
Luo aivot ja asettaa ne seuraamaan yhtä tai useampaa kohdetta.
bool StopWhenTargetClose
Pysähdytäänkö, kun ollaan lähellä kohdetta.
FollowerBrain()
Luo aivot.
DoubleMeter DistanceToTarget
Etäisyys lähimpään kohteeseen.
double DistanceClose
Etäisyys, jolloin ollaan lähellä kohdetta.
Level Level
Aktiivinen kenttä.
static Time Time
Peliaika. Sisältää tiedon siitä, kuinka kauan peliä on pelattu (Time.SinceStartOfGame) ja kuinka kaua...
SynchronousList< Layer > Layers
Kerrokset, joilla pelioliot viihtyvät.
static Game Instance
Käynnissä olevan pelin pääolio.
double Width
Kentän leveys.
double Height
Kentän korkeus.
ValueType Value
Mittarin arvo.
Kappale joka noudattaa fysiikan lakeja, johon voi törmätä. Vaatii että käytössä on fysiikkapeli.
bool IsDestroyed
Onko kappale tuhottu
Yhteinen rajapinta kaikille peliolioille.
Yhteinen rajapinta kaikille fysiikkaolioille.
new Vector Position
Paikka.
Sisältää tiedon ajasta, joka on kulunut pelin alusta ja viime päivityksestä.
TimeSpan SinceLastUpdate
Aika joka on kulunut viime päivityksestä.
static double Distance(Vector p1, Vector p2)
Etäisyys kahden pisteen välillä.
Angle Angle
Kulma radiaaneina.
double Magnitude
Vektorin pituus.
static Vector FromLengthAndAngle(double length, double angle)
Luo vektorin pituuden ja kulman perusteella.