프로그래밍/게임만들기 스피비 2011. 4. 14. 12:09
BOOL WINAPI SetConsoleTextAttribute( __in HANDLE hConsoleOutput, __in WORD wAttributes ); hConsoleOutput은 콘솔 출력 스트림을 넣어주면 됩니다. GetStdHandle(STD_OUTPUT_HANDLE)로요. wAttributes는 본격 색깔을 지정해줍니다. 색깔 숫자 검정 0 어두운 파랑 1 어두운 초록 2 어두운 하늘 3 어두운 빨강 4 어두운 보라 5 어두운 노랑 6 회색 7 어두운 회색 8 파랑 9 초록 10 하늘 11 빨강 12 보라 13 노랑 14 하양 15 이 순서대로입니다. 이것은 글자의 색이고 배경색 (전경색)을 바꾸려면 *16을 하면 됩니다. 암산이 빠르신분들은 아예 16진수로 암산하셔서 쓰셔도 됩니다. 그..
프로그래밍/게임만들기 스피비 2011. 3. 16. 11:36
게임 맵을 만들때 보통 맵을 많이 생각한다. 이때 생각할 점이 몇개 있다. int MapArray[5][10] = { {1,1,1,1,1,1,1,1,1,1}, {1,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,2,0,0,0,1}, {1,1,1,1,1,1,1,1,1,1}}; // 0 번은 공백 // 1번은 벽 // 2번은 주인공 저 배열맵에서 Index 참조할 커서를 설정한다 int CurX; int CurY; 이 CurX,CurY는 단지 배열의 인덱스를 참조하는것이지 좌표값이 절대 아니다. 그래서 이것을 출력화면 콘솔화면이든 윈도우 화면이든 좌표값을 쏴줄땐, 좌표: ( CurX*i + j , CurY*i + k ) 이런 식이 된다. 이것을 알고 나면 콘..
프로그래밍/게임만들기 스피비 2011. 3. 16. 11:13
생각할 수 있는 핵심로직을 생각해봤다. 1. 배열로 맵을 구현한다: 0 : 비어있다. 1 : 흰돌 2 : 검은돌 2. 넘길수있는지 체크 : 1)오목이랑 비슷하다. 2)배열을 조사하면서 3)커서 바로 옆에있는 왼,오.위,아래,대각선의 위치에 같은 돌이거나 공백이면 X 4)다른 돌일때 커서를 그 방향으로 계속움직이면서 같은돌이 나올때 까지 옆으로 이동 하는데 이동중 자기자신돌이 나오면 O ( 이때 움직인 거리나 좌표를 구해서 차후 반복문에 이용 ) 이동중 자기자신돌이 나오지 않으면 걍 X 3. 넘기는것을 구현 : 앞에서 구한 길이를 이용하여 반복하면서 맵을 바꿔주고 그려줌 4. AI 구현 (NPC구현) : 컴퓨터가 놓을 수 있는 임의의 배열을 만들어 우선순위를 넣어준다.(0이면 가장 작고, 숫자가 큰 것일수..
프로그래밍/게임만들기 스피비 2011. 3. 13. 01:54
1.Sleep함수로 Delay시키기 #include 헤더에서 제공되는 Sleep(n) 함수를 써서 시간관리 하기. Sleep(1000)의미는 1초간 프로그램을 지연시킨다는 의미. 이것을 이용해서 프로그램의 속도를 줄일수도 있다. (전체 또는 부분별로 사용하면 유용) 2.상태변수 2개를 두어 시간관리하기 int nFrame; //nFrame 각각 정해져있는 고유한값(상태변수,플래그) int nStay; //nStay 루프마다 변해는값(상태변수,플래그) 이런식으로 무한루프 안에서 nStay안에 nFrame으로 초기화를 시킨다. while(1) { nStay = nFrame; while(2) { if( --nStay ==0 ) nStay = nFrame; 내가 하고싶은 로직 쏼라쏼라~ break; } Slee..
프로그래밍/게임만들기 스피비 2011. 3. 12. 14:10
콘솔 게임의 핵심은 동시에 여러 개의 물체를 다른 속도로 움직이는 것! 이것을 사용하려면 시간을 이용해야한다. 즉! 시분할을 해야한다는것!