Oxygine C++ 事件侦听器错误
Oxygine c++ Event Listener error
我使用 Oxygine 框架,当我尝试向 sprite 添加事件侦听器时,它在使用 CLOSURE 时出现此错误
这是我的class
#include "MainActor.h"
#include "Utils.h"
#include "Map.h"
#include "Hero.h"
#include "res.h"
#include <iostream>
using namespace oxygine;
spHero hero;
MainActor::MainActor(): _world(0) {
setSize(getStage()->getSize());
spMap map = new Map("map.xml", "Sprites.png");
addChild(map);
_world = new b2World(b2Vec2(0, 10));
hero = new Hero(100, 10, 0, 100,
res::resources.getResAnim("hero_idle_up"), _world, getSize() / 2,
0.6);
addChild(hero);
map->addEventListener(TouchEvent::CLICK, CLOSURE(this,
&MainActor::Move));
}
void MainActor::Move(Event* ev) {
TouchEvent* tev = safeCast<TouchEvent*>(ev);
hero->addTween(TweenPosition(tev->localPosition), 1000);
}
并且在这一行给出了以下错误
map->addEventListener(TouchEvent::CLICK, CLOSURE(this, &MainActor::Move));
错误:没有重载函数的实例 "detail::CreateClosure" 与参数列表匹配。
这是一种轻率的做法,因为其中一种方法与头文件中的方法不对应。现在已经解决
我使用 Oxygine 框架,当我尝试向 sprite 添加事件侦听器时,它在使用 CLOSURE 时出现此错误
这是我的class
#include "MainActor.h"
#include "Utils.h"
#include "Map.h"
#include "Hero.h"
#include "res.h"
#include <iostream>
using namespace oxygine;
spHero hero;
MainActor::MainActor(): _world(0) {
setSize(getStage()->getSize());
spMap map = new Map("map.xml", "Sprites.png");
addChild(map);
_world = new b2World(b2Vec2(0, 10));
hero = new Hero(100, 10, 0, 100,
res::resources.getResAnim("hero_idle_up"), _world, getSize() / 2,
0.6);
addChild(hero);
map->addEventListener(TouchEvent::CLICK, CLOSURE(this,
&MainActor::Move));
}
void MainActor::Move(Event* ev) {
TouchEvent* tev = safeCast<TouchEvent*>(ev);
hero->addTween(TweenPosition(tev->localPosition), 1000);
}
并且在这一行给出了以下错误
map->addEventListener(TouchEvent::CLICK, CLOSURE(this, &MainActor::Move));
错误:没有重载函数的实例 "detail::CreateClosure" 与参数列表匹配。
这是一种轻率的做法,因为其中一种方法与头文件中的方法不对应。现在已经解决