Esempio n. 1
0
void MapTileLayer::draw()
{
	if (map)
	{
		CHECK_GL_ERROR_DEBUG();
		CCDirector* direct = CCDirector::sharedDirector();
		int i = 0;
		CCSize mapTotalSize;
		mapTotalSize.width = map->nodeData->matrix->col * map->nodeSize->width;
		mapTotalSize.height = map->nodeData->matrix->row * map->nodeSize->height;
		for (i = 0; i <= map->nodeData->matrix->col; i ++)
		{
			MSPoint3D startP(i * map->nodeSize->width, 0, 0);
			MSPoint3D endP(i * map->nodeSize->width, 0, mapTotalSize.height);
			CCPoint sp = MapUtils::convertScreen(startP);
			CCPoint ep = MapUtils::convertScreen(endP);
			sp.y = CoordinateUtils::calculateCoordinateSystem(sp.y, direct->getWinSize());
			ep.y = CoordinateUtils::calculateCoordinateSystem(ep.y, direct->getWinSize());
			ccDrawLine(sp, ep);	
		}
		for (i = 0; i <= map->nodeData->matrix->row; i ++)
		{
			MSPoint3D startQ(0, 0, i * map->nodeSize->height);
			MSPoint3D endQ(mapTotalSize.width, 0, i * map->nodeSize->height);
			CCPoint sq = MapUtils::convertScreen(startQ);
			CCPoint eq = MapUtils::convertScreen(endQ);
			sq.y = CoordinateUtils::calculateCoordinateSystem(sq.y, direct->getWinSize());
			eq.y = CoordinateUtils::calculateCoordinateSystem(eq.y, direct->getWinSize());
			ccDrawLine(sq, eq);
		}
		CHECK_GL_ERROR_DEBUG();
	}
	else
	{
		CCLayer::draw();
	}

}
Esempio n. 2
0
Photon LaserSource::getPhoton()
{
	float angle = getRotation();
	if(angle > 0)
	{
		angle = 360 - angle;
	}
	int direction  = (int)(angle/45)+1;
	Photon startP(direction, color);
	float deltaX = 0;
	float deltaY = 0;
	if(direction == 1 || direction == 5)
	{
		deltaX = (float)(BLOCK_SIZE*(3-direction)/4);
	}
	else if(direction == 3 || direction == 7)
	{
		deltaY = (float)(BLOCK_SIZE*(direction-5)/4);
	}
	sf::Vector2f delta(deltaX, deltaY);
	startP.setPosition(LaserSource::getPosition() + delta);
	return startP;
}