본문 바로가기

분류 전체보기638

C++ 8장 [포인터 객체] ▣ 안녕하세요. 이번장에서는 포인터로 객체를 다루는 코드를 공부해보도록 하겠습니다. 포인터는 주소를 저장하는 변수입니다. C언어의 포인터의 개념과 동일합니다. 혹시 포인터를 모르시는 분은 C언어 공부에 포인터 부분을 꼭 공부해보세요. 이제 포인터 객체를 코드를 작성하며 공부해보도록 하겠습니다. ▣ 먼저 기본적인 클래스를 생성해주는 코드와 멤버 함수 코드를 작성해주세요. 그리고 메인 함수에서 Calculator num; 로 객체를 선언합니다. 그런 다음에 포인터를 선언합니다. Calculator* p = num(자료형 변수 이름 = 주소)의 형태로 코드를 작성합니다. 변수를 선언하는 코드와 동일합니다. 그리고 포인터를 이용하여 멤버 함수를 호출해보겠습니다. 포인터에 있는 멤버함수를 접근하기 위해서.(점) .. 2022. 10. 20.
pygame - [소리 제어] ▣ 안녕하세요. 이번장에서는 pygame으로 소리를 제어하는 코드를 공부해보겠습니다. ▣ 먼저 소리를 재생하기 위해서 소리를 가져오는 코드를 작성해야 합니다. pygame.mixer.Sound() 함수를 이용해서 소리를 가져와야 합니다. Sound() 함수에서 매개변수에 파일 위치를 지정할 때 주의해야 할 건 \를 / 기호로 바꿔서 지정해야 합니다. 소리 파일을 지정했다면 이제 소리의 크기를 제어해보겠습니다. sound변수에서. 점으로 접근을 하게 되면 이렇게 sound.set_volume() 함수로 소리를 제어할 수 있습니다. 함수에서 소리의 범위는 0.0~1.0입니다. 소리를 재생하는 코드는 sound.play() 함수로 재생합니다. 그냥 play() 함수로 재생할 수도 있지만 play() 함수안에 .. 2022. 10. 14.
C++ 7장 [인라인 함수] ▣ 안녕하세요. 이번장에서는 인라인 함수를 공부해보겠습니다. 인라인 함수는 인라인 함수 호출 시 그 호출한 코드에 인라인 함수 코드 자체가 안으로 들어가는 함수를 의미합니다. ▣ 정리하면 짧은 코드를 함수로 만들면 함수 호출의 오버헤드가 커서 프로그램 실행 시간이 길어집니다. 오버헤드란 프로그램의 실행 흐름에서 나타나는 현상을 이야기하는데 쉽게 이야기하면 메인 함수로 프로그램을 실행 흐름 중에 다른 곳에 떨어진 위치의 함수 코드를 실행시켜야 할 때, 메모리와 시간을 드리게 됩니다. 그걸 오버헤드 현상이라고 합니다. 만약 우리가 짧은 함수를 호출할 때마다 스택 메모리를 할당하고 함수에 따라 여러 가지 연산을 하는 이 과정들로 하여금 많은 메모리와 시간을 들이게 되면 효과적이지 않고 속도가 저하됩니다. 그렇.. 2022. 10. 13.
C++ 6장 [클래스4] ▣ 안녕하세요. 이번장에서는 접근 지정자를 공부해보겠습니다. 우리가 클래스를 공부하면서 C언어의 구조체와 거의 동일하다고 알고 있습니다. 하지만 클래스와 구조체의 가장 큰 차이점은 접근 지정자입니다. 접근 지정자란 객체를 캡슐화하고 외부에서 객체를 접근할 수 있는지에 대한 허용 여부를 지정해주는 키워드입니다. 코드를 작성하며 공부해 보록 하겠습니다. ▣ 먼저 public은 클래스 내외의 모든 함수에 접근 가능 키워드입니다. 그렇기 때문에 cal.number = 30 코드에서처럼 객체를 만들고 멤버 변수에 접근이 가능합니다. 여기서 주의해야 할 점은 꼭 접근 지정자 끝에 : 콜론을 붙여주세요. ▣ private은 클래스 내의 멤버 함수만 접근 가능하고 외부에서는 접근할 수 없습니다. 그래서 cal.numb.. 2022. 10. 12.
C++ 5장 [클래스3] ▣ 안녕하세요. 이번장에서는 클래스 3번째 시간으로 소멸자를 공부해보도록 하겠습니다. ▣ 소멸자는 객체가 소멸되는 시점에서 자동으로 호출되는 클래스 멤버 함수를 의미합니다. 저번장을 이어서 복습하면 생성자는 객체가 생성되었을 때 소멸자는 소멸되었을 때 호출하는 멤버 함수들입니다. 소멸자를 만들려면 클래스 이름 앞에 ~ 기호를 붙여야 합니다. 또 소멸자는 한 개만 존재해야 합니다. 만약 소멸자가 선언되지 않으면 기본 소멸자가 자동으로 생성됩니다. 그리고 소멸자는 리턴 타입이 없습니다. 생성자처럼 반환형이 없다는 의미입니다. 소멸자의 목적은 마무리 작업을 할 때 사용합니다. 그럼 코드를 작성하며 공부해보겠습니다. ▣ 소멸자를 생성하려면 ~Calculator() 코드에서처럼 클래스 앞에 ~ 기호를 넣으시면 됩.. 2022. 10. 7.
pygame - [이미지 제어] ▣ 안녕하세요. 이번장에서는 pygame으로 이미지를 제어하는 코드를 공부해보겠습니다. ▣ 이미지를 제어하기 위해서는 pygame.image.load() 함수를 사용해야 합니다. 이 함수는 이미지를 불러오는 함수입니다. 여기서 이미지 경로를 지정해야 하는데 \(백 슬래시) -> /(슬래시)로 변경하여 이미지 경로를 지정해야 합니다. 이미지의 위치를 모를 경우 이미지를 클릭하고 오른쪽 마우스를 누르고 속성을 눌러 확인하시면 됩니다. ▣ pygame.transform.scale() 함수는 이미지의 크기를 조절합니다. scale(이미지 변수, (크기)) 이런 식으로 매개변수 값을 넣으면 됩니다. pygame.transform.rotate() 함수는 이미지 회전을 제어할 수 있습니다. rotate(이미지 변수,.. 2022. 10. 6.
C++ 4장 [클래스2] ▣ 안녕하세요. 이번장에서는 클래스에 생성자에 대해 공부해보도록 하겠습니다. 생성자는 클래스가 객체로 생성될 때(정의할 때) 자동으로 실행되는 함수(생성자)라고 생각하시면 됩니다. 생성자는 오직 한 번만 실행합니다. 생성자 함수의 이름은 클래스 이름과 동일하게 작성해야 합니다. 생성자 함수의 반환형(리턴 타입)을 선언하지 않습니다. 단 함수에 매개변수는 넣을 수 있습니다. ▣ 생성자를 쓰는 이유는 객체가 생성될 때 필요한 초기화 작업을 하기 위함입니다. 이제 생성자를 코드로 공부해보겠습니다. ▣ 생성자 함수는 Calculator::Calculator()처럼 클래스와 동일하게 이름을 지정해주면 됩니다. 여기서 중요한 건 일반 함수와 다르게 반환형이 없는 점 주의해주세요. 코드를 다 작성하셨다면 이제 메인 .. 2022. 10. 6.
C++ 3장 [클래스1] ▣ 안녕하세요. 이번장에서는 클래스를 공부해보겠습니다. 클래스에 대한 부분은 내용이 많아서 여러 장으로 진행하도록 하겠습니다. ▣ 클래스란 객체를 정의하는 틀이나 설계도를 이야기합니다. 클래스는 C언어에서 구조체랑 비슷하다고 생각하시면 됩니다. 클래스를 만들어서 정의하면 그게 객체입니다. 객체는 자신만의 교유한 상태 행동을 구성하고 있습니다. 다시 말해 구조체처럼 클래스 안에 멤버 변수와 멤버 함수를 선언할 수 있습니다. 객체의 상태와 행동으로 생각하시면 됩니다. 그럼 코드를 작성하며 클래스를 공부해보겠습니다. ▣ 클래스를 선언하기 위해서는 class 키워드를 사용해야 합니다. 구조체와 동일한 형식으로 class 키워드, 클래스 이름을 지정해주시고 괄호를 이용하여 클래스의 범위를 지정해줍니다. 중요한 건.. 2022. 9. 30.
pygame - [텍스트입력] ▣ 안녕하세요. 이번장에서는 텍스트를 입력받고 입력한 텍스트를 화면에 바로 출력하는 코드를 공부해보겠습니다. ▣ 기본적인 화면 구성하는 코드를 작성하겠습니다. 항상 pygame을 진행하실 때 pygame.init() 초기화하는 코드를 잊지 말고 넣어주세요. 그리고 text를 입력 받을 변수를 만들어주시고, 글꼴 객체, 폰트 랜더링하는 코드까지 작성해주세요. ▣ 이제 무한반복으로 코드를 입력받아야 하기 때문에 while문을 통해서 무한반복을 하고 입력받는 코드를 작성 넣겠습니다. 먼저 기본적으로 pygame을 종료하는 코드가 있어야 하기 때문에 스페이스키를 누르면 pygame이 종료되는 코드를 먼저 작성했습니다. ▣ 그리고 이어서 if event.key == pygame.K_RETURN: 엔터 키를 누르는.. 2022. 9. 19.
pygame - [마우스 제어] ▣ 안녕하세요. 이번장에서는 마우스를 제어하는 코드를 공부해보겠습니다. ▣ 먼저 화면을 구성하는 코드를 작성해주세요. ▣ 그리고 무한 반복을 하는 while문에서 마우스를 제어하는 조건문과 스페이스키를 누르면 pygame 끝나는 코드를 작성했습니다. 이 장에서는 마우스 제어에 대한 부분만 설명하겠습니다. pygame.event.get() 함수는 마우스, 키보드 모든 이벤트에 대한 값을 가져오는 코드입니다. 마우스에 대한 코드를 한 줄씩 설명하면 if event.type == pygame.MOUSEBUTTONDOWN: 받아온 event에 type이 마우스 클릭이면 작동하는 조건문입니다. pygame.mouse.get_pos() 마우스 위치를 가져오는 함수입니다. 그럼 마우스를 클릭하면 pos변수에 마우스 .. 2022. 9. 16.
pygame - [텍스트출력] ▣ 안녕하세요. 이번장에서는 텍스트를 출력하는 코드를 공부해보겠습니다. 우선 코드를 작성하면서 공부하겠습니다. ▣ 우선 기본적으로 화면을 구성하는 코드를 작성해주세요. 그리고 pygame.init() 초기화를 잊지 말고 진행해주세요. ▣ pygame.font.SysFont 함수는 시스템 글꼴에서 객체 만들기 함수입니다. 쉽게 이야기해서 폰트를 만들어서 그 폰트를 렌더링한다음에 그리기를 하는 과정이라고 생각하시면 되는데요. SysFont(이름, 크기, 굵게, 기울임) 순으로 매개변수를 입력하시면 됩니다. ▣ font.render는 함수이름 그래도 렌더링 하는 함수인데 render(텍스트, 안티앨리어싱, 색상, 배경색) 순으로 넣으시면 됩니다. ▣ 무한반복안에 프레임 지정 및 화면 배경 색을 채우고 키를 누.. 2022. 9. 15.
pygame - [도형그리기] ▣ 안녕하세요. 이번장에서는 pygame으로 도형을 그려보도록 하겠습니다. 우선 코드를 따라 해서 하나하나 작성하고 설명하도록 하겠습니다. ▣ 화면 크기, 사각형, 삼각형, 원, 선에 대한 변수를 정의하겠습니다. ▣ screen.fill(screen_color) 함수는 화면에 색을 채우는 함수입니다. pygame.draw.rect 함수는 사각형을 그리는 함수로 (display, 색, 크기, 선 굵기) 순서로 매개변수를 지정합니다. 아까 만들었던 변수를 이용해서 값을 넣을 수도 있고, 직접 값을 입력해도 됩니다. pygame.draw.polygon 함수는 삼각형을 그리는 함수로 (display, 색, 크기, 선굵기) 순서로 지정합니다. pygame.draw.circle 함수는 원을 그리는 함수로 (disp.. 2022. 9. 14.
pygame - [화면출력, 키입력] ▣ 안녕하세요. 이번장에서는 pygame으로 화면 출력 및 키 입력에 대해 공부해보겠습니다. pygame 모듈 설치는 pygame - [VS Code 자동완성] 챕터를 참고해서 설치해주세요. ▣ 먼저 코드를 작성하고 하나하나 설명하도록 하겠습니다. import pygame으로 모듈을 가지고 옵니다. pygame.init()함수는 가져온 모든 pygame 모듈을 초기화합니다. pygame을 실행하기 위해서 꼭 필요한 함수이니 코드 시작 때 꼭 넣어주세요. 자세한 함수 설명은 pygame api 참고해주세요. https://www.pygame.org/docs/ref/pygame.html?highlight=init#pygame.init pygame — pygame v2.1.1 documentation This.. 2022. 9. 8.
pygame - [VS Code 자동완성] ▣ 안녕하세요. 이번장에서는 비주얼 코드(VS Code)에서 pygame 모듈 코드를 자동 완성하게 하는 내용을 공부해보겠습니다. 우선 우리가 python에서 pygame 모듈을 사용하기 위해서는 pygame 모듈을 설치해야 합니다. ▣ 보통 cmd 명령프롬프트에서 pip install pygame으로 설치합니다. 그렇게 설치를 하고 비주얼코드(VS Code)에서 pygame 모듈에 관련된 코드를 접근하려고 하면 자동완성이 안되는걸 확인할 수 있습니다. 그렇기 때문에 cmd에서 설치하셨다면 지워주시고, ▣ 비주얼코드(VS Code)에 보기 메뉴에서 터미널을 클릭해주세요. ▣ 그리고 밑에 터미널에서 pip install pygame 모듈을 설치해주세요. ▣ 그리고 pygame. 모듈을 접근하면 이렇게 자동.. 2022. 9. 7.
유니티 - [Header] ▣ 안녕하세요. 이번장에서는 Header를 공부해보겠습니다. ▣ 우선 스크립트에서 [Header("Weapon")] Header키워드를 넣고 괄호 안에 제목을 넣어주세요. 저장을 하고 Inspector에 스크립트 화면을 확인하면 ▣ 이렇게 그룹화를 할 수 있습니다. 2022. 8. 25.
유니티 - [점프 예시1] ▣ 안녕하세요. 이번장에서는 2D오브젝트를 점프하는 코드 중 한 가지를 공부해보겠습니다. 점프를 하는 방법은 여러 가지 방법이 있습니다. 상황에 따라 다양한 코드로 할 수 있습니다. 점프 코드를 할 때 핵심은 내가 어느 좌표로 할 것인가?를 생각해봐야 합니다. 저희는 2D에서 Y값을 바꿔 점프를 구현하겠습니다. ▣ 먼저 2D프로젝트를 생성해주시고, 2D Object에서 Sprites 두 개를 만들 만들어주세요. Player(원), Ground(사각형) ▣ 원과 사각형에 이름을 각각 Player와 Ground로 이름을 지정해주시고, Player오브젝트에 스크립트와 Rigidbody2D 그리고 ▣ Capsule Collider2D 컴포넌트를 추가해주세요. ▣ Ground에는 BoxCollider2D 컴포넌트.. 2022. 8. 25.
C++ 2장 [using 지시어] ▣ 안녕하세요. 이번장에서는 using에 대해 공부해보겠습니다. ▣ 먼저 Hello C++, OK를 출력하는 코드를 작성해보겠습니다. 출력하는 코드를 살펴보면 cout앞에 std::라는 네임스페이스(이름공간, 소속)가 있습니다. 불편하다고는 생각할 수 는 없지만, cout라는 출력하는 키워드를 사용할 때 마다 std:: 붙기 때문에 번거롭다는 느낌을 받게 됩니다. 그럴때 지시어인 using 키워드를 사용하면 됩니다. ▣ using namespace std;로 선언하는 코드를 넣어주면 std:: 네임스페이스를 넣지 않고도 cout을 사용할 수 있습니다. using지시어는 std이름 공간에 선언된 모든 이름에 대해 std::를 생략하기 때문입니다. ▣ 그런데 여기서 주의해야 할 건 std::라는 네임스페이스.. 2022. 8. 24.
유니티 - [이동, 방향, 키입력] ▣ 안녕하세요. 이번장에서는 오브젝트 이동 코드, 오브젝트 방향 전환, 키 입력 코드 방법 중 한 가지씩을 공부해보겠습니다. 밑에 코드를 하나씩 작성하고 실행해보면 어떻게 작동하는지는 눈으로 직접 보며 공부해보세요. 2022. 8. 22.
C언어 - [Beep함수, 음파] ▣ Beep()함수를 사용하려면 우선 헤더를 정의해주세요. ▣ 그리고 Beep()함수에 매개변수 값을 조절하며 음정을 만들고 음악을 만들어보세요. 코드는 순차적(순서대)으로 작동합니다. 2022. 8. 19.
유니티 - [오브젝트 이동 여러 예시] ▣ 안녕하세요. 이번장에서는 오브젝트를 이동(움직이는) 코드를 공부해보도록 하겠습니다. 이 장에서는 한 개씩 직접 어떻게 작동하는지를 확인해보시면서 코드를 작성해주세요. 코드마다 설명을 주석으로 넣어두었습니다. 나중에 바로바로 코드를 사용할 수 있게 주석을 넣는 습관도 함께 들이면 좋습니다.^^ ▣ 우선 2D프로젝트를 생성해주시고 2D오브젝트를 만들어주세요. 그리고 TestManager라는 스크립트를 만들어서 Player에 넣어주세요. ▣ 그리고 Rigidbody2D 컴포넌트를 추가해주세요. ▣ 그리고 스크립트를 열어서 코드를 작성해주세요. 기본으로 플레이어에 속도변수 그리고 Rigidbody2D를 사용하기 위한 변수를 작성해주세요. ▣ position을 변경해서 이동하는 코드, Rigidbody2D를 .. 2022. 8. 19.
유니티 - [함수호출 순서] ▣ 안녕하세요. 이번장에서는 유니티 엔진에 기본 함수들에 호출 순서를 공부해보겠습니다. ▣ 먼저 빈 게임 오브젝트를 만든 다음에 TestManager라는 스크립트를 생성해서 넣어주세요. ▣ Awake(), OnEnable(), OnDisable(), Start(), FixedUpdate(), Update(), LateUpdate() 함수를 생성해주시고, 각각 호출되는 순서를 확인하기위해 Debug.Log()를 코드 해주세요. ▣ OnEnable() 함수는 게임 오브젝트가 활성화될 때 실행하는 함수이고, OnDisable() 함수는 게임 오브젝트가 비활성화될 경우 실행되는 함수입니다. Awake(), Start() 함수는 스크립트가 실행할 때 기본으로 한번 실행되는 함수인데 이건 순서를 확인해보겠습니다. .. 2022. 8. 18.