void Game::updateFrame(float t) { //检测食物碰撞 if (head->node->boundingBox().containsPoint(Point(food->node->boundingBox().getMidX(),food->node->boundingBox().getMidY()))) { //添加新节点,并设置其位置和方向 int index = allBody.size() - 1; SnakeNode* preNode = allBody.at(index); food->setAnchorPoint(Point::ZERO); setNodeLocation(food, preNode); this->addBody(food); food = SnakeNode::create(ENUM_TYPE::TYPE_FOOD); this->addChild(food); } //检测边缘碰撞 if (nodeImpact(head->node, edgeRect)) { this->gameOver(); return; } //检测头部和身体的碰撞 for (int i = 1; i < allBody.size(); i++) { if (head->node->boundingBox().containsPoint(Point(allBody.at(i)->node->boundingBox().getMidX(), allBody.at(i)->node->boundingBox().getMidY()))) { this->gameOver(); return; } } //移动bodys moveBodys(); }
NodeStatements::NodeStatements(Node * s, CompilerState & state) : Node(state), m_node(s), m_nodeNext(NULL) { if(s) setNodeLocation(s->getNodeLocation()); }
void init_node(nid_t nid, datacenter loc) { _me = nid; _loc = loc; setNodeLocation(nid, loc); init_server(); }