Как зарегистрировать операторы SFML Vector2 с помощью AngelScript? - PullRequest
2 голосов
/ 12 июля 2020

Я работаю над игровым движком, использующим SFML. В настоящее время я работаю над добавлением сценариев с помощью AngelScript, однако у меня возникают проблемы с регистрацией sf :: Vector2 с помощью AngelScript. У меня настроен конструктор basi c, я могу использовать sf :: Vector в AngelScript, но мне нужно добавить операторы, поскольку Vector2 foo = Vector2(10.0f, 5.0f); не может быть вызван из AngelScript без оператора =, определенного для типа. Проблема в следующем: sf :: Vector2 на самом деле не имеет определенного оператора = ... Есть ли обходной путь, или мне нужно создать свой собственный класс vector2 или перестроить SFML с добавленными необходимыми операторами?

Ответы [ 2 ]

1 голос
/ 12 июля 2020

sf :: Vector2 - это класс шаблона, SFML содержит определение типа для Vector2, которое использует числа с плавающей запятой под названием Vector2f https://www.sfml-dev.org/documentation/2.5.1/classsf_1_1Vector2.php

0 голосов
/ 17 июля 2020

SFML позволяет использовать оператор «=» для векторов. Проблема в том, что вы используете Vector2, который является просто классом шаблона и в нем отсутствуют аргументы (например, Vector2, Vector2). Вы не можете выполнять операции с классом шаблона, просто пропуская аргументы. Конечно, вы можете использовать typedefs в SFML, как указано @IRevenant, например:

Vector2f foo = Vector2f(10.0f, 5.0f);

OR

Vector2f C = A + B; //A and B are Vector2f
...