Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void xge::Game::initVariables(void)
- {
- // TODO: Write code to parse the rest of the text fields
- // -- exprtk lib will parse text variables and expressions
- randomNumber<float> randomNumberFloat;
- randomRange<float> randomRangeFloat;
- exprtk::symbol_table<float> symbolTable;
- symbolTable.add_function("random.number", randomNumberFloat);
- symbolTable.add_function("random.range", randomRangeFloat);
- symbolTable.add_constant("screen.left", 0);
- symbolTable.add_constant("screen.right", windowDesc.width);
- symbolTable.add_constant("screen.width.center", windowDesc.width / 2);
- symbolTable.add_constant("screen.height.center", windowDesc.height / 2);
- for (auto variable : variables)
- {
- symbolTable.add_constant(variable.first, variable.second);
- }
- exprtk::expression<float> expression;
- expression.register_symbol_table(symbolTable);
- exprtk::parser<float> parser;
- std::string expression_str;
- for (auto &object : objects)
- {
- expression_str = object.sposition.x;
- parser.compile(expression_str, expression);
- object.position.x = expression.value();
- expression_str = object.sposition.y;
- parser.compile(expression_str, expression);
- object.position.y = expression.value();
- expression_str = object.svelocity.x;
- parser.compile(expression_str, expression);
- object.velocity.x = expression.value();
- expression_str = object.svelocity.y;
- parser.compile(expression_str, expression);
- object.velocity.y = expression.value();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement