4 using Microsoft.Xna.Framework;
5 using System.Collections.Generic;
16 private List<PhysicsObject> chkpoints;
23 public List<PhysicsObject> Checkpoints
25 get {
return chkpoints; }
29 CheckpointsPassed.Value = 0;
30 CheckpointsPassed.MaxValue = value.Count;
41 return ( CheckpointsPassed.Value < Checkpoints.Count ) ? Checkpoints[CheckpointsPassed.Value] : null;
53 public IntMeter CheckpointsPassed {
get;
set; }
61 public DriverBrain( List<PhysicsObject> checkpoints,
int rounds )
64 RoundsDriven.MaxValue = rounds;
66 CheckpointsPassed =
new IntMeter( 0 );
67 CheckpointsPassed.MaxValue = 1;
68 CheckpointsPassed.UpperLimit += nextRound;
70 Checkpoints = checkpoints;
73 private void nextRound()
75 CheckpointsPassed.Reset();
85 if ( target == NextCheckpoint )
88 CheckpointsPassed.MaxValue = Checkpoints.Count;
89 ++CheckpointsPassed.Value;
92 base.OnCollision( target );
109 : base( checkpoints, rounds )
122 if ( OwnerAuto != null )
128 double dist = Math.Max( distance.
Magnitude, Double.Epsilon );
130 double eta = dist / spd;
136 OwnerAuto.
Brake( dt );
144 OwnerAuto.
Turn( turnAngle, dt );
Ajajan aivot. Laskee checkpointteja ja kierroksia automaattisesti. Nämä aivot ovat ihmispelaajalle...
double Magnitude
Vektorin pituus.
Angle Angle
Kulma radiaaneina.
void Brake(double time)
Jarruttaa.
Suuntakulma (rajoitettu -180 ja 180 asteen välille) asteina ja radiaaneina. Tietoja kulmasta: http://...
DriverBrain(List< PhysicsObject > checkpoints, int rounds)
Alustaa uudet ajajan aivot.
Vector Velocity
Olion nopeus.
Tietokoneajajan aivot. Kuten DriverBrain, mutta osaa automaattisesti suunnistaa checkpointilta toisel...
Peliolio, joka noudattaa fysiikkamoottorin määräämiä fysiikan lakeja. Voidaan kuitenkin myös laittaa ...
TimeSpan SinceLastUpdate
Aika joka on kulunut viime päivityksestä.
override Angle Angle
Kulma, jossa olio on. Oliota voi pyörittää kulmaa vaihtamalla.
Aivoluokka peliolioille. Voidaan käyttää tekoälyn ja tilannekohtaisten toimintamallien luomiseen peli...
override void OnCollision(IGameObject target)
Kutsutaan, kun tapahtuu törmäys.
Sisältää tiedon ajasta, joka on kulunut pelin alusta ja viime päivityksestä.
Angle Maneuverability
Ohjattavuus, eli kulma jonka auto voi korkeintaan kääntyä sekunnissa.
Mittari, joka mittaa int-tyyppisiä arvoja. Sidottavissa näyttöihin, kuten ValueDisplay ja BarGauge...
override void Update(Time time)
Kutsutaan, kun tilaa päivitetään. Ajamislogiikka sijaitsee täällä.
double Radians
Palauttaa tai asettaa kulman radiaaneina.
Yhteinen rajapinta kaikille peliolioille.
override Vector Position
Olion paikka koordinaatistossa. Käsittää sekä X- että Y-koordinaatin.
double KineticFriction
Liikekitka. Liikettä vastustava voima joka ilmenee kun kaksi oliota liikkuu toisiaan vasten (esim...
void Turn(Angle angle, double time)
Kääntyy niin paljon kuin auton ohjattavuus sallii.
double BrakeDeceleration
Jarrujen hidastavuus, eli kuinka monta yksikköä korkeintaan nopeutta voidaan vähentää sekunnissa jarr...
void Accelerate(double time)
Kiihdyttää.
ComputerDriverBrain(List< PhysicsObject > checkpoints, int rounds)
Alustaa uudet tietokoneajajan aivot.