bool HelloWorld::onTouchBegan(Touch *touch, Event *event) { auto pos = touch->getLocation(); Size visibleSize = Director::getInstance()->getVisibleSize(); auto model = TreeModel::getInstance(); auto isRight = pos.x > visibleSize.width / 2; timber->playAction(isRight ? RIGHT : LEFT); if (isRight) { timber->setPosition(visibleSize.width / 2 + timber->getContentSize().width / 2 + 20, 150); } else { timber->setPosition(visibleSize.width / 2 - timber->getContentSize().width / 2 - 20, 150); } if (getIsOver()) { timber->setTimberDie(); gameOver(); return false; } auto dic = visibleSize.width * 2; auto time = 0.5; auto tree = model->deleteTreeHeadNode(); if (isRight) { tree->runAction(Spawn::create(RotateBy::create(time, -180), MoveBy::create(time, Vec2(-dic, 0)), nullptr)); } else { tree->runAction(Spawn::create(RotateBy::create(time, 180), MoveBy::create(time, Vec2(dic, 0)), nullptr)); } _score++; score->setScore(_score); if (getIsOver()) { timber->setTimberDie(); gameOver(); } return true; }
bool TouchSensorNode::isOver() { return getIsOver(); }