C언어 개요 게임프로그래밍.

Slides:



Advertisements
Similar presentations
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
Advertisements

© 2012 생능출판사 All rights reserved 쉽게 풀어쓴 C 언어 Express C Express 제 2 장 프로그램 개발과정.
강의 내용 : DirectX 개요 DirectX 9 을 이용한 시각화. 목 차 DirectX 출현 배경 DirectX 현재 버전 DirectX 장점 DirectX 구성요소 DirectX SDK 다운로드 및 설치 DirectX SDK 폴더 구성 및 역할 샘플 코드 브라우저.
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
제2장 프로그램 개발과정 C Express.
기초C언어 제1주 실습 강의 소개, C언어 개요, Cygwin/Eclipse 사용 컴퓨터시뮬레이션학과 2016년 봄학기
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++로 프로그래밍한다는 것의 의미 세상에서 가장 간단한 C++ 프로그램
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Image & Video processing
Power Java 제3장 이클립스 사용하기.
제3장 게임기본모듈 Page 153 ~ 182.
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발과정 C Express.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
컴퓨터 프로그래밍 기초 [Final] 기말고사
CUDA Setting : Install & Compile
2007 1학기 10 함수 활용.
C 언어 1 1주차 C언어 시작하기 - 1차시 C 언어 특징 및 프로젝트 생성 Programming Language.
쉽게 풀어쓴 C언어 Express 제8장 함수 C Express Slide 1 (of 26)
C 11장. 포인터의 활용 #include <stdio.h> int main(void) { int num;
나민영 서경대학교 컴퓨터공학과 CGVR Lab 같이만들어보자 5주차 OpenCV 설정 및 기초.
QT 프로그래밍 발표: 김래영.
제15장 파일 입출력 문자열을 출력하는 여러가지 방법 (15-2쪽) 문자열만 처리하는 입출력 함수
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
Java 기초 (Java JDK 설치 및 환경설정)
OpenCV 설치 과정 (Visual Studio 2013)
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
C / C++ Programming in multi platform
Visual Basic .NET 처음 사용하기.
1. C++ 시작하기.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
제 2 장 WML 시뮬레이터 및 무선인터넷 서버 설치
소프트웨어 분석과 설계 Struts2 & JBOSS 설치하기
ARM Development Suite v1.2
2007 1학기 11 프로젝트 기초 실습.
프로그래밍 랩 – 7주 리스트.
Method & library.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
Computer Graphics OpenGL 설치 및 설정
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
영상처리 실습 인공지능연구실.
제 1장. C++ 시작하기.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
Eclipse CDT에서 프로젝트를 Export 하고 Import 하는 방법
C언어 응용 제7주 실습 해보기 제6장.
Lab 8 Guide: 멀티스레딩 예제 2 * Critical Section을 이용한 멀티스레딩 동기화 (교재 15장, 쪽)
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
실습과제 1(조건문, ) 표준입력으로 수축기 혈압을 입력 받아 그에 따른 적당한 표현을 화면에 출력하는 프로그램을 if-else 문을 이용하여 작성.
#1 배열 활용 #include int main(void) { int i; int grade[5]; grade[0] = 10; grade[1] = 20; grade[2] = 30; grade[3] = 40; grade[4] = 50; for(i=0;i.
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
컴퓨터 개론 및 실습 1주차 2015년 03월 05일.
Homework 7… 마지막 수업시간까지 (실습) 매개변수로 입력 받아 처리할 수 있도록 수정해 보세요
빌드 성공.
( Windows Service Application Debugging )
^^ Computer Programming 2 dmpr.cnu.ac.kr/~daygax.
OpenCV 설정 2.21 만든이 딩딩.
DK-128 개발환경 설정 아이티즌 기술연구소
STS 또는 Eclipse 에서 프로젝트를 Export 하고 Import 하는 방법
05. General Linear List – Homework
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
동적메모리와 연결 리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
Name Title Company Name
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
C.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
어서와 C언어는 처음이지 제22장.
BoardGame 보드게임 따라가기.
Presentation transcript:

C언어 개요 게임프로그래밍

C언어 개요 C/C++ LANGUAGE 게임프로그래밍

소프트웨어 준비 Visual Studio 설치 DirectX SDK 설치 별도 설치 버전: 최신버전 권장 (“2015”), C/C++ DirectX SDK 설치 Windows 8부터 DirectX SDK는 Windows SDK에 포함되어 배포됨 별도 설치 필요 없음 관련 주소: http://msdn.microsoft.com/directx 별도 설치 버전: Windows 7 이전 환경 또는 예전 버전 호환이 필요한 경우 마지막 별도 설치 버전: “June 2010” 관련 주소: https://msdn.microsoft.com/library/ee663275.aspx Documentation “DirectX Documentation for C++”를 참조 Windows DirectX Graphics Documentation Direct3D, DXGI, HLSL, Direct2D 게임프로그래밍

기타 준비 Direct2D Library Direct3D Library 기타 Library d2d1.lib Related: dwrite.lib, windowscodecs.lib Direct3D Library d3d10.lib (기본) d3dx10.lib (확장) 유용한 함수들이 많이 포함되어 있으므로 편리함 Related: dxgi.lib 기타 Library winmm.lib : Window Multimedia 타이머 함수 등의 사용을 위해 필요함 게임프로그래밍

간단한 프로젝트 생성 가장 간단한 형식의 프로젝트 생성 프로젝트 속성 소스 코딩 메뉴 “파일(File)”→“새로 만들기(New)”→“프로젝트(Project)” 선택 템플릿 “Visual C++” → “Win32” 클릭 “Win32 Console Application” 또는 “Win32 Project” 중에서 선택 프로젝트 속성 메뉴 “프로젝트(Project)”→”속성(Properties)” “링커(Linker)”→“입력(Input)” : “추가 종속성(Additional Dependencies)” 필요한 라이브러리 파일을 추가 파일명 구분은 “;”로 참고: 헤더파일에 다음과 같이 컴파일러를 위한 #pragma 지시어(directive)를 사용하면 프로젝트 속성에 명시하지 않아도 됨 소스 코딩 “hello.cpp”를 편집 #pragma comment(lib, "Winmm.lib") 게임프로그래밍

연습 – 빈 프로젝트 만들기 빈 프로젝트를 만들어 보세요 폴더 내 파일들 살펴보기 실행 파일→새로만들기→프로젝트 01.HelloEmpty 빈 프로젝트를 만들어 보세요 파일→새로만들기→프로젝트 Visual C++/Win32→Win32 콘솔 응용 프로그램 이름 : hello, 위치 : C:\Home\Work 선택사항 “Create directory for solution”은 체크해제 프로젝트 생성 위치 : C:\Home\Work\hello 기타 사항들을 모두 디폴트로 마침 폴더 내 파일들 살펴보기 생성된 폴더를 살펴 보세요 C:\Home\Work\hello 폴더 “빌드→솔루션 빌드” 후 다시 살펴 보세요 실행 “디버그→디버깅 시작” (F5) “디버그→디버깅 하지 않고 시작” (Ctrl+F5) 게임프로그래밍

연습 – 소스코드 수정하기 “Hello World!” 를 출력해 보세요 02.HelloSimple #include "stdafx.h“ int _tmain(int argc, _TCHAR* argv[]) { printf("Hello World!\n"); return 0; } 게임프로그래밍

연습 – 함수 사용하기 sin(45º)의 값을 출력해 보세요 03.HelloSine #include "stdafx.h“ #define _USE_MATH_DEFINES #include <math.h> int _tmain(int argc, _TCHAR* argv[]) { printf("sin(%d) = %f\n", 45, sin(M_PI/4)); return 0; } 게임프로그래밍

정렬 – 랜덤 숫자 생성 10개의 random 숫자를 출력하세요. 04.SortPrint #include "stdafx.h" #include <time.h> static void print(const int* list, int n) { printf("<"); for (int i=0; i<n; i++) printf("%d%s", list[i], (i<n-1) ? ", " : ">\n" ); } int _tmain(int argc, _TCHAR* argv[]) { int n = 10; int* list; srand( (unsigned)time( NULL ) ); list = (int *)malloc(sizeof(int)*n); list[i] = rand(); print(list, n); free(list); return 0; 게임프로그래밍

정렬 – 사용자 정의 함수에 의한 퀵소트 정수 배열을 오름차순으로 정렬하세요. 05.SortUser #include "stdafx.h" #include <time.h> static void print(const int* list, int n); int _tmain(int argc, _TCHAR* argv[]) { int* list int n=10; srand( (unsigned)time( NULL ) ); list=(int *)malloc(sizeof(int)*n); for (int i=0; i<n; i++) list[i] = rand(); print(list, n); quicksort(list, 0, n-1); free(list); return 0; } void quicksort(int * list, int ilo, int ihi) { int pivot, ulo, uhi, ieq, tempEntry; if (ilo >= ihi) return; pivot = list[(ilo + ihi)/2]; ieq = ulo = ilo; uhi = ihi; while (ulo <= uhi) { if (list[uhi] > pivot) { uhi--; } else { tempEntry = list[ulo]; list[ulo] = list[uhi]; list[uhi] = tempEntry; if (list[ulo] < pivot) { tempEntry = list[ieq]; list[ieq] = list[ulo]; list[ulo] = tempEntry; ieq++; } ulo++; }} quicksort(list, ilo, ieq - 1); quicksort(list, uhi + 1, ihi); 게임프로그래밍

정렬 – 시스템 정의 함수에 의한 퀵소트 Library 함수인 qsort를 사용해 보세요. 06.SortSystem #include "stdafx.h“ #include <stdlib.h> #include <time.h> static void print(const int* list, int n); static int compare(const void* p, const void* q) { const int* ip = (const int*) p; const int* iq = (const int*) q; return *ip - *iq; } int _tmain(int argc, _TCHAR* argv[]) { int* list; int n=10; srand( (unsigned)time( NULL ) ); list = (int *)malloc(sizeof(int)*n); for (int i=0; i<n; i++) list[i] = rand(); print(list, n); qsort(list, n, sizeof(list[0]), compare); free(list); return 0; 게임프로그래밍

정렬 – 시스템 정의 함수에 의한 구조체 퀵소트 구조체를 정렬해 보세요. 07.SortStruct #include "stdafx.h" #include <stdlib.h> #include <time.h> typedef struct { int id; float score; } stu; static void print(const stu* list, int n) { printf("<"); for (int i=0; i<n; i++, list++) { printf("[%d,%d]%s", list->id, (int)list->score, (i<n-1) ? ", " : ">\n" ); } int compare(const void *p, const void *q) { const stu * ip = (const stu *)p; const stu * iq = (const stu *)q; if (ip->score > iq->score) return 1; else if (ip->score < iq->score) return -1; else return 0; int _tmain(int argc, _TCHAR* argv[]) { stu * students; int n = 10; srand( (unsigned)time( NULL ) ); list = (stu *)malloc(sizeof(stu)*n); for (int i=0; i<n; i++) { list[i].id = i; list[i].score = (float)(rand() % 100); } print(list, n); qsort( list, n, sizeof(stu), compare ); free(list); return 0; 게임프로그래밍