예제 #1
0
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();

}
예제 #2
0
 NodeStatements::NodeStatements(Node * s, CompilerState & state) : Node(state), m_node(s), m_nodeNext(NULL)
 {
   if(s)
     setNodeLocation(s->getNodeLocation());
 }
예제 #3
0
파일: node.cpp 프로젝트: wjmelements/iu
void init_node(nid_t nid, datacenter loc) {
    _me = nid;
    _loc = loc;
    setNodeLocation(nid, loc);
    init_server();
}