홈
태그
미디어로그
위치로그
방명록
분류 전체보기
(112)
0x01 Notice
(11)
diary
(8)
0x02 Tips
(7)
iOS
(5)
Facebook
(2)
Twitter
(0)
0x03 Thinks
(4)
0x04 Security
(14)
news
(10)
web
(0)
mobile
(0)
system
(1)
forensic
(0)
vulnerabilities
(3)
0x05 Programming
(76)
C / C++
(12)
Java
(5)
Object -C
(3)
API / MFC
(11)
Unix/Linux
(6)
Socket Programing
(6)
Kelnel Programing
(6)
iPhone Programing
(19)
Android Programing
(5)
Web Programming
(2)
ABOUT ME
-
트위터
인스타그램
Today
-
Yesterday
-
Total
-
::j0ker's Lab::
::j0ker's Lab::
메뉴
검색
컨텐츠 검색
블로그 내 검색
[API] 늑대의 침공 기본형
0x05 Programming/API / MFC
2009. 10. 30. 11:45
#include "stdafx.h" #include <stdlib.h> #include <time.h> #include "my.h" #define MAX_LAMB_COUNT 10 struct S_MY { int x; int y; int w; int h; int life; char name[10]; }; S_MY g_lamb[MAX_LAMB_COUNT]; S_MY g_wolf = {100,100,20,20,10,"wolf"}; int g_score = 0; void MyIni(HWND hWnd, WPARAM wParam, LPARAM lParam) { int i; srand(time(NULL)); for(i=0;i<MAX_LAMB_COUNT;i++) { g_lamb[i].x = rand()%600; g_lamb[i].y = rand()%600; g_lamb[i].w = 30; g_lamb[i].h = 30; g_lamb[i].life = 10; wsprintf(g_lamb[i].name,"%d",i); } SetTimer(hWnd, 1, 200, NULL); } void MyLambTimer(HWND hWnd, WPARAM wParam, LPARAM lParam) { int i; int x1,y1; /* WOLF */ int x2,y2; /* LAMB */ x1 = g_wolf.x + g_wolf.w/2; y1 = g_wolf.y + g_wolf.h/2; for(i=0;i<MAX_LAMB_COUNT;i++) { if(g_lamb[i].life <=0) continue; x2 = g_lamb[i].x + g_lamb[i].w/2; y2 = g_lamb[i].y + g_lamb[i].h/2; g_lamb[i].x +=rand()%6; g_lamb[i].y +=rand()%4; if(600 < g_lamb[i].x) { g_lamb[i].x = 0; g_lamb[i].y = 0; } if(g_lamb[i].x < 0) { g_lamb[i].x = rand()%500; g_lamb[i].y = rand()%300; } if(g_lamb[i].x <= 600) { g_lamb[i].x -=10; } if(abs(x1-x2)< 70) { if(x1 < x2) { g_lamb[i].x += 10; if(600 <= g_lamb[i].x) { g_lamb[i].x -= 10; } if(g_lamb[i].x <= 0) { g_lamb[i].x += 10; } } else { g_lamb[i].x -= 10; } } if(abs(y1-y2)< 70) { if(y1 < y2) { g_lamb[i].y += 10; if(600 <= g_lamb[i].y) { g_lamb[i].y -= 10; } if(g_lamb[i].y <= 0) { g_lamb[i].y += 10; } } else { g_lamb[i].y -= 10; } } } InvalidateRect(hWnd, NULL , TRUE); } void MyPaint(HWND hWnd, WPARAM wParam, LPARAM lParam, HDC hdc) { int i; char temp[20]; Rectangle(hdc,0,0,600,600); /* 잔디밭 */ /*--------------- 양 & 늑대 그리기 --------------------*/ for(i=0;i<MAX_LAMB_COUNT;i++) { if(g_lamb[i].life <= 0) { continue; } Rectangle(hdc,g_lamb[i].x,g_lamb[i].y,g_lamb[i].x+g_lamb[i].w,g_lamb[i].y+g_lamb[i].h); TextOut(hdc,g_lamb[i].x+3,g_lamb[i].y+3,g_lamb[i].name,strlen(g_lamb[i].name)); } Ellipse(hdc,g_wolf.x,g_wolf.y,g_wolf.x+g_wolf.w,g_wolf.y+g_wolf.h); TextOut(hdc,g_wolf.x+3,g_wolf.y+3,g_wolf.name,strlen(g_wolf.name)); /*------------------- 점수 출력 ----------------------*/ wsprintf(temp,"SCORE : %d",g_score); TextOut(hdc,10,10,temp,strlen(temp)); } void Check() { RECT r1,r2,r3; int i; r2.left = g_wolf.x; r2.top = g_wolf.y; r2.right = g_wolf.x+g_wolf.w; r2.bottom = g_wolf.y+g_wolf.h; for(i=0;i<MAX_LAMB_COUNT;i++) { if(g_lamb[i].life <= 0) { continue; } r3.left = g_lamb[i].x; r3.top = g_lamb[i].y; r3.right = g_lamb[i].x+g_lamb[i].w; r3.bottom = g_lamb[i].y+g_lamb[i].h; if(TRUE == IntersectRect(&r1,&r2,&r3)) { g_score += 100; g_lamb[i].life = 0; break; } } } void MyKeyDown(HWND hWnd, WPARAM wParam, LPARAM lParam) { switch(wParam) { case VK_LEFT: g_wolf.x -=15; break; case VK_RIGHT: g_wolf.x +=15; break; case VK_UP: g_wolf.y -=15; break; case VK_DOWN: g_wolf.y +=15; break; default: break; } Check(); InvalidateRect(hWnd, NULL, TRUE); }
공유하기
게시글 관리
::j0ker's Lab::
저작자표시
관련글
관련글 더보기
[API] 11.13 수업
[API] 비트맵 적용 숫자퍼즐
[API]늑대의 침공 가상키보드 적용 [미완성]
[API]산성비 응용
티스토리툴바