Esempio n. 1
0
// Função que carrega os recursos globais
bool Carrega()
{
	int carga=0;
	BarraCarregamento(carga, NUM_RECURSOS);
	mfundo = CA2_CarregaMusica("./audio/2nd_PurpleMotion.s3m");
	BarraCarregamento(++carga, NUM_RECURSOS);
	fdigital = C2D2_CarregaFonte("./fontes/digital.png", 16);
	BarraCarregamento(++carga, NUM_RECURSOS);
	fsistema = C2D2_CarregaFonte("./fontes/isabelle64.png", 64);
	BarraCarregamento(++carga, NUM_RECURSOS);
	fpequeno = C2D2_CarregaFonte("./fontes/arial32.png", 32);
	BarraCarregamento(++carga, NUM_RECURSOS);
	tuxwindows = C2D2_CarregaSpriteSet("./graficos/tuxwindows.jpg", 0, 0);
	BarraCarregamento(++carga, NUM_RECURSOS);
	titulo = C2D2_CarregaSpriteSet("./graficos/titulo.png", 0, 0);
	BarraCarregamento(++carga, NUM_RECURSOS);
	sprite1 = C2D2_CarregaSpriteSet("./graficos/atriz.png", 32, 64);
	BarraCarregamento(++carga, NUM_RECURSOS);
	sprite2 = C2D2_CarregaSpriteSet("./graficos/estrela.png", 256, 256);
	BarraCarregamento(++carga, NUM_RECURSOS);

	return true;
}
Esempio n. 2
0
int main(int ac, char **av)
{
	srand((unsigned)time(NULL));
	WSAData wsaData;
	WSAStartup(MAKEWORD(2, 2), &wsaData);
	sockaddr_in meuEndereco;
	meuEndereco.sin_addr.s_addr = INADDR_ANY;
	meuEndereco.sin_family = AF_INET;
	meuEndereco.sin_port = htons(9000 + (rand()%1000));

	SOCKET meuSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

	bind(meuSocket, (sockaddr*)&meuEndereco, sizeof(meuEndereco));

	sockaddr_in destinatario;
	destinatario.sin_addr.s_addr = inet_addr("10.96.26.85");
	destinatario.sin_family = AF_INET;
	destinatario.sin_port = htons(8888);
	sockaddr_in enderecoRemetente;
	int enderecoRemetenteTam = sizeof(enderecoRemetente);

	int comando = 0;
	int cliente;
	int clientes = 0;
	int x[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
	int y[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

	sendto(meuSocket, (char*)&comando, sizeof(int), NULL, (sockaddr*)&destinatario, sizeof(destinatario));
	int r = recvfrom(meuSocket, (char*)&cliente, sizeof(int), NULL, (sockaddr*)&enderecoRemetente, &enderecoRemetenteTam);

	C2D2_Inicia(800, 600, C2D2_JANELA, C2D2_DESENHO_OPENGL, "Amostragem");
	
	C2D2_Botao *teclado;
	teclado = C2D2_PegaTeclas();
	C2D2_Mouse *mouse;
	mouse = C2D2_PegaMouse();

	C2D2_TrocaCorLimpezaTela(0, 120, 0);

	unsigned int cursorSprite;
	cursorSprite  = C2D2_CarregaSpriteSet("cursor.png", 25, 25);
	unsigned long proximaAtualizacaoFrame = C2D2_TempoSistema() + 100;



	while (!teclado[C2D2_ESC].pressionado)
	{
	
		if (proximaAtualizacaoFrame < C2D2_TempoSistema())
		{
			proximaAtualizacaoFrame = C2D2_TempoSistema() + 100;
			comando = 1;
			sendto(meuSocket, (char*)&comando, sizeof(int), NULL, (sockaddr*)&destinatario, sizeof(destinatario));
			sendto(meuSocket, (char*)&cliente, sizeof(int), NULL, (sockaddr*)&destinatario, sizeof(destinatario));
			sendto(meuSocket, (char*)&mouse->x, sizeof(int), NULL, (sockaddr*)&destinatario, sizeof(destinatario));
			sendto(meuSocket, (char*)&mouse->y, sizeof(int), NULL, (sockaddr*)&destinatario, sizeof(destinatario));
			comando = 2;
			sendto(meuSocket, (char*)&comando, sizeof(int), NULL, (sockaddr*)&destinatario, sizeof(destinatario));
			recvfrom(meuSocket, (char*)&clientes, sizeof(int), NULL, (sockaddr*)&enderecoRemetente, &enderecoRemetenteTam);
			for (int i = 0; i < clientes; i++){
				recvfrom(meuSocket, (char*)&x[i], sizeof(int), NULL, (sockaddr*)&enderecoRemetente, &enderecoRemetenteTam);
				recvfrom(meuSocket, (char*)&y[i], sizeof(int), NULL, (sockaddr*)&enderecoRemetente, &enderecoRemetenteTam);
			}

		}

		C2D2_LimpaTela();
		C2D2_DesenhaSprite(cursorSprite,
						   0, mouse->x, mouse->y);

		for (int i = 0; i < clientes; i++){
			if (i+1 == cliente) continue;
			C2D2_DesenhaSprite(cursorSprite,
				0, x[i], y[i]);
		}
		
		C2D2_Sincroniza(C2D2_FPS_PADRAO);		
	}

	C2D2_RemoveSpriteSet(cursorSprite);

	C2D2_Encerra();

	closesocket(meuSocket);
	WSACleanup();
	return 0;
}
Esempio n. 3
0
int main(int narg, char **valarg)
{
	// Inicia a Chien2D 2 e testa se deu tudo certo
	if(C2D2_Inicia(LARGTELA, ALTTELA, C2D2_JANELA, C2D2_DESENHO_PADRAO, "Rotação"))
		printf("Iniciou a Chien2D 2 com sucesso\n");
	else
	{
		printf("Falhou ao iniciar a Chien2D 2. Encerrando o programa.\n");
		return 0;
	}
	// os sprites
	unsigned int spritescertos[4], spriteserrados[4], help;
	// Coordenadas na tela
	float xf[16], yf[16], xtrf[16], ytrf[16];
	int xi[16], yi[16], xtri[16], ytri[16];
	float angulo = 0;
	// Escolhe se desenha certo ou não
	bool certo = false;
	// O zoom a aplicar
	int zoom = 200;
	for(int i=0;i<4;i++)
	{
	    char nome[40];
	    sprintf(nome, "graficos/rotacao%i.png", i);
	    spritescertos[i]= C2D2_CarregaSpriteSet(nome, TAMSPRITE+2, TAMSPRITE+2);    
    	xf[0+i*4] = xf[3+i*4] = -TAMSPRITE + TAMSPRITE*(i%2);
        xf[1+i*4] = xf[2+i*4] = (i%2)*TAMSPRITE;
    	yf[0+i*4] = yf[1+i*4] = (TAMSPRITE - (i/2)*TAMSPRITE); 
    	yf[2+i*4] = yf[3+i*4] = -(i/2)*TAMSPRITE;  
        // Faz o mesmo para os sprites errados
   	    sprintf(nome, "graficos/rotacaoerrado%i.png", i);
	    spriteserrados[i]= C2D2_CarregaSpriteSet(nome, TAMSPRITE, TAMSPRITE);    
    	xi[0+i*4] = xi[3+i*4] = -TAMSPRITE + TAMSPRITE*(i%2);
        xi[1+i*4] = xi[2+i*4] = (i%2)*TAMSPRITE;
    	yi[0+i*4] = yi[1+i*4] = (TAMSPRITE - (i/2)*TAMSPRITE); 
    	yi[2+i*4] = yi[3+i*4] = -(i/2)*TAMSPRITE;  
	}
	help = C2D2_CarregaSpriteSet("graficos/help.png", 0, 0);
	// Recupera o teclado
	C2D2_Botao *teclas = C2D2_PegaTeclas();
	// Recupera o mouse
	C2D2_Mouse *mouse = C2D2_PegaMouse();
    C2D2_TrocaCorLimpezaTela(255,0,0);
	do
	{
	    // Muda o zoom?
	    if(teclas[C2D2_Z].ativo && zoom > 1)
	        zoom--;
	    else if(teclas[C2D2_X].ativo && zoom < 400)
	        zoom++;
	    // Troca o render?
	    if(teclas[C2D2_ESPACO].pressionado)
	        certo = !certo;
	    // Calcula o novo angulo
	    if(teclas[C2D2_ENTER].ativo)
	        angulo+=1.5;
	    else
	        angulo+=0.3;
	    if(angulo>360)
	        angulo-=360;
	    // Rotaciona os pontos
	    for(int i=0;i<16;i++)
	    {
	        // Os pontos certos
            xtrf[i] = LARGTELA/2 + (xf[i]*zoom/100.0)*cos(RAD*angulo) + (yf[i]*zoom/100.0)*sin(RAD*angulo);
            ytrf[i] = ALTTELA/2 - ((xf[i]*zoom/100.0)*-sin(RAD*angulo) + (yf[i]*zoom/100.0)*cos(RAD*angulo));
	        // Os pontos errados
            xtri[i] = LARGTELA/2 + (xi[i]*zoom/100.0)*cos(RAD*angulo) + (yi[i]*zoom/100.0)*sin(RAD*angulo);
            ytri[i] = ALTTELA/2 - ((xi[i]*zoom/100.0)*-sin(RAD*angulo) + (yi[i]*zoom/100.0)*cos(RAD*angulo));
            
	    }
		// Limpa a tela com a cor de fundo atual
		C2D2_LimpaTela();
		// Desenha os sprites
		for(int i=0;i<4;i++)
		{
		    if(certo)
			    C2D2_DesenhaSpriteEfeitoSubpixel(spritescertos[i], 0, &xtrf[i*4], &ytrf[i*4], 255, 255, 255, 255);
			 else
			    C2D2_DesenhaSpriteEfeito(spriteserrados[i], 0, &xtri[i*4], &ytri[i*4], 255, 255, 255, 255);
	    }
	    C2D2_DesenhaSprite(help, 0, 10, 10);
		
		// Faz a troca do front buffer com o back buffer e atualiza as entradas
		C2D2_Sincroniza(C2D2_FPS_PADRAO);
	}
	while(!teclas[C2D2_ENCERRA].pressionado && !teclas[C2D2_ESC].pressionado);
	// Remove as imagens
	for(int i=0;i<4;i++)
	{
        C2D2_RemoveSpriteSet(spritescertos[i]);
        C2D2_RemoveSpriteSet(spriteserrados[i]);
     }
     C2D2_RemoveSpriteSet(help);

	// Encerra a Chien2D 2
	C2D2_Encerra();
	return 0;
}
Esempio n. 4
0
int main(int args, char **argc){
	//inicializações essenciais
	C2D2_Inicia(400, 400, C2D2_JANELA, C2D2_DESENHO_OPENGL, "Pong");	//cria a janela
	CA2_Inicia();
	C2D2_Botao* teclado = C2D2_PegaTeclas();		//possibilita poder reconhecer as teclas do teclado
	C2D2_Mouse* mouse = C2D2_PegaMouse();			//possibilita poder reconhecer os botoes do mouse

	unsigned int bola = C2D2_CarregaSpriteSet("Assets/ball.png", 63, 63);		//carrega a imagem da bola
	int xBola = 100;			//inicializa a posicao de x
	int yBola = 200;			//inicializa a posicao de y
	int speed = 1;				//define a velocidade incial da bola
	int direcaoX = 1;			//define a direcao inicial em x
	int direcaoY = 1;			//define a direcao inicial em y

	int totalBolaFrames = 8;	  //responsavel por verificar o numero de frames
	int atualBolaFrame = 0;		  //responsavel por verificar qual o frame atual
	int tempoBolaTransicao = 10;  //responsavel pelo tempo de troca de cada frame
								  //quando mais próximo de 0, mais rápido
	//carrega a imagem para a mira
	unsigned int mira = C2D2_CarregaSpriteSet("Assets/mira.png", 21, 21);

	//define os dados da barra1 (sprite, posicao em x, e em y e a velocidade
	unsigned int barra1 = C2D2_CarregaSpriteSet("Assets/barra.png", 61, 11);	
	int xBarra1 = 200;			
	int yBarra1 = 0;
	int speedBarra1 = 1;
	//define os dados da barra2 (sprite, posicao em x, e em y e a velocidade
	unsigned int barra2 = C2D2_CarregaSpriteSet("Assets/barra.png", 61, 11);
	int xBarra2 = 200;
	int yBarra2 = 390;
	int speedBarra2 = 1;

	//Carregar Texto
	unsigned int fonte = C2D2_CarregaFonte("Assets/fonte.png", 32);

	//pontuação primeiro jogador
	int scoreJogador1 = 0;
	char scoreJogador1Text[4];
	//pontuação segundo jogador
	int scoreJogador2 = 0;
	char scoreJogador2Text[4];

	//carregar som de batida
	unsigned int batida = CA2_CarregaEfeito("Assets/bate.ogg");

	//permite que o fundo seja de cor azul
	C2D2_TrocaCorLimpezaTela(0,100,255);
	//Update do jogo
	do{
		C2D2_LimpaTela();				//a cada vez que o programa roda, ele limpa a tela, evitando lixo de imagem

		//controle do jogador 1 com a barra 1
		if(teclado[C2D2_D].ativo && xBarra1 <= 339){
			xBarra1 = xBarra1+speedBarra1;
		}else if(teclado[C2D2_A].ativo && xBarra1 >= 0){
			xBarra1 = xBarra1-speedBarra1;
		}
		
		//controle jogador 2 com a barra 2
		if(teclado[C2D2_DIREITA].ativo && xBarra2 <= 339){
			xBarra2 = xBarra2+speedBarra2;
		}else if(teclado[C2D2_ESQUERDA].ativo && xBarra2 >= 0){
			xBarra2 = xBarra2-speedBarra2;
		}
		
		//detectar se houve colisao
		if(C2D2_ColidiuSprites(bola, atualBolaFrame, xBola, yBola, mira, 0, mouse->x, mouse->y)){
				//detectar os botoes do mouse
			if(mouse->botoes[C2D2_MESQUERDO].pressionado){
				C2D2_TrocaCorLimpezaTela(0,255,0);
			}else if(mouse->botoes[C2D2_MDIREITO].pressionado){
				C2D2_TrocaCorLimpezaTela(255, 0, 0);
			}else if(mouse->botoes[C2D2_MMEIO].pressionado){
				C2D2_TrocaCorLimpezaTela(0, 0, 255);
			}
		}


		//verifica se houve colisao da bola com a barra 1
		if(C2D2_ColidiuSprites(bola, 0, xBola, yBola, barra1, 0, xBarra1, yBarra1)){
			direcaoY *= -1;
			speed++;
			CA2_TocaEfeito(batida, CA2_CENTRO);
		}
		//verifica se houve colisao da bola com a barra 2
		if(C2D2_ColidiuSprites(bola, 0, xBola, yBola, barra2, 0, xBarra2, yBarra2)){
			direcaoY *= -1;
			speed++;
			CA2_TocaEfeito(batida, CA2_CENTRO);
		}
		
		//verifica se a bola bateu nas laterais do jogo
		if(xBola <= 0 || xBola >= 347){			//lateral direita esquerda
			direcaoX *=-1;
			if(xBola <=0){
				CA2_TocaEfeito(batida, CA2_ESQUERDA);
			}else if(xBola >= 347){
				CA2_TocaEfeito(batida, CA2_DIREITA);
			}
		}else if(yBola <= -10 || yBola >= 356){	//lateral inferior superior
			if(yBola <= -10){
				scoreJogador2++;
			}else if(yBola >= 356){
				scoreJogador1++;
			}
			xBola = 200;
			yBola = 200;
			speed = 1;
		}

		//a bola sempre esta em movimento
		xBola = xBola+(speed*direcaoX);			
		yBola = yBola+(speed*direcaoY);

		//animação da bola
		tempoBolaTransicao++;
		if(tempoBolaTransicao >= 2){
			atualBolaFrame++;
			if(atualBolaFrame>=totalBolaFrames){
				atualBolaFrame = 0;
			}
			tempoBolaTransicao = 0;
		}

		//Area de desenho. A ordem de desenho influencia
		C2D2_DesenhaSprite(mira, 0, mouse->x, mouse->y);
		C2D2_DesenhaTexto(fonte, 10, 50, "PONG__:D", C2D2_TEXTO_ESQUERDA);
		itoa(scoreJogador1, scoreJogador1Text, 10);
		C2D2_DesenhaTexto(fonte, 10, 85, scoreJogador1Text, C2D2_TEXTO_ESQUERDA);
		itoa(scoreJogador2, scoreJogador2Text, 10);
		C2D2_DesenhaTexto(fonte, 400, 85, scoreJogador2Text, C2D2_TEXTO_DIREITA);
		C2D2_DesenhaSprite(bola, atualBolaFrame, xBola, yBola);
		C2D2_DesenhaSprite(barra1, 0, xBarra1, yBarra1);
		C2D2_DesenhaSprite(barra2, 0, xBarra2, yBarra2);

		//sincroniza o jogo
		C2D2_Sincroniza(C2D2_FPS_PADRAO);
	}while(!teclado[C2D2_ESC].pressionado && !teclado[C2D2_ENCERRA].pressionado);

	CA2_Encerra();
	C2D2_Encerra();
	
	//finaliza o jogo
	return 0;
}
Esempio n. 5
0
void Shutar::Setup()
{
	//musicas do jogo
	musicas[0] = CA2_CarregaMusica("");
	musicas[1] = CA2_CarregaMusica("splashloop.wav");
	musicas[2] = CA2_CarregaMusica("bgloop.wav");


	//carrega sprites simples
	logoPUC = C2D2_CarregaSpriteSet("splashprojeto.png", 0, 0);
	menu = C2D2_CarregaSpriteSet("screenmenu.jpg", 0, 0);
	jogorolando = C2D2_CarregaSpriteSet("jogorolando.png", 0, 0);
	mouseTX = C2D2_CarregaSpriteSet("mira.png", 24, 24);
	hud_nergy = C2D2_CarregaSpriteSet("hud_energy.png", 120, 24);
	gameoverTela = C2D2_CarregaSpriteSet("tela_game_over.png", 0, 0);
	damage1 = C2D2_CarregaSpriteSet("damage_1.png", 276, 28);
	damage2 = C2D2_CarregaSpriteSet("damage_2.png", 276, 28);
	damage3 = C2D2_CarregaSpriteSet("damage_3.png", 276, 28);
	damage4 = C2D2_CarregaSpriteSet("damage_4.png", 276, 28);
	damage5 = C2D2_CarregaSpriteSet("damage_5.png", 276, 28);
	damage6 = C2D2_CarregaSpriteSet("damage_6.png", 276, 28);
	damage7 = C2D2_CarregaSpriteSet("damage_7.png", 276, 28);
	damage8 = C2D2_CarregaSpriteSet("damage_8.png", 276, 28);
	damage9 = C2D2_CarregaSpriteSet("damage_9.png", 276, 28);
	damage10 = C2D2_CarregaSpriteSet("damage_10.png", 276, 28);


	//carrega atores do jogo
	bool cnave = Nave_Carrega(); 
	bool ctiro = Tiro_Carrega();
	bool cbomba = Bomba_Carrega();
	bool credboss = RedBoss_Carrega();
	bool cminired = MiniRed_Carrega();
	bool cbatrobo = BatRobo_Carrega();
	bool cocorrencia = Ocorrencia_Carrega();
	

//inimigo MiniShooter
	bool cminishooter = MiniShooter_Carrega();
	bool ctiroInimigo = TiroInimigo_Carrega();



	//carrega mapa
	mapa = C2D2M_CarregaMapaMappy("mapa5.FMP", "sheetstar01.png");
	//mapa = C2D2M_CarregaMapaMappy("fase01_(90x90).FMP", "sheetstar01.png");
	
	int numcamadas = 4;
	//define a marca inical dos tiles programados da chien
	C2D2M_CamadaMarcas(mapa, 3, 89);

	C2D2M_VelocidadeCamadaMapa(mapa, numcamadas - 1, 1);
	// Faz um for esotérico para atribuir as velocidades. Se pra você facilitar, use uma camada só que não dá nada
	for (int i = 0, vel = numcamadas - 1; i<numcamadas - 1; i++, vel--)
		C2D2M_VelocidadeCamadaMapa(mapa, i, vel);

	int tpX = 0, tpY = 0; //apenas referencia para coord serem trazidas  

	//PROCURA SABER NUMERO TOTAL DE INIMIGOS TIPO BAT 
	if (C2D2M_PrimeiroBlocoMarca(mapa, MARCA_INIMIGO_BT, &tpX, &tpY))
	{
		numinimigosBT++;
		while (C2D2M_ProximoBlocoMarca(mapa, &tpX, &tpY))
			numinimigosBT++;
	}

	tpX = 0;
	tpY = 0;

	//PROCURA SABER NUMERO TOTAL DE INIMIGOS TIPO MINIRED
	if (C2D2M_PrimeiroBlocoMarca(mapa, MARCA_INIMIGOS_MINIRED, &tpX, &tpY))
	{
		numinimigosMR++;
		while (C2D2M_ProximoBlocoMarca(mapa, &tpX, &tpY))
			numinimigosMR++;
	}


	tpX = 0;
	tpY = 0;

	//PROCURA SABER NUMERO TOTAL DE INIMIGOS TIPO MINISHOOTER
	if (C2D2M_PrimeiroBlocoMarca(mapa, C2D2M_FIM, &tpX, &tpY))
	{
		numinimigosSH++;
		while (C2D2M_ProximoBlocoMarca(mapa, &tpX, &tpY))
			numinimigosSH++;
	}



	tpX = 0;
	tpY = 0;

	if (C2D2M_PrimeiroBlocoMarca(mapa, C2D2M_CHECK, &tpX, &tpY))
	{
		numOcorrencias++;
		while (C2D2M_ProximoBlocoMarca(mapa, &tpX, &tpY))
			numOcorrencias++;
	}

	tpX = 0;
	tpY = 0;

	if (C2D2M_PrimeiroBlocoMarca(mapa, MARCA_REDBOSS, &tpX, &tpY))
	{
		numinimigosRB++;
		while (C2D2M_ProximoBlocoMarca(mapa, &tpX, &tpY))
			numinimigosRB++;
	}




	if (cnave)
	{
		int xinit = 0, yinit = 0;
		// cria o personagem na posicao escolhida dentro do mapa com a tag INICIO
		C2D2M_PrimeiroBlocoMarca(mapa, C2D2M_INICIO, &xinit, &yinit); 
		nave = ATOR_CriaAtor(NAVE, xinit, yinit, 0);
		//nave = ATOR_CriaAtor(NAVE, xinit, yinit, 0);
	}
	
	if (ctiro)
	{

		shootOK = false;
	}

	if (cbomba)
	{

		BombaOK = false;
	}


	if (credboss)
	{

		inimigosRB = (Ator**)malloc(sizeof(Ator*)*numinimigosRB);
		memset(inimigosRB, 0, numinimigosRB*sizeof(Ator*));

		//posicao temporaria para referencia
		int xini, yini = 0;
		int indO = 0;

		if (C2D2M_PrimeiroBlocoMarca(mapa, MARCA_REDBOSS, &xini, &yini))
		{
			inimigosRB[indO++] = ATOR_CriaAtor(REDBOSS, xini, yini, 0);
			while (C2D2M_ProximoBlocoMarca(mapa, &xini, &yini))
				inimigosRB[indO++] = ATOR_CriaAtor(REDBOSS, xini, yini, 0);
		}
	}
		//redboss = ATOR_CriaAtor(REDBOSS, -5, 5, 0);


	if (ctiroInimigo)
	{

		tirosInimigos = (Ator**)malloc(sizeof(Ator*)*numTirosInimigos);
		memset(tirosInimigos, 0, numTirosInimigos*sizeof(Ator*));

		//posicao temporaria para referencia
		int xini, yini = 0;
		int indO = 0;

		tirosInimigos[indO++] = 0;
		while (indO < numTirosInimigos)
			tirosInimigos[indO++] = 0;

	}

	if (cminishooter)
	{


		inimigosSH = (Ator**)malloc(sizeof(Ator*)*numinimigosSH);
		memset(inimigosSH, 0, numinimigosSH*sizeof(Ator*));

		//posicao temporaria para referencia
		int xini, yini = 0;
		int indO = 0;

		if (C2D2M_PrimeiroBlocoMarca(mapa, C2D2M_FIM, &xini, &yini))
		{
			inimigosSH[indO++] = ATOR_CriaAtor(MINISHOOTER, xini, yini, 0);
			while (C2D2M_ProximoBlocoMarca(mapa, &xini, &yini))
				inimigosSH[indO++] = ATOR_CriaAtor(MINISHOOTER, xini, yini, 0);
		}
	}

	if (cminired)
	{

		inimigosMR = (Ator**)malloc(sizeof(Ator*)*numinimigosMR);
		memset(inimigosMR, 0, numinimigosMR*sizeof(Ator*));

		//posicao temporaria para referencia
		int xini, yini = 0;
		/*int indO = 0;*/

		if (C2D2M_PrimeiroBlocoMarca(mapa, MARCA_INIMIGOS_MINIRED, &xini, &yini))
		{
			inimigosMR[indO++] = ATOR_CriaAtor(MINIRED, xini, yini, 0);
			while (C2D2M_ProximoBlocoMarca(mapa, &xini, &yini))
				inimigosMR[indO++] = ATOR_CriaAtor(MINIRED, xini, yini, 0);
		}
	}
	

	if (cbatrobo)
	{

		inimigos = (Ator**)malloc(sizeof(Ator*)*numinimigosBT);
		memset(inimigos, 0, numinimigosBT*sizeof(Ator*));

		//posicao temporaria para referencia
		int xini, yini = 0;
		int indO = 0;

		if (C2D2M_PrimeiroBlocoMarca(mapa, MARCA_INIMIGO_BT, &xini, &yini))
		{
			inimigos[indO++] = ATOR_CriaAtor(BATROBO, xini, yini, 0);
			while (C2D2M_ProximoBlocoMarca(mapa, &xini, &yini))
				inimigos[indO++] = ATOR_CriaAtor(BATROBO, xini, yini, 0);
		}

	}

	if (cocorrencia)
	{
		ocorrencias = (Ator**)malloc(sizeof(Ator*)*numOcorrencias);
		memset(ocorrencias, 0, numOcorrencias*sizeof(Ator*));

		//posicao temporaria para referencia
		int xini, yini = 0;
		int indO = 0;

		if (C2D2M_PrimeiroBlocoMarca(mapa, C2D2M_CHECK, &xini, &yini))
		{
			ocorrencias[indO++] = ATOR_CriaAtor(OCORRENCIA, xini, yini, 0);
			while (C2D2M_ProximoBlocoMarca(mapa, &xini, &yini))
				ocorrencias[indO++] = ATOR_CriaAtor(OCORRENCIA, xini, yini, 0);
		}

	}


}