2

我正在开发一个使用 SFML 的游戏引擎。我目前正在使用 AngelScript 添加脚本,但是,我在使用 AngelScript 注册 sf::Vector2 时遇到了问题。我已经设置了基本的构造函数,我可以在 AngelScript 中使用 sf::Vector,但我需要添加运算符,因为Vector2 foo = Vector2(10.0f, 5.0f);如果没有为类型定义 = 运算符,就无法从 AngelScript 调用。问题是: sf::Vector2 实际上没有定义 = 运算符...是否有解决方法,或者我是否必须创建自己的 vector2 类或重建 SFML 并添加所需的运算符?

4

2 回答 2

1

sf::Vector2 是一个模板类,SFML 包含一个 Vector2 的 typedef,它使用称为 Vector2f 的浮点数 https://www.sfml-dev.org/documentation/2.5.1/classsf_1_1Vector2.php

于 2020-07-12T07:20:43.863 回答
0

SFML 确实允许您对向量使用“=”运算符。问题是您使用的 Vector2 只是一个模板类,并且缺少参数(例如 Vector2、Vector2)。您不能仅通过跳过参数来对模板类执行操作。您当然可以使用@IRevenant 指出的 SFML 中的 typedef,例如:

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

或者

Vector2f C = A + B; //A and B are Vector2f
于 2020-07-17T08:32:03.853 回答