1using System.Collections.Generic;
107 if (owner ==
null || owner.
Game ==
null)
return;
110 List<Vector> directions =
new List<Vector>{
direction,
117 while (directions.Count > 0)
120 directions.Remove(directionCandidate);
Yleiset liikkumiseen tarkoitetut aivot.
void Move(Vector direction)
Liikuttaa aivojen hallitsemaa hahmoa
IGameObject Owner
Aivojen haltija.
static void DoNextUpdate(Action action)
Suorittaa aliohjelman seuraavalla päivityksellä.
GameObject GetObjectAt(Vector position)
Palauttaa peliolion, joka on annetussa paikassa. Jos paikassa ei ole mitään pelioliota,...
Pelialueella liikkuva olio. Käytä fysiikkapeleissä PhysicsObject-olioita.
Aivot, jotka saavat omistajansa liikkumaan labyrinttimäisessä kentässä satunnaisesti edeten.
const double defaultSpeed
LabyrinthWandererBrain(double tileSize, double speed)
Luo uudet aivot, jotka saavat omistajansa vaeltelemaan labyrintissä.
double timeSinceNewDestination
void SetNextDirectionAndDestination()
Asetetaan uusi suunta. Hakee olioita edestä ja sivuilta ja arpoo tyhjistä kohdista uuden suunnan....
override void OnAddToGame()
Kutsutaan, kun aivojen omistaja lisätään peliin tai omistajaksi asetetaan olio, joka on jo lisätty pe...
LabyrinthWandererBrain(double tileSize)
Luo uudet aivot, jotka saavat omistajansa vaeltelemaan labyrintissä.
LabyrinthWandererBrain(double tileSize, double speed, string wallTag)
Luo uudet aivot, jotka saavat omistajansa vaeltelemaan labyrintissä.
double DirectionChangeTimeout
Jos jäädään jumiin, kuinka pian arvotaan uusi suunta. Oletuksena 1 sekunti.
double directionChangeTimeout
override void OnAdd(IGameObject newOwner)
Kutsutaan, kun aivot lisätään oliolle.
override void Update(Time time)
Liikuttaa omistajaa Move-metodilla. Asetetaan uusi suunta jos ollaan saavutettu annettu määränpää,...
string LabyrinthWallTag
Tagi, jolla varustetut oliot tulkitaan seiniksi. Muilla tageilla varustettuja olioita ei väistetä.
Kappale joka noudattaa fysiikan lakeja, johon voi törmätä. Vaatii että käytössä on fysiikkapeli.
virtual int? CollisionIgnoreGroup
Törmäysryhmä. Oliot jotka ovat samassa törmäysryhmässä menevät toistensa läpi. Jos ryhmä on nolla tai...
override Vector?? Position
Satunnaisgeneraattori. Luo satunnaisia arvoja, mm. lukuja, vektoreita sekä kulmia.
static Direction NextDirection()
Palauttaa satunnaisen suunnan.
Yhteinen rajapinta kaikille peliolioille.
new Vector Position
Paikka.
Suuntakulma (rajoitettu -180 ja 180 asteen välille) asteina ja radiaaneina. Tietoja kulmasta: http://...
static readonly Angle RightAngle
Suora kulma (90 astetta).
Vector GetVector()
Palauttaa suunnan yksikkövektorina.
Sisältää tiedon ajasta, joka on kulunut pelin alusta ja viime päivityksestä.
TimeSpan SinceStartOfGame
Aika joka on kulunut pelin alusta.
Vector Normalize()
Palauttaa uuden vektorin, jonka suunta pysyy samana, mutta pituudeksi tulee 1.0.
Angle Angle
Kulma radiaaneina.
double Magnitude
Vektorin pituus.
static Vector FromLengthAndAngle(double length, double angle)
Luo vektorin pituuden ja kulman perusteella.