我来自类似 Javascript 的语言,我可以在其中制作这样的功能。
function tween(obj, tweenParams, time, tweenOptions);
这像这样使用:
tween(mySprite, {x: 10, y: 10}, 1, {startDelay: 1, loops: 5});
如果不清楚,这会使 mySprite 的 x 和 y 属性在 1 秒内变为 10,循环 5 次,延迟为 1 秒。tweenParams 可以包含 obj 可能具有的任何值,并且 tweenOptions 是一个固定结构。
我想知道这在 C++ 中有多简洁合理,结构和数组初始化似乎不够灵活,无法表达这一点。我最好的猜测涉及一次调用多个补间函数一个属性,例如。
TweenOptions opts = {};
opts.startDelay = 1;
opts.loops = 5;
tween(&mySprite.x, 10, 1, opts);
tween(&mySprite.y, 10, 1, opts);
我不太了解 C++ 高级功能,也许运算符重载或自定义初始化可以帮助我?
编辑:要清楚,我不希望它与 Javascript 示例完全匹配,我只想知道这可以合理地简洁。