This is a test version of the AI, which can be used to create new AIs, and compare them with the current AI.
More...
|
|
| TestAI (AbstractKart *kart) |
| |
| virtual void | update (int ticks) |
| | Updates the ai base controller each time step. More...
|
| |
|
virtual void | reset () |
| |
|
virtual const irr::core::stringw & | getNamePostfix () const |
| |
| | AIBaseLapController (AbstractKart *kart) |
| | This is the base class for all AIs. More...
|
| |
|
| AIBaseController (AbstractKart *kart) |
| |
|
virtual bool | disableSlipstreamBonus () const OVERRIDE |
| | Certain AI levels will not receive a slipstream bonus in order to be not as hard.
|
| |
| virtual void | crashed (const Material *m) OVERRIDE |
| | This is called when the kart crashed with the terrain. More...
|
| |
|
virtual void | crashed (const AbstractKart *k) OVERRIDE |
| |
|
virtual void | handleZipper (bool play_sound) OVERRIDE |
| |
|
virtual void | finishedRace (float time) OVERRIDE |
| | Called whan this controller's kart finishes the last lap.
|
| |
|
virtual void | collectedItem (const ItemState &item, float previous_energy=0) OVERRIDE |
| |
|
virtual void | setPosition (int p) OVERRIDE |
| |
| virtual bool | isPlayerController () const OVERRIDE |
| | This function checks if this player is not an AI, i.e. More...
|
| |
| virtual bool | isLocalPlayerController () const OVERRIDE |
| | This function checks if this is a local player. More...
|
| |
| virtual bool | action (PlayerAction action, int value, bool dry_run=false) OVERRIDE |
| | Default: ignore actions. More...
|
| |
|
virtual void | skidBonusTriggered () OVERRIDE |
| |
|
virtual bool | saveState (BareNetworkString *buffer) const OVERRIDE |
| |
|
virtual void | rewindTo (BareNetworkString *buffer) OVERRIDE |
| |
|
void | setNetworkAI (bool val) |
| |
|
| Controller (AbstractKart *kart) |
| | Constructor, saves the kart pointer and a pointer to the KartControl of the kart.
|
| |
|
virtual void | rumble (float strength_low, float strength_high, uint16_t duration) |
| |
|
const std::string & | getControllerName () const |
| | Returns the name of this controller.
|
| |
|
virtual KartControl * | getControls () |
| | Get a pointer on the kart controls.
|
| |
|
void | setControls (KartControl *kc) |
| |
|
virtual bool | canGetAchievements () const |
| | Only local players can get achievements.
|
| |
| virtual core::stringw | getName (bool include_handicap_string=true) const |
| | Display name of the controller. More...
|
| |
|
AbstractKart * | getKart () const |
| | Returns the kart controlled by this controller.
|
| |
|
| virtual unsigned int | getNextSector (unsigned int index) |
| | Returns the next sector of the given sector index. More...
|
| |
|
virtual void | newLap (int lap) |
| | Triggers a recomputation of the path to use, so that the AI does not always use the same way.
|
| |
| float | steerToAngle (const unsigned int sector, const float angle) |
| | This function steers towards a given angle. More...
|
| |
| void | computePath () |
| | Computes a path for the AI to follow. More...
|
| |
|
virtual void | raceFinished () |
| | Nothing special to do when the race is finished.
|
| |
| void | setControllerName (const std::string &name) OVERRIDE |
| | In debug mode when the user specified –ai-debug on the command line set the name of the controller as on-screen text, so that the different AI controllers can be distinguished. More...
|
| |
| float | steerToPoint (const Vec3 &point) |
| | Computes the steering angle to reach a certain point. More...
|
| |
| float | normalizeAngle (float angle) |
| | Normalises an angle to be between -pi and _ pi. More...
|
| |
| bool | isStuck () const |
| | This can be called to detect if the kart is stuck (i.e. More...
|
| |
| void | determineTurnRadius (const Vec3 &end, Vec3 *center, float *radius) const |
| | Determine the center point and radius of a circle given two points on the circle and the tangent at the first point. More...
|
| |
|
|
void | handleRaceStart () |
| |
|
void | handleAcceleration (int ticks) |
| |
|
void | handleSteering (float dt) |
| |
|
void | handleItems (const float dt) |
| |
|
void | handleRescue (const float dt) |
| |
|
void | handleBraking () |
| |
|
void | handleNitroAndZipper () |
| |
|
void | computeNearestKarts () |
| |
|
void | handleItemCollectionAndAvoidance (Vec3 *aim_point, int last_node) |
| |
|
bool | handleSelectedItem (Vec3 kart_aim_direction, Vec3 *aim_point) |
| |
|
bool | steerToAvoid (const std::vector< const ItemState * > &items_to_avoid, const core::line3df &line_to_target, Vec3 *aim_point) |
| |
|
bool | hitBadItemWhenAimAt (const ItemState *item, const std::vector< const ItemState * > &items_to_avoid) |
| |
|
void | evaluateItems (const ItemState *item, Vec3 kart_aim_direction, std::vector< const ItemState * > *items_to_avoid, std::vector< const ItemState * > *items_to_collect) |
| |
|
void | checkCrashes (const Vec3 &pos) |
| |
|
void | findNonCrashingPointFixed (Vec3 *result, int *last_node) |
| |
|
void | findNonCrashingPointNew (Vec3 *result, int *last_node) |
| |
|
void | findNonCrashingPoint (Vec3 *result, int *last_node) |
| |
|
void | determineTrackDirection () |
| |
|
virtual bool | canSkid (float steer_fraction) |
| | Return true if AI can skid now.
|
| |
| virtual void | setSteering (float angle, float dt) |
| | Converts the steering angle to a lr steering in the range of -1 to 1. More...
|
| |
|
void | handleCurve () |
| |
|
|
static void | enableDebug () |
| |
|
static void | setTestAI (int n) |
| |
|
static int | getTestAI () |
| |
| int | m_track_node |
| | The current node the kart is on. More...
|
| |
|
LinearWorld * | m_world |
| | Keep a pointer to world.
|
| |
|
std::vector< int > | m_successor_index |
| | Which of the successors of a node was selected by the AI.
|
| |
| std::vector< int > | m_next_node_index |
| | For each node in the graph this list contains the chosen next node. More...
|
| |
|
std::vector< std::vector< int > > | m_all_look_aheads |
| | For each graph node this list contains a list of the next X graph nodes.
|
| |
|
bool | m_enabled_network_ai |
| |
|
float | m_kart_length |
| | Length of the kart, storing it here saves many function calls.
|
| |
|
float | m_kart_width |
| | Cache width of kart.
|
| |
|
Track * | m_track |
| | Keep a pointer to the track to reduce calls.
|
| |
|
const AIProperties * | m_ai_properties |
| | A pointer to the AI properties for this kart.
|
| |
|
AbstractKart * | m_kart |
| | Pointer to the kart that is controlled by this controller.
|
| |
|
KartControl * | m_controls |
| | A pointer to the main controller, from which the kart takes it commands.
|
| |
|
std::string | m_controller_name |
| | The name of the controller, mainly used for debugging purposes.
|
| |
|
static bool | m_ai_debug = false |
| |
| static int | m_test_ai = 0 |
| | Stores the '–test-ai=n' command line parameter: It indicates which fraction of the AIs are going to be the test AI: 1 means only to use the TestAI, 2 means every second AI will be test etc. More...
|
| |
This is a test version of the AI, which can be used to create new AIs, and compare them with the current AI.
It is otherwise (at this stage) identical to the Skidding AI.
| virtual void TestAI::setSteering |
( |
float |
angle, |
|
|
float |
dt |
|
) |
| |
|
privatevirtual |
Converts the steering angle to a lr steering in the range of -1 to 1.
If the steering angle is too great, it will also trigger skidding. This function uses a 'time till full steer' value specifying the time it takes for the wheel to reach full left/right steering similar to player karts when using a digital input device. The parameter is defined in the kart properties and helps somewhat to make AI karts more 'pushable' (since otherwise the karts counter-steer to fast). It also takes the effect of a plunger into account by restricting the actual steer angle to 50% of the maximum.
- Parameters
-
| angle | Steering angle. |
| dt | Time step. |
Reimplemented from AIBaseController.