• cocos2d-x 头文件中添加方法变量导致编译报错


    代码如下:

    HelloWorldScene.h

    #ifndef __HELLOWORLD_SCENE_H__
    #define __HELLOWORLD_SCENE_H__

    #include "cocos2d.h"
    class HelloWorld : public cocos2d::Layer
    {
    public:
        // there's no 'id' in cpp, so we recommend returning the class instance pointer
        static cocos2d::Scene* createScene();

        // Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone
        virtual bool init();

        // a selector callback
        void menuCloseCallback(cocos2d::Ref* pSender);
        void addMonster(float dt);
        void GameUpdate(float);
        // implement the "static create()" method manually
        virtual bool onTouchBegan(Touch* pTouch, Event* pEvent);
        virtual void onTouchMoved(Touch* pTouch, Event* pEvent);
        virtual void onTouchEnded(Touch* pTouch, Event* pEvent);

        bool onContactBegin(const PhysicsContact& contact);


        CREATE_FUNC(HelloWorld);
    private:
        std::vector<cocos2d::Sprite*> Monster;
        std::vector<cocos2d::Sprite*> projectile;
        EventListenerTouchOneByOne* touch_listener;
        EventListenerPhysicsContact* contact_listener;
        Sprite* _player;
        int i, j;
    };

    #endif // __HELLOWORLD_SCENE_H__

    报错:

    Error    4    error C2061: syntax error : identifier 'Touch' (..ClassesAppDelegate.cpp)    e:cocos2d-xsampleshelloclasseshelloworldscene.h    19    1    hello
    Error    6    error C2061: syntax error : identifier 'Touch' (..ClassesAppDelegate.cpp)    e:cocos2d-xsampleshelloclasseshelloworldscene.h    20    1    hello
    Error    8    error C2061: syntax error : identifier 'Touch' (..ClassesAppDelegate.cpp)    e:cocos2d-xsampleshelloclasseshelloworldscene.h    21    1    hello
    Error    3    error C2061: syntax error : identifier 'Touch' (..ClassesHelloWorldScene.cpp)    e:cocos2d-xsampleshelloclasseshelloworldscene.h    19    1    hello
    Error    5    error C2061: syntax error : identifier 'Touch' (..ClassesHelloWorldScene.cpp)    e:cocos2d-xsampleshelloclasseshelloworldscene.h    20    1    hello
    Error    7    error C2061: syntax error : identifier 'Touch' (..ClassesHelloWorldScene.cpp)    e:cocos2d-xsampleshelloclasseshelloworldscene.h    21    1    hello
    Error    37    error C2065: '_player' : undeclared identifier    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    84    1    hello
    Error    38    error C2065: '_player' : undeclared identifier    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    85    1    hello
    Error    40    error C2065: '_player' : undeclared identifier    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    86    1    hello
    Error    53    error C2065: '_player' : undeclared identifier    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    166    1    hello
    Error    56    error C2065: '_player' : undeclared identifier    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    168    1    hello
    Error    59    error C2065: '_player' : undeclared identifier    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    169    1    hello
    Error    25    error C2065: 'touch_listener' : undeclared identifier    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    45    1    hello
    Error    26    error C2065: 'touch_listener' : undeclared identifier    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    46    1    hello
    Error    28    error C2065: 'touch_listener' : undeclared identifier    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    47    1    hello
    Error    30    error C2065: 'touch_listener' : undeclared identifier    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    48    1    hello
    Error    32    error C2065: 'touch_listener' : undeclared identifier    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    49    1    hello
    Error    34    error C2065: 'touch_listener' : undeclared identifier    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    50    1    hello
    Error    36    error C2065: 'touch_listener' : undeclared identifier    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    51    1    hello
    Error    12    error C2143: syntax error : missing ',' before '&' (..ClassesAppDelegate.cpp)    e:cocos2d-xsampleshelloclasseshelloworldscene.h    23    1    hello
    Error    11    error C2143: syntax error : missing ',' before '&' (..ClassesHelloWorldScene.cpp)    e:cocos2d-xsampleshelloclasseshelloworldscene.h    23    1    hello
    Error    14    error C2143: syntax error : missing ';' before '*' (..ClassesAppDelegate.cpp)    e:cocos2d-xsampleshelloclasseshelloworldscene.h    30    1    hello
    Error    18    error C2143: syntax error : missing ';' before '*' (..ClassesAppDelegate.cpp)    e:cocos2d-xsampleshelloclasseshelloworldscene.h    31    1    hello
    Error    22    error C2143: syntax error : missing ';' before '*' (..ClassesAppDelegate.cpp)    e:cocos2d-xsampleshelloclasseshelloworldscene.h    32    1    hello
    Error    13    error C2143: syntax error : missing ';' before '*' (..ClassesHelloWorldScene.cpp)    e:cocos2d-xsampleshelloclasseshelloworldscene.h    30    1    hello
    Error    17    error C2143: syntax error : missing ';' before '*' (..ClassesHelloWorldScene.cpp)    e:cocos2d-xsampleshelloclasseshelloworldscene.h    31    1    hello
    Error    21    error C2143: syntax error : missing ';' before '*' (..ClassesHelloWorldScene.cpp)    e:cocos2d-xsampleshelloclasseshelloworldscene.h    32    1    hello
    Error    50    error C2227: left of '->addChild' must point to class/struct/union/generic type    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    165    1    hello
    Error    57    error C2227: left of '->getContentSize' must point to class/struct/union/generic type    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    168    1    hello
    Error    54    error C2227: left of '->getPosition' must point to class/struct/union/generic type    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    166    1    hello
    Error    60    error C2227: left of '->getPosition' must point to class/struct/union/generic type    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    169    1    hello
    Error    29    error C2227: left of '->onTouchBegan' must point to class/struct/union/generic type    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    47    1    hello
    Error    35    error C2227: left of '->onTouchCancelled' must point to class/struct/union/generic type    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    50    1    hello
    Error    33    error C2227: left of '->onTouchEnded' must point to class/struct/union/generic type    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    49    1    hello
    Error    31    error C2227: left of '->onTouchMoved' must point to class/struct/union/generic type    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    48    1    hello
    Error    43    error C2227: left of '->removeChild' must point to class/struct/union/generic type    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    138    1    hello
    Error    45    error C2227: left of '->removeChild' must point to class/struct/union/generic type    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    139    1    hello
    Error    63    error C2227: left of '->runAction' must point to class/struct/union/generic type    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    173    1    hello
    Error    39    error C2227: left of '->setPosition' must point to class/struct/union/generic type    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    85    1    hello
    Error    27    error C2227: left of '->setSwallowTouches' must point to class/struct/union/generic type    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    46    1    hello
    Error    51    error C2228: left of '.back' must have class/struct/union    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    165    1    hello
    Error    62    error C2228: left of '.back' must have class/struct/union    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    173    1    hello
    Error    48    error C2228: left of '.push_back' must have class/struct/union    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    164    1    hello
    Error    58    error C2228: left of '.width' must have class/struct/union    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    168    1    hello
    Error    61    error C2228: left of '.y' must have class/struct/union    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    169    1    hello
    Error    41    error C2511: 'bool HelloWorld::onContactBegin(const cocos2d::PhysicsContact &)' : overloaded member function not found in 'HelloWorld'    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    134    1    hello
    Error    46    error C2511: 'bool HelloWorld::onTouchBegan(cocos2d::Touch *,cocos2d::Event *)' : overloaded member function not found in 'HelloWorld'    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    151    1    hello
    Error    65    error C2511: 'void HelloWorld::onTouchEnded(cocos2d::Touch *,cocos2d::Event *)' : overloaded member function not found in 'HelloWorld'    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    183    1    hello
    Error    64    error C2511: 'void HelloWorld::onTouchMoved(cocos2d::Touch *,cocos2d::Event *)' : overloaded member function not found in 'HelloWorld'    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    178    1    hello
    Error    47    error C2597: illegal reference to non-static member 'HelloWorld::j'    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    157    1    hello
    Error    52    error C2597: illegal reference to non-static member 'HelloWorld::j'    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    165    1    hello
    Error    55    error C2660: 'cocos2d::ccpSub' : function does not take 1 arguments    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    166    1    hello
    Error    42    error C2671: 'HelloWorld::onContactBegin' : static member functions do not have 'this' pointers    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    138    1    hello
    Error    44    error C2671: 'HelloWorld::onContactBegin' : static member functions do not have 'this' pointers    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    139    1    hello
    Error    49    error C2671: 'HelloWorld::onTouchBegan' : static member functions do not have 'this' pointers    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    165    1    hello
    Error    10    error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (..ClassesAppDelegate.cpp)    e:cocos2d-xsampleshelloclasseshelloworldscene.h    23    1    hello
    Error    16    error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (..ClassesAppDelegate.cpp)    e:cocos2d-xsampleshelloclasseshelloworldscene.h    30    1    hello
    Error    20    error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (..ClassesAppDelegate.cpp)    e:cocos2d-xsampleshelloclasseshelloworldscene.h    31    1    hello
    Error    24    error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (..ClassesAppDelegate.cpp)    e:cocos2d-xsampleshelloclasseshelloworldscene.h    32    1    hello
    Error    9    error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (..ClassesHelloWorldScene.cpp)    e:cocos2d-xsampleshelloclasseshelloworldscene.h    23    1    hello
    Error    15    error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (..ClassesHelloWorldScene.cpp)    e:cocos2d-xsampleshelloclasseshelloworldscene.h    30    1    hello
    Error    19    error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (..ClassesHelloWorldScene.cpp)    e:cocos2d-xsampleshelloclasseshelloworldscene.h    31    1    hello
    Error    23    error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (..ClassesHelloWorldScene.cpp)    e:cocos2d-xsampleshelloclasseshelloworldscene.h    32    1    hello
    Warning    66    warning C4018: '<' : signed/unsigned mismatch    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    190    1    hello
    Warning    67    warning C4018: '<' : signed/unsigned mismatch    e:cocos2d-xsampleshelloclasseshelloworldscene.cpp    192    1    hello
    Warning    2    warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss (..ClassesAppDelegate.cpp)    e:cocos2d-xsampleshellococos2dcocosphysicsccphysicsjoint.h    1    1    hello
    Warning    1    warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss (..ClassesHelloWorldScene.cpp)    e:cocos2d-xsampleshellococos2dcocosphysicsccphysicsjoint.h    1    1    hello

    解决方法:

    在行#include "cocos2d.h"下增加如下代码行:
    USING_NS_CC;

  • 相关阅读:
    游LeetCode一月之闲谈
    新年计划与企盼
    F#周报2019年第51&52期
    F#周报2019年第50期
    F#周报2019年第49期
    F#周报2019年第48期
    F#周报2019年第47期
    F#周报2019年第46期
    F#周报2019年第45期
    关于我的随笔
  • 原文地址:https://www.cnblogs.com/jerry1999/p/4392892.html
Copyright © 2020-2023  润新知