C ++函数不带2个参数

时间:2016-10-16 15:18:06

标签: c++11 visual-studio-2013 cocos2d-x

我正在学习使用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

问候。

5 个答案:

答案 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));