전체 글

게임/웹 개발 외 다양한 주제를 다루는 블로그.
· Devlog/Java
* 클래스의 구성 - 필드(Field) , 메소드(Method) * final :: 상속을 금지하는 키워드 SDK 내에 만들어져있는 소스들을 보면 모두 final로 되어있는걸 볼수 있다. 함수에 있다면... - 함수 내용 수정 불가 변수에 있다면... - 변수값 수정 불가 * abstract :: 인스턴스화 금지 키워드. [ 추 상 화 ] new 를 이용하여 생성할수 없음. 상속이나 다른 기능은 사용가능. 클래스 내부에 추상 메소드를 한개라도 가지고 있다면, 해당 클래스는 추상클래스가 되어야 한다. 추상 메소드가 하나도 없어도 클래스 자체를 추상클래스로 사용할 수 있음. ======== 시험 범위(중간) p.291 까지 =========== * interface : 클래스 안의 모든 메소드가 추상 메소드..
· Devlog/Java
class Sam { int x = 5; static int y = 7; Sam() { System.out.println("생성자"); } { x += 5; System.out.println("블럭"+x); } // 이름이 없어 호출할수 없으므로, 생성할때 가장 먼저 생성 됨. static { y +=2; System.out.println("S블럭"+y); } void a() {System.out.println("A함수");} static void b() {System.out.println("B함수");} public static void main(String[] args) { Sam sa = new Sam(); // new 를 함으로써 1.인스턴스(객체) = Non static // 2.레퍼런스 변수 ..
뭔가 엄청 복잡해보이는 에러코드지만, 실상은 실수로 인한 컴파일 에러. 프로젝트 생성 시에 콘솔프로그램으로 생성한게 아니고, 윈도우 응용프로그램으로 생성 하는 바람에 나오는 에러. 윈도우 응용프로그램에서 콘솔 코드를 짜서 쓰니 오류가 나올수밖에 없는. . . . * 해결 방법 * 프로젝트 속성( Alt + F7 ) - 구성 속성 - 링커 - 시스템 - 하위 시스템 부분 콘솔(/SUBSYSTEM:CONSOLE)로 변경!!
send() - > 송신버퍼로 데이터를 보내 줌. 송신버퍼의 데이터는 운영체제의 통제에 따라 데이터가 전송 됨. recv() - > 수신버퍼에서 데이터를 가져 옴. 수신버퍼의 데이터 역시 운영체제의 통제에 데이터를 가져 감. 송신버퍼가 꽉 차거나, 수신 버퍼의 데이터가 없을때 각각 send() 와 recv()가 블록 됨. 메시지 설계시 고려 사항 * 경계 구분 [송신자 입장] - 항상 고정 크기 데이터 전송. - 경계 구분을 위해 특별한 표시(EOR :End Of Record) 삽입. - 데이터 길이 데이터를 먼저 보낸 후, 가변 길이 데이터를 이어서 보낸다. [수신자 입장] - 항상 고정 크기 데이터 수신 - EOR이 나올때까지 데이터 수신. - 고정 길이 데이터를 먼저 받아 뒤따라올 데이터의 크기만큼..
· Devlog/Java
객체의 하나로 '인간' 이라고 잡을 때 "특징" 성별, 보행여부, 국적, 피부색. . . . "행동양식" 걷는다(10), 말한다("하하하"). . . . => 클래스화(추상화) 하면. . . Class 인간 [ 명사 ] { [ 명사 ] boolean bMan; //남여 구분 판단 boolean bWalking // 직립보행 여부 String sNation // 국적 Color color // 피부색 [ 동사 ] 걷는다(int speed) {...}; 말한다(String talk) {...}; } => 인간.java -> 인간.class 생성 됨. ㅇ Java 식 클래스 사용법 C언어에서 처럼 생성하면 안됨. (자바는 포인터가 없으므로...) 인간 인1 = new 인간(); [ 선언 / 생성 ] 인간 인1..
void DrawBitmap(HDC hdc,int x,int y,HBITMAP hBit) { HDC MemDC;// 메모리 DC HBITMAP OldBitmap;// 비트맵 핸들 int bx,by;// 좌표 BITMAP bit;// 비트맵 정보 MemDC=CreateCompatibleDC(hdc); OldBitmap=(HBITMAP)SelectObject(MemDC, hBit); GetObject(hBit,sizeof(BITMAP),&bit); // 메모리에 저장된 비트맵 정보를 가져옴 bx=bit.bmWidth; by=bit.bmHeight; BitBlt(hdc,x,y,bx,by,MemDC,0,0/*복사 시작 좌표*/,SRCCOPY); SelectObject(MemDC,OldBitmap); Delete..
#define R 20// 반지름 int x,y;// 공의 좌표 int xi,yi;// 한번에 이동하는 거리 void OnTimer() { RECT crt;// GetClientRect(hWndMain,&crt); // 좌 or 우 측 벽에 맞는다면... if (x = crt.right-R) { xi*=-1; // 음수를 곱해서 튕기는 방향 변경. } // 위 or 아래 벽에 맞는다면... if (y = crt.bottom-R) { yi*=-1; // 음수를 곱해서 튕기는 방향 변경. } x+=xi; y+=yi; // 전체 무효화 //InvalidateRect(hWndMain,NULL,TRUE); /* 공 주변만 무효화 */ // 클리핑 영역 지정- BeginPaint 에서만 할수 있음. RECT rt;..
모델의 표현. 모든 모델들은 3개의 버텍스(Vertex) = 삼각형 으로 이루어져있다. 이 삼각형을 이용하여 물체를 묘사함. 로컬(모델링)에서 월드로 옮기는 좌표 (로컬 매트릭스) 카메라가 있는 위치로 바꾸는 좌표 (뷰 매트릭스) 가까이 있는건 크게, 멀리있느건 작게 조정 (프로젝션 매트릭스) - 로컬 스페이스 같은 오브젝트가 반복적으로 사용될 때, 미리 만들어두고 사용. (오브젝트의 좌표계) 월드 스페이스로 사용하게 되면, 각 위치마다 좌표가 다르기때문에 데이터가 각자 달라 따로따로 구성해야됨. - 월드 스페이스 오브젝트가 상대적으로 위치하는 좌표계 - 뷰 스페이스 카메라 위치 기준으로 잡는 좌표계 원점 - 카메라의 위치. z축 - 바라보는 쪽. y축 - 위쪽. 인덱스 버퍼에서 삼각형이 그려질때 왼손좌..
1. 프로젝트 생성 2. 프로젝트 속성 설정 * 프로젝트 속성 - 구성 속성 - VC++ 디렉터리 - 포함 디렉터리 - SDK의 Include 폴더 선택 * 프로젝트 속성 - 구성 속성 - VC++ 디렉터리 - 라이브러리 디렉터리 - SDK의 lib 폴더 선택 * 프로젝트 속성 - 구성 속성 - 링커 - 입력 - 추가종속성 - d3d9.lib d3dx9.lib winmm.lib 3개 추가. * 프로젝트 속성 - 구성 속성 - 멀티바이트문자집합 - 사용
· Devlog/Java
ㅇ Short Cut Pass a = 3 , b = 5, c = 4 (a>b) & (++a>c) 앞의 연산을 끝내고 거짓이 나와도 뒤의 연산을 계속 진행. (a>b) && (++a>c) 앞의 연산이 거짓으로 나오면 결과값은 거짓이 나오므로 뒤의 연산은 계산 할 필요없이 넘어감. (Short Cut Pass) ㅇ 문자열 연결 int a = 5; int b = 3; int c = 10; System.out.println(a+b+"ab"); // 8ab System.out.println("a*b"+a+b); // a*b53 System.out.println(a*b); // 15 * 숫자 + 숫자 = 숫자 * 숫자 + 문자열 = 문자열 ㅇ 문자열 출력 int i = 10; System.out.println("i..
[ 서버 ] #include #include #include #define BUFSIZE 512 // 소켓 함수 오류 출력 후 종료 void err_quit(char *msg) { LPVOID lpMsgBuf; FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER| FORMAT_MESSAGE_FROM_SYSTEM, NULL, WSAGetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpMsgBuf, 0, NULL); MessageBox(NULL, (LPCTSTR)lpMsgBuf, msg, MB_ICONERROR); LocalFree(lpMsgBuf); exit(-1); } // 소켓 함수 오류 출력 void..
※ 해당 포스트 사진은 EYMS 카페(http://cafe.naver.com/guidegame) 에 동일하게 개제되어 있음. [성 밖 대규모 홉 농장 ] [주요 항구 시설 1] [주요 항구 시설 2] [ 성문 ] [ 상업도시라 상인들이 주로 거주 ] [ 대규모 고기 생산지 ] Anno 시리즈는 1603 , 1701, 1503 , 1404 , 2070 여러 시리즈가 있지만, 개인적으로는 1503 이 가장 재미있는것 같다. 다소 불편한 인터페이스와 불친절(?)한 튜토리얼 이 문제긴 하지만, 건물 및 배경을 표현한 그래픽이 가장 마음에 든다. 물론 가장 최근에 나온 2070 의 그래픽에 비하면 초라하기 그지 없지만, 부담없는 사양과 흥겨운 사운드는 1503 만의 묘미 랄까. . . . 1503 Gold Edi..
Damien.Lee
Lee's Lab