January 2016
Beginner
512 pages
12h 35m
English
The task for this exercise is to make it possible for the AI to initialize itself by invoking the init() function. Let's get right down to business. Extend the AIScript structure with yet another field:
QScriptValue m_thisObject;
This object will represent the AI itself. The script will be able to store data or define functions in it. Add the following code to the class as well:
void AIScript::initialize(QScriptEngine *engine) {
m_thisObject = engine->newObject();
engine->pushContext();
initFunction.call(m_thisObject);
engine->popContext();
}Add a call to initialize() at the end of start():
void start(const QString &fileName) { m_ai = AIScript(); QScriptProgram program = m_ai.read(fileName); ...