这个问题如何修改

错误如下:
2>Layer.obj : error LNK2001: 无法解析的外部符号 “public: virtual void __thiscall Layer01::onKeyPressed(enum cocos2d::EventKeyboard::KeyCode,class cocos2d::Event *)” (?onKeyPressed@Layer01@@UAEXW4KeyCode@EventKeyboard@cocos2d@@PAVEvent@4@@Z)
2>Layer.obj : error LNK2001: 无法解析的外部符号 “public: virtual void __thiscall Layer01::onKeyReleased(enum cocos2d::EventKeyboard::KeyCode,class cocos2d::Event *)” (?

Layer01::onKeyPressed 的.cpp源码有问题吧?

我将源码演示文件上传,麻烦看一下:
demo.zip (1.2 MB)

https://blog.csdn.net/weixin_40763897/article/details/104552235
看看这篇文章吧。

auto listener=EventListenerKeyboard::create();
	listener->onKeyPressed = [=](EventKeyboard::KeyCode keyCode,Event* event){		
		keys[keyCode] = true;
	};
	listener->onKeyReleased = [=](EventKeyboard::KeyCode keyCode,Event* event){		
		keys[keyCode] = false;
	};
	_eventDispatcher->addEventListenerWithSceneGraphPriority(listener,this);

这段监听的C++代码语法我不懂,但是感觉怪怪的。直接赋一个匿名函数给一个对象,我不是很懂这语法。

Layer.h 注释掉 onKeyPressed/onKeyReleased啊
第一个回答我就说了,你头文件声明了,源文件没有定义

//void onKeyPressed(cocos2d::EventKeyboard::KeyCode keyCode,cocos2d::Event* event);
//void onKeyReleased(cocos2d::EventKeyboard::KeyCode keyCode,cocos2d::Event* event);

基础的C++,C++不熟,2dx就会很难 :dizzy_face: