我正在学习使用C ++创建视频游戏的教程。我一直坚持这一步:
spriteBg -> setAnchorPoint(0,0);
我收到错误:函数不带2个参数
但根据文档,锚点通常是两位数对(x,y)或Vec2 :: ZERO,那么这条线的错误是什么?
教程中的人在第二个0下面有一条红色曲线,我在setAnchorPoint(0,0)的第二个零点下面有红线,但是他可以毫无错误地构建项目,但我可以'因为2个参数的错误。
他正在使用Visual Studio 2012,而我正在使用Visual Studio 2013来获得它的价值。该项目是使用Cocos2d生成的。
这是整个方法。
bool HelloWorld::init()
{
if ( !Layer::init() )
{
return false;
}
auto spriteBg = Sprite::create("images/bg.png");
spriteBg ->setAnchorPoint(0,0);
spriteBg ->setPosition(0,0);
addChild(spriteBg , 0);
return true;
}
这是整个错误:
error C2660: 'cocos2d::Sprite::setAnchorPoint': function does not take 2 arguments
迄今为止,采用5种方法的结果相同:
spriteBg ->setAnchorPoint(0,0);
spriteBg ->setAnchorPoint({0,0});
spriteBg ->setAnchorPoint(Vec2::ZERO);
spriteBg ->setAnchorPoint(Vec2(0,0));
spriteBg ->setAnchorPoint(Point(0,0));
这是教程,这一特定步骤是在18:27。该教程是西班牙语,但你可以清楚地看到编码,只是几行。
https://www.youtube.com/watch?v=v7d3ic_lmGw
问候。
答案 0 :(得分:0)
如果没有确切的错误消息,不确定是什么问题,但如果你说它需要Vec2 :: ZERO可能会尝试:
spriteBg -> setAnchorPoint(Vec2(0,0));
答案 1 :(得分:0)
正如你的错误中明确提到的: - 错误C2660:' cocos2d :: Sprite :: setAnchorPoint':函数不带2个参数
它只需要一个' Vec2'类型。 试试spriteBg - > setAnchorPoint(VEC2(0,0));
答案 2 :(得分:0)
跳转到sprite的定义并查看setAnchorPoint的函数定义。根据您使用的Cocos2D-x的版本,我知道setAnchorPoint采用Vec2对象这一事实。
答案 3 :(得分:0)
cpp中setAnchorPoint的参数应该是Point(Vec2)。当然,如果参数是两个数字,你将得到错误。
通过检查函数声明很容易理解错误。
答案 4 :(得分:0)
不确定这是否完全有效,请尝试使用:
sprite->setAnchorPoint(ccp(0,0));