Я использую cocos2d-х, чтобы создать свой проект, но я получаю эту ошибку:Заголовочный файл недоступен
Error (active) "CocosDenshion::SimpleAudioEngine::SimpleAudioEngine()" (declared at line 256 of "c:\MyGame \cocos2d\cocos\audio\include\SimpleAudioEngine.h") is inaccessible MyGame c:\MyGame \Classes\MyGame .cpp
Так я в том числе файл SimpleAudioEngine.h в мой файл CPP, работать с Это. Как вы можете видеть ошибки, использовать SimpleAudioEngine, мне нужно использовать пространство имен CocosDenshion первый, но как только я сделал, набрав:
CocosDenshion::SimpleAudioEngine()
Visual Studio показывает эту ошибку мне, VS может показать мне объявление, так что говорит мне, что он знает, где находится заголовок, и его можно прочитать. Поэтому я не знаю, в чем проблема, поскольку она недоступна. Какова причина того, что файлы заголовков недоступны?
MyGame.cpp
#include "MyGame.h"
#include "SimpleAudioEngine.h"
#include "GlobalVariables.h"
USING_NS_CC;
Scene* MyGame::createScene()
{
auto scene = Scene::create();
auto layer = MyGame::create();
scene->addChild(layer);
return scene;
}
bool MyGame::init()
{
if (!Layer::init())
{
return false;
}
is_dragged = false;
const char* MUSIC_PATH = "Music/Main_Theme_loop.ogg";
initTouch();
initTiled();
tempSetupSprite();
debugDrawLine();
this->scheduleUpdate();
return true;
}
MyGame.h
#include "GameSprite.h"
#include "GameMap.h"
class MyGame : public cocos2d::Layer
{
private:
void update(float dt);
void initTouch();
void initTiled();
void tempSetupSprite();
void debugDrawLine();
public:
static cocos2d::Scene* createScene();
virtual bool init();
virtual bool onTouchBegan(cocos2d::Touch* _touch, cocos2d::Event* _event);
virtual void onTouchEnded(cocos2d::Touch* _touch, cocos2d::Event* _event);
virtual void onTouchMoved(cocos2d::Touch* _touch, cocos2d::Event* _event);
virtual void onTouchCancelled(cocos2d::Touch* _touch, cocos2d::Event* _event);
CREATE_FUNC(MyGame);
private:
bool is_dragged;
Vec2 first_touch;
Vec2 last_drag_touch;
GameSprite* sprite;
GameMap* map;
};
Это означает, что конструктор по умолчанию для 'SimpleAudioEngine' является либо' private', либо 'protected'. – vu1p3n0x
Снова прочитайте сообщение об ошибке. Он не говорит, что файл заголовка недоступен; он говорит, что конструктор 'CocosDenshion :: SimpleAudioEngine :: SimpleAudioEngine()' недоступен (вероятно, он является закрытым). – davmac