본문 바로가기

전체 글646

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.
API란 무엇을까요? ▣ API란 Application Programming Interface에 약자입니다. Application Programming 소프트웨어 프로그램을 의미하며, Interface 영어 뜻 그대로 정보를 의미합니다. 이걸 합쳐서 해석하면 소프트웨어의 정보, 사용 설명서를 의미합니다. ▣ 그럼 API는 어떨 때 사용할까요? 우리가 모든 프로그램에 사용법을 알 수 없습니다. 예를 들어 UnityEngine.AI에 있는 NavMesh 클래스를 사용한다고 생각해보겠습니다. UnityEngine 라이브러리 안에 많은 클래스와 함수들이 존재하기 때문에 우리가 이걸 업데이트할 때마다 하나하나 외우며 공부할 수 없습니다. 그렇기 때문에 API 설명서를 찾아서 봐야합니다. 그럼 직접 찾아보겠습니다. ▣ 구글에 unity.. 2022. 8. 15.
Visual studio 단축키 안녕하세요. ^^ 비주얼스튜디오를 사용하다가 많이 사용하는 단축키를 모아서 정리해보았습니다. 솔루션 탐색기 열기 Ctrl + Alt + L 코드자동완성 Ctrl + Space 현재 커서 라인 복사해서 아래라인에 붙여넣기 Ctrl+D 현재 커서 라인 잘라내기 Ctrl + X 드래그한 범위 주석처리 Ctrl + K -> Ctrl + C 드래그한 범위 주석해제 Ctrl + K -> Ctrl + U 단어 검색, 찾기 Ctrl + F 2022. 7. 28.
C++ 1장 [출력, 네임스페이스] ▣ 안녕하세요. C++ 첫 번째 장입니다. C++을 하기 전에 C언어 공부를 꼭 해보고 C++를 공부하시면 더 C++를 접근하기 좋습니다. ^^ 하지만 C언어를 공부하지 않아도 가능하니 하나하나 포기하지 말고 끝까지 함께 코딩 공부합시다~ ▣ 이번장에서는 C++ 출력에 대해 공부해보도록 하겠습니다. 비주얼 스튜디오 2022 버전으로 공부하도록 하겠습니다. 우선 빈프로젝트를 만들어주세요. ▣ 먼저 솔루션탐색기에서 소스파일을 생성하겠습니다. ▣ 이름은 여러분들이 원하는 이름으로 정해주시고. cpp 확장자 지정해주세요. . c == C언어 ,. cpp == C++입니다. 그럼 이제 코드를 작성해보겠습니다. ▣ 먼저 # 을 공부해보겠습니다. # : 전처리기를 의미합니다. 컴파일(기계어로 번역) 전에 처리를 하는.. 2022. 7. 21.
유니티 - [CameraShake, 카메라 쉐이크효과] ▣ 안녕하세요. 이번장에서는 카메라 셰이크(흔들기) 효과에 대해 공부하도록 하겠습니다. ▣ 우선 3D프로젝트를 생성해 주시고, 기본 플레이어와 땅을 배치해 주세요. 그리고 카메라 위치를 플레이어 캡슐이 중앙에 보이게 위치를 변경해주세요. 그런 다음 플레이어에 스크립트 한 개를 생성해서 넣어주세요. ▣ 스크립트를 열어서 cam, cameraOriginalPos 변수를 선언해주세요. cam에는 메인카메라메인 카메라 클래스를 cameraOriginalPos에는 메인 카메라에 위치를 넣어주세요. ▣ 그런다음 업데이트 함수에서 Debug.Log(Random.insideUnitSphere)이라는 클래스에 있는 기능을 출력해보려고 합니다. https://docs.unity3d.com/kr/530/ScriptRefer.. 2022. 6. 9.
첫번째 게임 [DarkZombie] https://youtu.be/LKy5lTIZ-ls▣ Download ▣https://play.google.com/store/apps/details?id=com.MRG.DarkZombie  다크좀비 - Google Play 앱좀비들이 가득한 세상에서 살아남는 2D 좀비 서바이벌 액션 게임play.google.com▣ 스토리 ▣ 3년전 의문에 사건 이후 한 평화로운 가정에서 다크좀비가 나타났다. 3년후에 지금 거의 대부분에 사람들은 다크좀비가 되었거나 좀비가 되었다. 하지만 그건 아무도 알 수 없다. 왜냐하면 다크좀비한테 닿이면 죽는다.라는 이야기가 있고 좀비가 된다.라는 이야기가 있지만 누구도 알수 없다. 하지만 그걸 알 수 있는 유일한 사람이 있다. 그건 바로 회개의 눈물을 만든 사람이다. “회개의 눈.. 2022. 5. 25.
C++ [템플릿_02, template, typename] ▣ 이번장에서는 template 두 번째 장으로 다른 자료형 type을 사용할 경우에 어떻게 해야는지 공부해보겠습니다. ▣ 저번 1장에서 템플릿을 사용하여 코드를 작성해보겠습니다. 템플릿을 사용하는 이유는 간단합니다. 함수오버로딩시 다른 자료형 type일 경우 함수를 따로 만들어줘야 하는 불편함이 있었습니다. 그래서 템플릿을 사용하면 이렇게 어떤 자료형을 매개변수로 주더라도 그에 맞게 반환형을 주는걸 코드로 확인할 수 있습니다. 하지만 여기서 우리가 생각할 수 있는 문제는 같은 함수이지만 내가 원하는 타입일 경우 다른 함수를 지정하고 싶을 경우가 있습니다. 그럴 때 이렇게 코드를 작성합니다. ▣ 이렇게 template 을 따로 구분해주시고 함수를 내가 원하는 타입에 맞게 매개변수와 반환형을 지정해서 코드.. 2022. 4. 29.
유니티 - [마우스커서 숨기기, 마우스커서 고정] ▣ 안녕하세요. 이번장에서는 유니티에서 마우스 커서를 숨기고 고정시키는 코드를 공부해보겠습니다. ▣ 우선 마우스 커서를 고정하려면 유니티 엔진에 있는 Cursor. 클래스를 접근해야 합니다. Cursor.으로 접근하게 되면 마우스 커서에 대한 여러 가지 기능들이 보입니다. ▣ 여기서 Cursor.visible = false를 주게 되면 마우스 커서를 숨기게 됩니다. visible은 보이기 상태를 의미한다고 생각하시면 됩니다. ▣ lockState는 마우스를 고정시키는 걸 의미합니다. 2022. 4. 23.
유니티 - [회전과 방향 전환] ▣ 이번장에서는 2D 오브젝트 방향을 조정하는 코드를 작성해보겠습니다. ▣ 김선민 벨로그를 참고하여 코드를 작성했습니다. 감사합니다. 출처 : https://velog.io/@sonohoshi/7.-Mathf.Atan2% EC%97%90-%EB% 8C%80% ED%95% B4-%EC%95% 8C% EC%95%84% EB% B3% B4% EC% 9E%90 7. Mathf.Atan2에 대해 알아보자 Unity에서 제공하는 static class, Mathf 에서 제공하는 static method Atan2를 설명한다. velog.io ▣ 우선 기본적으로 원으로 플레이어 오브젝트를 만들어주시고, 그리고 방향을 구분하기 위해 적에 오브젝트를 눈이 있는 캐릭터로 지정했습니다. 그리고 Enemy오브젝트에 스크립트 .. 2022. 4. 20.
C++ [클래스, 생성자, 소멸자] ▣ 안녕하세요. 이번장에서는 클래스에 생성자와 소멸자에 대해 공부해보겠습니다. ▣ MyClass라는 클래스를 생성해주시고, public에 MyClass()와 ~MyClass() 함수를 만들어보겠습니다. MyClass()는 클래스가 생성되었을 때 실행되는 함수이고, ~MyClass()는 클래스를 생성한 함수가 끝나게 되면 소멸되는 함수입니다. ▣ 메인에서 MyClass my;로 정의하고 코드를 실행하면 메인 시작 -> 생성자 -> 메인 끝 -> 소멸자 이렇게 출력되는 걸 확인할 수 있습니다. 여기서 중요한건 코드가 어떤 순서로 흘러가는지 출력 함수로 확인해보는 게 중요합니다. ▣ 이번에는 char *p 포인터를 선언해주시고, p = new char[100000] 메모리를 할당합니다. 그리고 소멸자에서 de.. 2022. 4. 19.
C++ [포인터, const] ▣ 안녕하세요. 이번장에서는 C++ 포인터에서 const를 사용하는 방법을 공부해보겠습니다. 포인터에서 이해가 안 되는 분은 C언어 포인터 부분을 꼭 공부해주세요. ▣ 기본적으로 포인터를 선언하여 num 변수에 주소를 지정하고 출력을 해보겠습니다. 그럼 p포인터가 num에 주소에 있는 값을 출력하는 걸 확인할 수 있습니다. ▣ 이번에는 &num 주소를 가르치고 있는 p포인터에 200을 대입해보겠습니다. 그럼 num에 값이 200으로 바뀐걸 확인할 수 있습니다. ▣ 여기서 const int * p = &num 포인터에 자료형 앞에 const 상수로 지정하는 키워드를 붙이게 되면 선언 정의 후에 값을 바꾸게 되면 오류가 나는 걸 확인할 수 있습니다. 포인터에 자료형 앞에 const를 붙이면 지정한 주소의 값.. 2022. 4. 13.
유니티 - [rotation, LookRotation, Quaternion, Slerp] ▣ 안녕하세요. 이번장에서는 LookRotation, Quaternion, Slerp을 사용하여 타깃을 향해서 회전을 하는 코드를 공부해보겠습니다. ▣ 우선 3D 프로젝트를 만들어서 캡슐 오브젝트로 Player와 큐브로 Enemy오브젝트를 만들어주세요. 그리고 player오브젝트에는 PlayerManager라는 스크립트를 생성해주세요. ▣ obj 게임오브젝트로 바라볼 오브젝트를 지정해주시고, 업데이트 함수에서 transform.rotation을 지정하겠습니다. 이건 현재 나의 회전 값을 지정하는 코드입니다. 여기에 Quaternion.LookRotation()함수를 사용하겠습니다. 이 함수는 해당 백터를 바라보는 함수입니다. 여기에 우리가 바라볼 오브젝트에 포지션값을 넣게 되면 플레이어가 obj를 바라보.. 2022. 4. 7.
유니티 - [폭발효과, OverlapSphere, AddExplosionForce] ▣ 안녕하세요. 이번장에서는 폭발 효과 OverlapSphere, AddExplosionForce를 공부해보겠습니다. ▣ 우선 저번장과 이어서 3D 프로젝트를 생성해주세요. 그리고 Player, Plane을 3D 오브젝트로 생성해주세요. Player안에 리지드 바디, 스크립트, 그리고 콜라이더를 두 개를 넣어주세요. Collider 충돌과 Is Trigger를 동시에 사용하기 위함입니다. ▣ 그리고 Enemy 또한 리지 디바디까지 추가해주세요. 이건 폭발 효과에 힘을 받기 위함입니다. ▣ 그리고 Layer메뉴에서 Add Layer로 레이어를 추가해줍니다. 이건 Tag과 동일하게 모든 오브젝트에 힘을 주면 메모리가 많이 사용되는 걸 방지하기 위해 보통 물리효과는 Layer로 구분을 하기 때문에 연습 삼아 .. 2022. 3. 28.
유니티 - [Destroy, ParticleSystem, GetComponentInChildren] ▣ 안녕하세요. 이번장에서는 Destroy, ParticleSystem, GetComponentInChildren를 공부해보도록 하겠습니다. ▣ 우선 3D 프로젝트를 생성해주시고, Player, Plane 오브젝트를 생성해주세요. 그리고 Player오브젝트에는 스크립트, 콜라이더, 리지드 바디를 컴포넌트로 추가해주세요. 그런 다음에 유니티 에셋에서 무료 파티클을 다운받으세요. https://assetstore.unity.com/packages/essentials/asset-packs/unity-particle-pack-5-x-73777 Unity Particle Pack 5.x | 에셋팩 | Unity Asset Store Get the Unity Particle Pack 5.x package from .. 2022. 3. 27.