Staram się więc stworzyć prostą aplikację przy użyciu najnowszej kompilacji cocos2d-x i z jakiegoś powodu nie mogę uzyskać połączenia za pomocą dotyku. Oto moje zajęcia:Nie można uzyskać dotyku do pracy w wieloplatformowej aplikacji cocos2d-x
class GameLayer : public cocos2d::Layer
{
public:
static cocos2d::Layer* createLayer();
void update(float dt);
virtual bool init();
CREATE_FUNC(GameLayer);
private:
bool onTouchBegan(cocos2d::Touch* touch, cocos2d::Event* event);
void onTouchMoved(cocos2d::Touch* touch, cocos2d::Event* event);
void onTouchEnded(cocos2d::Touch* touch, cocos2d::Event* event);
};
cocos2d::Layer* GameLayer::createLayer()
{
GameLayer *layer = GameLayer::create();
return layer;
}
bool GameLayer::init()
{
if (!cocos2d::Layer::init())
{
return false;
}
this->schedule(schedule_selector(GameLayer::update));
this->setTouchEnabled(true);
return true;
}
void GameLayer::update(float dt)
{
}
bool GameLayer::onTouchBegan(cocos2d::Touch* touch, cocos2d::Event* event)
{
cocos2d::log("You touched %f, %f", touch->getLocationInView().x, touch->getLocationInView().y);
return true;
}
void GameLayer::onTouchMoved(cocos2d::Touch* touch, cocos2d::Event* event)
{
}
void GameLayer::onTouchEnded(cocos2d::Touch* touch, cocos2d::Event* event)
{
}
zauważyłem kiedy zadzwonić do wywołania setTouchEnabled
że wewnętrzny nazywany _running
flaga jest ustawiona na false, więc nie ma właściwie zarejestrować moje zdarzeń dotykowych. Jednak nie mogę się domyślić, dlaczego tak się dzieje. Czy dzwonię do rzeczy nieprawidłowo lub w niewłaściwej kolejności?
Wygląda na to, że 'registerWithTouchDispatcher' jest przestarzałe, a' getTouchDispatcher() 'już nie istnieje w' Director' żadnej koncepcji jaki jest odpowiednik teraz? –
Cóż, interfejs API został zaktualizowany ponownie. :) Proszę spojrzeć na moją zaktualizowaną odpowiedź. – nomann
Dzięki za pomoc, używam wersji 3.0, która była właśnie na ich głównej stronie, a nie na github (co również zmieniło wszystko). Tak więc moja wersja nie ma również zdarzenia EventListener. Zamierzam uaktualnić to, co mają w Github, będę Cię informować na bieżąco, jeśli uda mi się go uruchomić. –