Пример #1
0
int main()
{
	_S_MAP_OBJECT ScreenBuf;

	map_init(&ScreenBuf);
	map_new(&ScreenBuf,35,17);
	
	system("clear");
	gotoxy(0,0);

	double angle=0;

	for(int i=0;i<35;i++){
		angle=(double)i*(180/35);
		//printf("%f\r\n",sin((i/180)*PI));
		double my=sin((angle/180)*PI)*8.0;
		map_PutTile(&ScreenBuf,i,8+my,1);

		my=cos((angle/180)*PI)*8;
		map_PutTile(&ScreenBuf,i,8+my,2);
	}
	
	map_dump(&ScreenBuf,Default_Tilepalete);


	return 0;
}
Пример #2
0
int main()
{
	_S_MAP_OBJECT screenBuf;
	map_init(&screenBuf);
	map_new(&screenBuf,16,16);

	map_PutTile(&screenBuf,6,5,4);
	map_PutTile(&screenBuf,5,5,4);
	map_PutTile(&screenBuf,4,5,4);
	map_PutTile(&screenBuf,6,6,4);
	map_PutTile(&screenBuf,5,6,4);
	map_PutTile(&screenBuf,4,6,4);
	map_PutTile(&screenBuf,6,7,4);
	map_PutTile(&screenBuf,5,7,4);
	map_PutTile(&screenBuf,4,7,4);

	_S_MAP_OBJECT humanObj;
	map_init(&humanObj);
	map_load(&humanObj,"human.dat");
	puts("\r\n-------------------------");
	map_drawTile_trn(&humanObj,5,5,&screenBuf);
	map_dump(&screenBuf,Default_Tilepalete);

	


	//map_dump(&carObj,Tilepalette);
	//map_dump(&screenBuffer,Tilepalette);


	return 0;
}
Пример #3
0
int main()
{

	_S_MAP_OBJECT ScreenBuf;
	map_init(&ScreenBuf);
	map_new(&ScreenBuf,35,17);

	system("clear");
	gotoxy(0,0);

	
	double startx,starty;
	double endx,endy;

	startx = 14; starty = 8;
	endx = 1; endy = 3;

	map_PutTile(&ScreenBuf,(int)startx,(int)starty,1);
	map_PutTile(&ScreenBuf,(int)endx,(int)endy,2);

////방향벡터 구하기	
	double mx,my;
	mx = startx; my = starty;

	double vx = endx - startx;
	double vy = endy - starty;
	double c = sqrt(vx*vx+vy*vy);

	vx /= c;
	vy /= c;
///////////////////////////////////
	
	//for(int i=0;i<8;i++) { 
	while(1) {
		mx += vx;
		my += vy;
		if( (int)mx == (int)endx && (int)my == (int)endy) {
			break;
		}

		map_PutTile(&ScreenBuf,(int)mx,(int)my,5);
		map_dump(&ScreenBuf,Default_Tilepalete);

	}

	return 0;


}
Пример #4
0
int main()
{
	_S_MAP_OBJECT ScreenBuf;
	map_init(&ScreenBuf);
	map_new(&ScreenBuf,35,17);

	system("clear");
	gotoxy(0,0);

	double target_x = 14;
	double target_y = 4;

	double center_x = 14;
	double center_y = 8;

	map_PutTile(&ScreenBuf,center_x,center_y,5);
	map_PutTile(&ScreenBuf,target_x,target_y,2);

	for(int i=0;i<360;i++)
	{
		double rad = ((double)i)/180.0 * PI;
		double tx,ty;
		
		tx = (target_x - center_x) * cos(rad) - 
			(target_y - center_y)*sin(rad);

		ty = (target_x-center_x) * sin(rad) +
			(target_y - center_y) * cos(rad);
	
		tx += center_x;
		ty += center_y;	

	//	printf("%f,%f \r\n",tx,ty);
		map_PutTile(&ScreenBuf,tx,ty,1);

	}

//	for(int i=0;i<35;i++) {
//		angle = (double) i *( 180 /35) ;	
//	}

	map_dump(&ScreenBuf,Default_Tilepalete);
	return 0;

}
Пример #5
0
Файл: ex4.c Проект: chaem/test
int main()
{
	char Tilepalette[] = {'.','#','@'};
	_S_MAP_OBJECT screenBuffer;
	map_init(&screenBuffer);
	map_new(&screenBuffer,16,16);

	_S_MAP_OBJECT carObj;map_init(&carObj);map_load(&carObj,"car.dat");

	puts("\r\n----------------");

	{
		_S_MAP_OBJECT *pObj = &carObj;
		
		
		for(int iy=0;iy < pObj->m_header.m_nHeight;iy++) {
			for(int ix = 0; ix < pObj->m_header.m_nWidth;ix++) {
				map_PutTile(&screenBuffer,ix + 5,iy + 5,
						pObj->m_pBuf[iy*pObj->m_header.m_nWidth + ix]);
			
			}
		
		}
		

		for(int iy=0;iy < pObj->m_header.m_nHeight;iy++) {
			for(int ix = 0; ix < pObj->m_header.m_nWidth;ix++) {
				map_PutTile(&screenBuffer,iy+10,ix+10,
						pObj->m_pBuf[iy*pObj->m_header.m_nWidth + ix]);
		
			}
		}
	
	}

	
	//map_dump(&carObj,Tilepalette);

	map_dump(&screenBuffer,Tilepalette);

	return 0;
	
}
Пример #6
0
void map_drawTile_mirror_v(_S_MAP_OBJECT *pObj,int posx,int posy,_S_MAP_OBJECT *pTarget) 
{	
	for(int iy=0;iy < pObj->m_header.m_nHeight;iy++) {
		for(int ix = 0; ix < pObj->m_header.m_nWidth;ix++) {
			map_PutTile(pTarget,ix + posx, posy -iy,
					pObj->m_pBuf[iy*pObj->m_header.m_nWidth + ix]);
		}
	}

}
Пример #7
0
void map_drawTile_trn(_S_MAP_OBJECT *pObj, int posx,int posy,_S_MAP_OBJECT *pTarget) 
{
	for(int iy=0;iy < pObj->m_header.m_nHeight;iy++) {
		for(int ix = 0; ix < pObj->m_header.m_nWidth;ix++) {
			int nPixel = pObj->m_pBuf[iy*pObj->m_header.m_nWidth + ix];
			if(nPixel != 0) {
				map_PutTile(pTarget,ix + posx,iy + posy,
						pObj->m_pBuf[iy*pObj->m_header.m_nWidth + ix]);
			}
		}
	}

}
Пример #8
0
void map_drawTile(_S_MAP_OBJECT *pObj,int posx,int posy,_S_MAP_OBJECT *pTarget)
{
//	_S_MAP_OBJECT *pObj = &humanObj;
//	_S_MAP_OBJECT *pTarget = &screenBuf;
//	int posx = 5;
//	int posy = 5;

	for(int iy=0;iy < pObj->m_header.m_nHeight;iy++) {
		for(int ix = 0; ix < pObj->m_header.m_nWidth;ix++) {
			map_PutTile(pTarget,ix + posx,iy + posy,
					pObj->m_pBuf[iy*pObj->m_header.m_nWidth + ix]);
		}
	}

}
Пример #9
0
int main()
{
    set_conio_terminal_mode();
	acc_tick=last_tick=0;
	
    system("clear");

	for(int i =0;i<2;i++) //총알
	{
		map_init(&gScreenBuffer[i]);
		map_new(&gScreenBuffer[i],35,16);
	}

	
	map_init(&gPlayer);
	map_load(&gPlayer,"plane1.dat");

	Plane_init(&gPlayerObject,&gPlayer,17,10);

	double target_x,target_y;
	double center_x,center_y;
	center_x = 14;
	center_y = 7;
	
	target_x = 14;
	target_y = 3;
	
	double angle = 0;
	
	
	
	while(bLoop) {
		//타이밍처리 
		clock_gettime(CLOCK_MONOTONIC,&work_timer);
		double cur_tick = work_timer.tv_sec + 
			(double)(work_timer.tv_nsec * 1e-9);
		double delta_tick = cur_tick - last_tick;
		last_tick = cur_tick;
		
		//실시간 입력
		if(kbhit() != 0) {
			char ch = getch();
			if(ch == 'q') {
				bLoop = 0;
				puts("bye~ \r");
			}
			//Plane_Apply(&gPlayerObject,delta_tick,ch);
            
            gPlayerObject.fpApply(&gPlayerObject,delta_tick,ch);
        }
         
         //apply 위치

		angle += (delta_tick * 45);
		double tx,ty;
		double rad = angle/180.0 * 3.141592;
		tx = (target_x - center_x) *cos(rad) - (target_y - center_y) * sin(rad);
		ty = (target_x - center_x) *sin(rad) - (target_y - center_y) * cos(rad);
		tx += center_x;
		ty += center_y;
		

        //타이밍 계산 
		acc_tick += delta_tick;
		if(acc_tick > 0.1) {
			//puts("tick...\r");
			gotoxy(0,0);
			//map_drawTile(&gScreenBuf[0],0,0,&gScreenBuf[1]);
			map_drawTile(&gScreenBuffer[0],0,0,&gScreenBuffer[1]);
			map_PutTile(&gScreenBuffer[1],tx,ty,2); 
            map_PutTile(&gScreenBuffer[1],center_x,center_y,5); 
			map_PutTile(&gScreenBuffer[1],target_x,target_y,1) ;
			
			gPlayerObject.fpDraw(&gPlayerObject,&gScreenBuffer[1]);

            //gotoxy(0,0);
			//Plane_Draw(&gPlayerObject,&gScreenBuf[1]);

			//map_dump(&gScreenBuf[1],Default_Tilepalete);
            map_dump(&gScreenBuffer[1],Default_Tilepalete);
            
			acc_tick = 0;
		}

	}

	
	return 0;

}
Пример #10
0
int main()
{
	set_conio_terminal_mode();
	acc_tick = last_tick = 0;

	for(int i=0;i<2;i++) {
		map_init(&gScreenBuffer[i]);
		map_new(&gScreenBuffer[i],35,15);
	}
	
	system("clear");
	
	double target_x,target_y;
	double center_x,center_y;
	center_x = 14;
	center_y = 7;
	target_x = 14;
	target_y = 3;
	double target_x2,target_y2;
	double center_x2,center_y2;
	center_x2 = 14;
	center_y2 = 3;
	target_x2 = 14;
	target_y2 = 2;

	double angle = 0;
	while(bLoop) {
		//타이밍 처리
		clock_gettime(CLOCK_MONOTONIC, &work_timer);
		double cur_tick = work_timer.tv_sec + 
			(double)(work_timer.tv_nsec * 1e-9);
		double delta_tick = cur_tick - last_tick;
		last_tick = cur_tick;
		//실시간 입력
		if(kbhit() != 0) {
			char ch = getch();
			if(ch == 'q') {
				bLoop = 0;
				puts("bye~ \r");
			}
			
		}
		/////////////////////////////////

		//apply 위치...
		angle += (delta_tick * 45);
		double tx,ty;
		double rad = angle/180 * 3.141592; 
		tx = (target_x-center_x) * cos(rad) - (target_y - center_y)*sin(rad) ;
		ty = (target_x-center_x) * sin(rad) + (target_y - center_y)*cos(rad) ;

		tx += center_x;
		ty += center_y;
		
		double tx2,ty2;
		double rad2 = angle/180 * 3.141592; 
		tx2 = (target_x2-center_x2) * cos(rad2) - (target_y2 - center_y2)*sin(rad2) ;
		ty2 = (target_x2-center_x2) * sin(rad2) + (target_y2 - center_y2)*cos(rad2) ;

		tx2 += center_x2;
		ty2 += center_y2;


		//타이밍 계산
		acc_tick += delta_tick;
		if(acc_tick > 0.1) {
			//puts("tick...\r");
			map_drawTile(&gScreenBuffer[0],0,0,&gScreenBuffer[1]);
			map_PutTile(&gScreenBuffer[1],tx,ty,2);
			map_PutTile(&gScreenBuffer[1],center_x,center_y,5);
			map_PutTile(&gScreenBuffer[1],target_x,target_y,1);
			map_PutTile(&gScreenBuffer[1],target_x2,target_y2,3);
			gotoxy(0,0);
			map_dump(&gScreenBuffer[1],Default_Tilepalette);
			acc_tick = 0;
		}

	}
}
Пример #11
0
Файл: ex1.c Проект: chaem/test
int main()
{
	set_conio_terminal_mode();
	acc_tick=last_tick=0;

	for (int i=0; i<2; i++) {
		map_init(&gScreenBuffer[i]);
		map_new(&gScreenBuffer[i],35,15);

	}
	map_init(&gMissile);
	map_load(&gMissile,"plasma.dat");
	missile_init(&gMissileObject,0,0,0,&gMissile);

	system("clear");	

	//target
	int targetx, targety;
	targety = 3;
	targetx = 2; 

	int fire_x = 24;
	int fire_y = 12;


	while(bLoop) {
		//time process
		clock_gettime(CLOCK_MONOTONIC,&work_timer);
		double cur_tick = work_timer.tv_sec + 
			(double)(work_timer.tv_nsec * 1e-9);
		double delta_tick = cur_tick - last_tick;
		last_tick = cur_tick;
		//input
		if(kbhit() != 0) {
			char ch = getch();
			if(ch == 'q') {
				bLoop = 0;
				puts("bye~ \r");
			}
			else if (ch == 'j') {
				double vx, vy, c;
				vx = targetx - fire_x;
				vy = targety - fire_y;
				c = sqrt(vx*vx + vy*vy);
				vx /= c;
				vy /= c;
		
				missile_fire(&gMissileObject,
				fire_x, fire_y,
				10.0, vx, vy,
				10);
					
			}
			else if (ch == 'a') {
				targetx -= 1;

			}
			else if (ch == 'd') {
				targetx += 1;

			}

		}

		// apply location
		missile_apply(&gMissileObject,delta_tick);

		// time calculate
		acc_tick += delta_tick;
		if(acc_tick > 0.1) {
			//puts("tick...\r");
			map_drawTile(&gScreenBuffer[0],0,0,&gScreenBuffer[1]);
			missile_draw(&gMissileObject,&gScreenBuffer[1]);	
			gotoxy(0,0);
			
			map_PutTile(&gScreenBuffer[1],fire_x,fire_y,1);
			map_PutTile(&gScreenBuffer[1],targetx,targety,5);

			map_dump(&gScreenBuffer[1],Default_Tilepalete);
			acc_tick = 0;
		}

	}

	return 0;

}
Пример #12
0
int main()
{
	int bLoop = 1;

	MapObject.m_header.m_nSkima = 1;
	MapObject.m_pBuf = NULL;
	char TilePalette[] = {'.','#','@','%'};

	while(bLoop)
	{
		char szCmd[32];
		gets(szCmd);
		char *pTemp = strtok(szCmd," ");
		if(!strcmp(pTemp,"exit")) {
			bLoop = 0;
			if ( MapObject.m_pBuf ) {
				free(MapObject.m_pBuf);
			}
		}

		else if(!strcmp(pTemp,"dump")) {
			map_dump( &MapObject,TilePalette);
		}
		else if(!strcmp(pTemp,"new")) {
			// new 8 4
			int nWidth = atoi(strtok(NULL," "));
			int nHeight = atoi(strtok(NULL," "));
			map_new( &MapObject,nWidth,nHeight);
		}
		else if(!strcmp(pTemp,"put")) {
			//put 1 2 1 (x y tile_index)
			int x,y,tile_index;
			x = atoi(strtok(NULL," "));
			y = atoi(strtok(NULL," "));
			tile_index = atoi(strtok(NULL," "));
			//MapObject.m_pBuf[ y*MapObject.m_header.m_nWidth + x ] = tile_index;
			map_PutTile(&MapObject,x,y,tile_index);
		}
		else if(!strcmp(pTemp,"hline")) {
			//hline 1 1 (x tile_index)
			int xpos, tile_index;
			xpos = atoi(strtok(NULL," "));
			tile_index = atoi(strtok(NULL," "));

			for(int iy=0;iy<MapObject.m_header.m_nHeight;iy++){
				MapObject.m_pBuf[ iy*MapObject.m_header.m_nWidth + xpos ] = tile_index;
			}
		}
		else if(!strcmp(pTemp,"vline")) {
			int ypos, tile_index;
			ypos = atoi(strtok(NULL," "));
			tile_index = atoi(strtok(NULL," "));

			for(int ix=0;ix<MapObject.m_header.m_nWidth;ix++) {
				MapObject.m_pBuf[ ix + ypos*MapObject.m_header.m_nWidth ] = tile_index;
			}
		}
		else if(!strcmp(pTemp,"save")) {
			//save filename
			char *pTemp = strtok(NULL," ");
			map_save(&MapObject,pTemp);
			puts("Save OK");
		}
		else if(!strcmp(pTemp,"load")) {
			//load filename
			char *pTemp = strtok(NULL," ");
			map_load(&MapObject,pTemp);
			puts("Load OK");	
		}
		else if(!strcmp(pTemp,"tridraw_1")) {
			// tridraw_1 1(tile index)
			
			int nTileIndex = atoi(strtok(NULL," "));
			int nHeight = MapObject.m_header.m_nHeight;
			int nWidth = MapObject.m_header.m_nWidth;
					
			for(int iy=0;iy<nHeight;iy++) {
				for(int ix=0;(ix<iy) && (ix<nWidth);ix++) {
					MapObject.m_pBuf[ iy*nWidth +ix ]=nTileIndex;
				}
			}

		}

		
		else if(!strcmp(pTemp,"draw_cross")) {
			//draw_cross 1 2 1
			int x,y,tile_index;
			x = atoi(strtok(NULL," "));
			y = atoi(strtok(NULL," "));
			tile_index = atoi(strtok(NULL," "));
			
			MapObject.m_pBuf[ y*MapObject.m_header.m_nWidth + x ] = tile_index;
			MapObject.m_pBuf[ y*MapObject.m_header.m_nWidth + (x+1) ] = tile_index;
			MapObject.m_pBuf[ y*MapObject.m_header.m_nWidth + (x-1) ] = tile_index;
			MapObject.m_pBuf[ (y-1)*MapObject.m_header.m_nWidth + x ] = tile_index;
			MapObject.m_pBuf[ (y+1)*MapObject.m_header.m_nWidth + x ] = tile_index;






		}



	}

	return 0;
}
Пример #13
0
int main()
{
	int bLoop = 1;

	MapObject.m_header.m_nSkima = 1;
	MapObject.m_pBuf = NULL;
	char TilePalette[] = {'.','#','@','%'};

	while(bLoop)
	{
		char szCmd[32];
		gets(szCmd);
		char *pTemp = strtok(szCmd," ");
		if(!strcmp(pTemp,"exit")) {
			bLoop = 0;
			if( MapObject.m_pBuf ) {
				free(MapObject.m_pBuf);
			}
		}
		else if(!strcmp(pTemp,"dump")) {
			map_dump(&MapObject,TilePalette);
		}
		else if(!strcmp(pTemp,"new")) {
			int nWidth = atoi(strtok(NULL," "));
			int nHeight = atoi(strtok(NULL," "));
			map_new(&MapObject,nWidth,nHeight);
		}
		else if(!strcmp(pTemp,"put")) {
			//put 1 2 2 (x y tile_index)
			int x,y,tile_index;
			x = atoi(strtok(NULL," "));
			y = atoi(strtok(NULL," "));
			tile_index = atoi(strtok(NULL," "));
			
			//MapObject.m_pBuf[y*MapObject.m_header.m_nWidth + x] = tile_index ;
			map_PutTile(&MapObject,x,y,tile_index);
		}
		else if(!strcmp(pTemp,"hline")) {
			int xpos,tile_index;
			xpos = atoi(strtok(NULL," "));
			tile_index = atoi(strtok(NULL," "));
			
			for(int iy =0;iy <MapObject.m_header.m_nHeight;iy++) {
				MapObject.m_pBuf[iy*MapObject.m_header.m_nWidth +xpos] = tile_index;
			}
		}
		else if(!strcmp(pTemp,"vline")) {
			int ypos,tile_index;
			ypos = atoi(strtok(NULL," "));
			tile_index = atoi(strtok(NULL," "));

			for(int ix = 0;ix < MapObject.m_header.m_nWidth;ix++) {
				MapObject.m_pBuf[ix + ypos*MapObject.m_header.m_nWidth] = tile_index;
			}
		}
		else if( !strcmp(pTemp,"save")) {
			//save filename
			char *pTemp = strtok(NULL," ");
			map_save(&MapObject,pTemp);
			puts("save ok");
		}
		else if( !strcmp(pTemp,"load")) {
			//load filename
			char *pTemp = strtok(NULL," ");
			map_load(&MapObject,pTemp);
			puts("load ok");
		
		}
		else if(!strcmp(pTemp,"tridraw_1")) {
			//tridraw_1 1
			int tile_index = atoi(strtok(NULL," "));
			for(int y = 0;y < MapObject.m_header.m_nHeight;y++) {
				for(int x = 0;x < y+1 ;x++) {
					MapObject.m_pBuf[y*MapObject.m_header.m_nWidth + x] = tile_index;
				}
			}
		}
		else if(!strcmp(pTemp,"draw_cross")) {
			//draw_cross 1 2 1
			int x,y,tile_index;
			x = atoi(strtok(NULL," "));
			y = atoi(strtok(NULL," "));
			tile_index = atoi(strtok(NULL," "));
			for(int iy =-1;iy <2;iy++) {
				for(int ix=-1;ix < 2;ix++) {
					MapObject.m_pBuf[(iy+y)*MapObject.m_header.m_nHeight + x] = tile_index;
					MapObject.m_pBuf[y*MapObject.m_header.m_nWidth +(ix+x)] = tile_index;

				}
			}

		}

	}

	return 0;
}
Пример #14
0
Файл: ex7.c Проект: chaem/test
int main()
{
	set_conio_terminal_mode();
	acc_tick=last_tick=0;

	for (int i=0; i<2; i++) {
		map_init(&gScreenBuffer[i]);
		map_new(&gScreenBuffer[i],35,15);

	}

	system("clear");	

	double target_x, target_y;
	double center_x, center_y;
	center_x = 14;
	center_y = 7;
	target_x = 14;
	target_y = 3;		
		 
	double angle = 0;

	while(bLoop) {
		//time process
		clock_gettime(CLOCK_MONOTONIC,&work_timer);
		double cur_tick = work_timer.tv_sec + 
			(double)(work_timer.tv_nsec * 1e-9);
		double delta_tick = cur_tick - last_tick;
		last_tick = cur_tick;
		//input
		if(kbhit() != 0) {
			char ch = getch();
			if(ch == 'q') {
				bLoop = 0;
				puts("bye~ \r");
			}

		}

		angle += (delta_tick * 45); // angle 45'+
		double tx, ty;
		double rad = angle/180.0 * 3.141592;
		tx = (target_x - center_x) * cos(rad) - (target_y - center_y) * sin(rad); 
		ty = (target_x - center_x) * sin(rad) - (target_y - center_y) * cos(rad); 
		tx += center_x;
		ty += center_y;


		// time calculate
		acc_tick += delta_tick;
		if(acc_tick > 1.0) {
			//puts("tick...\r");
			map_drawTile(&gScreenBuffer[0],0,0,&gScreenBuffer[1]);
			map_PutTile(&gScreenBuffer[1],tx,ty,2);
			map_PutTile(&gScreenBuffer[1],center_x,center_y,5);
			map_PutTile(&gScreenBuffer[1],target_x,target_y,1);

			gotoxy(0,0);
			map_dump(&gScreenBuffer[1],Default_Tilepalete);
			acc_tick = 0;
		}

	}

	return 0;

}