본문 바로가기

전체 글483

C언어 - [공용체, 열거형, 구조체비트필드] ▣ 우선 공용체는 쉽게 이야기하면 메모리를 공용으로 사용하는 구조체라고 생각하시면 됩니다. union으로 구조체와 동일하게 선언해주시고, 안에 변수를 선언해주세요. 그리고 main함수에서 union Game game;으로 정의한 후에 printf() 함수로 각각에 메모리 크기를 출력해보세요. 그럼 메모리 크기가 가장 큰 자료형 크기로 공용체가 정의되어 있음을 확인할 수 있습니다. ▣ 같은 메모리를 사용하는지 값을 넣어서 확인해보겠습니다. char, short, int 형 중에 가장 큰 자료형인 int game.score에 값을 넣어보겠습니다. 숫자 앞에 0x가 있으면 16진수입니다. 형식 지정자도 % x를 해야지 16진수로 출력되게 됩니다. ▣ 출력해보면 나누어져 값이 들어가 있는 걸 확인할 수 있습니다.. 2021. 5. 17.
C언어 - [구조체, 구조체 포인터, 구조체배열, 구조체포인터배열] ▣ 구조체는 쉽게 생각하면 c언어로 배열을 만들 때 하나에 자료형으로 선언하고 사용합니다. int game[10] 이렇게 하나에 자료형으로 사용하게 되면 우리가 game에 대한 여러 가지 정보를 관리하려면 이렇게 char gameName [10], int gameNumber [10], int gameScore [10] 이런 식으로 하나하나 선언해주고 관리해야합니다. 이렇게 되면 코드가 너무 길어지고 관리하는 게 복잡할 수 있습니다. 그래서 사용하는게 바로 구조체입니다. ▣ 먼저 구조체는 함수 외부에서 선언해야 합니다. struct라는 자료형식으로 지정해주고 이름을 정해줍니다. 구조체 이름은 나중에 함수안에서 선언할 변수와 이름이 헷갈릴 수 있기 때문에 대문자로 시작해주세요. 이 시작이 나중에 객체지향언어.. 2021. 5. 16.
파이썬 - [pygame, 마우스입력, 마우스좌표, event] ▣ 키보드를 입력받는 것과 동일하게 for event in pygame.event.get()으로 입력받는 값을 for으로 event에 하나하나 넣어줍니다. ▣ for으로 뿐만 아니라 바로바로 단일화해서 이벤트 값을 반환해주는 함수도 있습니다. poll() 함수입니다. https://www.pygame.org/docs/ref/event.html#pygame.event.poll pygame.event — pygame v2.0.1.dev1 documentation Pygame handles all its event messaging through an event queue. The routines in this module help you manage that event queue. The input queu.. 2021. 5. 15.
파이썬 - [pygame, 도형그리기, draw] ▣ 먼저 도형을 그리기 위해 pygame.draw. 을 접근하여 내가 그리고 싶은 도형을 접근합니다. . 접근연산자를 누르면 이렇게 어떤걸 그리고 그 매개변수 값이무엇인지 나오게 됩니다. https://www.pygame.org/docs/ref/draw.html pygame.draw — pygame v2.0.1.dev1 documentation a rect bounding the changed pixels, if nothing is drawn the bounding rect's position will be the position of the first point in the points parameter (float values will be truncated) and its width and heig.. 2021. 5. 14.
파이썬 - [pygame, 소리재생, 배경음악, mixer, sound] ▣ 우선 pygame.init() 함수를 호출하여 pygame를 초기화하세 해주세요. 이 부분이 없으면 초기화되지 않았다라는 경고가 나와 실행이 안됩니다. ▣ 그리고 test_sound라는 이름으로 pygame.mixer.Sound() 함수를 대입해 주세요. Sound() 매개변수에는 내가 사용할 소리에 위치 경로를 넣어주세요. 여기서 주의해야 할 건 경로를 복사 붙여 넣기 하면 \ 이스케이프로 붙어넣어집니다. 그럼 제어 문자로 인식해 오류가 발행하기 때문에 / 기호로 변경해서 경로를 지정해줘야 합니다. ▣ 그리고 test_sound.play() 함수를 호출하여 소리를 재생합니다. 그리고 확인을 해보세요. 그럼 소리가 한번 나오는 걸 확인할 수 있습니다. ▣ 이번에는 배경음악이 나오는 것처럼 소리를 무한.. 2021. 5. 13.
유니티 - [2D 캐릭터 움직이기] https://assetstore.unity.com/packages/2d/characters/bolt-2d-dinorun-assets-pack-188721 Bolt 2D DinoRun Assets Pack | 2D 캐릭터 | Unity Asset Store Elevate your workflow with the Bolt 2D DinoRun Assets Pack asset from Goldmetal. Find this & more 캐릭터 on the Unity Asset Store. assetstore.unity.com ▣ 여기서 에셋을 받으세요. ▣ 기본적으로 원하시는 2D 캐릭터와 바닥을 넣어주세요. Player오브젝트에 Rigidbody 2D와 Box Collider2 D 영역을 넣어주세요. Rigi.. 2021. 5. 12.
C언어 - [스톱워치, 타이머, 초 카운트, time] ▣ 헤더 파일은 Sleep() 함수를 사용하기 위해, time() 함수를 사용하기 위해 선언해 주세요. 먼저 endTime에 (unsigned)time(NULL)함수를 넣어주세요. (unsigned) 부호 비트가 0으로 시간 값을 음수가 아닌 양수로만 나타내기 위함입니다. 그럼 1970년 1월 1일부터 지금까지에 시간을 초로 반환해 줍니다. 이 값에 6을 더해줍니다. 이걸로 우리가 원하는 시간까지 초를 제한할 겁니다. ▣ 그리고 while문을 통해 startTime에 현재 시간을 넣어주세요. 그럼 whlie문을 통해 계속 반복을 하면 숫자가 초마다 늘어납니다. 그리고 조건문을 통해 0초가 되면 종료되게 코드를 완성했습니다. 그리고 확인을 하면 ▣ 이렇게 1초마다 줄어들면서 0초까지 반복되고 종료되는걸 확.. 2021. 5. 11.
파이썬 - [pygame, 텍스트출력, 글꼴지정] ▣ pygame.init()으로 pygame을 초기화해주세요. ▣ 먼저 font = pygame.font.SysFont() 로 글꼴을 객체서 정의해줍니다. SysFont("글꼴", 크기, 굵기여부, 기울기 여부) 이렇게 매개 변수값을 입력하세요. 글꼴에 종류를 알아보려면 ▣ print(pygame.font.get_fonts())를 출력하시면 이렇게 글꼴을 확인할 수 있습니다. ▣ 그리고 text = pygame.font.render()함수를 이용해서 내가 작성할 텍스트를 지정해줍니다. pygame.font.render(텍스트, antialias여부, 색지 정(튜플), 텍스트 배경색(튜플)) 매개변수를 원하시는 값으로 입력해주시면 됩니다. ▣ 그리고 이미지를 출력하는 것과 동일하게 screen.blit(t.. 2021. 5. 10.
파이썬 - [pygame, 키입력] ▣ 먼저 while True 메인반복하는 코드에 for event in pygame.event.get() 을 넣어주세요. 우선 계속 키에 값을 입력받아야하기 때문에 메인 while True안에 코드를 넣었습니다. 그리고 pygame.event.get()에 키에 값을 for문을 이용해서 하나하나 event에 넣어줍니다. ▣ 그리고 if event.type == pygame.KEYDOWN 처럼 event.type 타입이 키를 누른 KEYDOWN이고 if event.key == pygame.K_UP 키에 값이 화살표 위쪽 키라면 위쪽화살표를 출력하게 했습니다. 요약하면 위쪽 화살표키를 누르면 위쪽화살표를 출력하게 했습니다. ▣ if event.type == pygame.KEYUP 키를 때고 if event.k.. 2021. 5. 9.
파이썬 - [pygame, 이미지 로드, 이미지회전, 이미지 크기조정, 이미지 출력] ▣ img 라는 변수에 pygame.image.load()로 이미지를 불러옵니다. 저렇게 이미지에 위치를 입력해주시면 되는데 C: / 2021. 5. 7.
파이썬 - [pygame, 화면출력, 프레임조정, 화면 색 채우기] ▣ 먼저 pygame import 를 지정합니다. 그리고 size를 튜플형식으로 화면에 해상도를 지정해줍니다. screen 이름으로 pygame.display.set_mode() 를 지정해주는데 mode() 매개변수 안에 화면에 사이즈 크기를 튜플 형식으로 지정해줍니다. ▣ set_caption() 함수는 창 타이틀에 이름을 설정해주는 겁니다. ▣ pygame.time.Clock() 함수는 1초에 몇 프레임으로 제한할지에 대한 시간 함수입니다. clock.tick(30) 으로 넣게 되면 1초에 30프레임으로 제한을 한 것 입니다. 다른 방법들도 많으니 밑에 pygame메뉴얼을 참고해주세요. while True: 기본적으로 계속 프로그램을 진행해야하기 때문에 무한반복으로 진행했고, screen.fill().. 2021. 5. 7.
C언어 - [글자 위치 이동, 커서 이동 코드] ▣ 커서에 위치를 지정하려면 우선 windows.h 헤더파일 선언하고 함수 선언 및 정의를 해야한다. 함수에 매개변수에 x, y 값을 받을 매개변수를 선언하고 HANDLE 자료형을 선언한다. 이건 쉽게 이야기하면 windows에 도구를 사용하기 위한 키값이라고 생각하시면 됩니다. GetStdHandle(STD_OUTPUT_HANDLE) 출력하는 핸들 값을 handle에 정의하고 COORD 는 포지션을 구조체로 지정한다. pos.X = x, pos.Y = y 값으로 매개변수에 x, y 값으로 대입한다. SetConcoleCursorPosition(handle, pos) 커서를 지정하는 구조체에 매개변수 처음 값은 STD_OUTPUT_HANDLE 값과 COORD 포지션에 값을 각각 넣어주고 ▣ 메인 함수에서.. 2021. 5. 6.
파이썬 28장(pygame_03, 이미지불러오기, 키 연속으로 입력pygame.image.load, scale, pygame.event.get()) ▣ 안녕하세요 ^^ 오늘도 pygame을 공부해보겠습니다. ▣ 우선 이미지를 불러오겠습니다. 우선 player_img라는 변수 이름으로 pygame.image.load() 함수로 이미지를 불러오겠습니다. load() 함수에 매개변수 값에 우리가 사용할 이미지에 경로를 넣어줍니다. tkinter처럼 이미지 확장자가 png인 파일을 선택해주세요. 그럼 player_img에 이미지를 불러왔고 이제 크기를 조절하겠습니다. pygame.transfrom.scale()을 통해 먼저 어떤 이미지를 조절할지 매개변수를 놓고 , 콤마를 한 후에 () 튜플 형식으로 x, y 크기를 지정해줍니다. ▣ 그리고 이미지를 위치를 변수로 선언해주세요. player_posX, player_posY 제가 0으로 했지만 여러분들은 플레.. 2021. 5. 6.
두번째 게임 [DarkPlace] https://youtu.be/9ghAJzXO9ZQ ▶다운로드 (구글플레이스토어) play.google.com/store/apps/details?id=com.DefaultCompany.DarkPlace Dark Place - Google Play 앱 1인칭 호러 좀비게임입니다. 좀비들을 쓰러뜨리고 아들을 구하세요! play.google.com ▶ 장르 액션FPS좀비게임 ▶스토리 다크좀비들로 세상이 멸망한지 3년전... 겉으로만 사람을 판단하고 비난하는 세상... 이런 끔찍한 세상 속에서 나는 아들과 어렵게 살아가고 있었다. 아들을 돌아볼 여유도 없이 나는 먹고 살기위해 아니 죽지 않기 위해 일 만 했다. 그러던 어느날 일을 마치고 집에 돌아 왔다. 하지만 평소와 다른 분위기였다. 어둡고 무언가 울부짓는 .. 2021. 5. 2.
파이썬 27장(pygame_02, event, get(), KEYDOWN, K_, 키보드 입력) ▣ 안녕하세요 ^^ 오늘도 저번장에 이어서 게임을 만들어보겠습니다. 다시 말씀드리지만 코딩은 정답이 없다고 생각합니다. 코딩은 결국 컴퓨터한테 명령을 하는 것이고 자신에 생각을 컴퓨터한테 전달해서 그걸 표현하는 작업이 코딩이기 때문에 제가 하는 예제는 참고만 해주시고, 여러 블로그들에 글을 보시면서 자신만에 코드를 완성해가셔야 진짜 실무에서 코딩을 하실 수 있습니다.~~ ▣ 먼저 키보드를 입력받는 코드를 진행해보겠습니다. while True: 안에 코드를 입력하겠습니다. 그건 계속해서 키보드에 값을 입력받아야 하기 때문에 계속 반복되는 메인코드에 넣었습니다. 그리고 for event in pygame.event.get() 이라고 되어있죠? for문을 우리가 배워서 알고 있습니다. event라는 값 안에 .. 2021. 4. 29.
파이썬 26장(pygame_01, import, display, set_caption, time, update) ▣ 안녕하세요 ^^ 저번장에 이어서 이번에도 파이썬으로 게임을 만들어보도록 하겠습니다. 아무래도 좀 더 심화적으로 게임을 만들려면 pygame을 사용하는 게 좋을 거 같아 tkinter이 아닌 pygame으로 만들어보도록 하겠습니다. www.pygame.org/docs/ref/display.html pygame.display — pygame v2.0.1.dev1 documentation Change whether screensavers should be allowed whilst the app is running. The default is False. By default pygame does not allow the screensaver during game play. It is possible to .. 2021. 3. 25.
파이썬 25장(tkinter_09, 미로게임_04, 초기화, 사운드, 아이템, winsound, create_rectangle, delete) ▣ 안녕하세요 ^^ 오늘은 저번장에 이어서 미로게임을 좀 더 업그레이드를 진행하도록 하겠습니다. ▣ 우선 먼저 플레이어가 미로 밖을 통과하지 못하게 코드를 진행하겠습니다. 여러 가지 방법이 있겠지만, 저는 키를 입력했을 때에 조건문에서 and 논리 연산자를 추가하여 진행했습니다. 예를 들어 UP일 경우 posY - 1 을 했을 때 리스트에 값이 0이면 포지션을 움직이게 만들었습니다. 그리고 테스르를 하면 리스트에 요소 값이 1인 경우에는 움직이지 않는 걸 확인할 수 있습니다. 두 가지에 연산 조건이 참일 경우 움직이기 때문입니다. 그럼 이제 아이템을 추가해보겠습니다. ▣ 아이템 png를 추가해주시고요. 아이템을 위치는 저는 리스트에서 2로 지정하였습니다. 그리고 요소 값이 2인 경우 캔버스에서 그려주게 .. 2021. 3. 2.
유니티 5장(Fadein, FadeOut, 페이드효과, 알파값 조절, image, Ui) ▣ 안녕하세요. 오늘은 게임 씬에서 게임 씬으로 넘어갈 때 페이드인 페이드아웃 효과로 자연스럽게 화면을 넘어가는 효과를 만들어보려고 합니다. ▣ 이 방법은 여러 방법 중에 하나입니다. 정답이라고 생각하시지 마시고 이 방법을 공부한 후에 어려 분들만에 방법으로 공부해 보세요. ▣ 먼저 새 프로젝트를 만들어주세요. 그리고 UI에서 Panel을 생성해 주세요. ▣ 그럼 이렇게 Canvas안에 Panel이 생성된 걸 확인할 수 있습니다. Panel을 클릭하셔서 image에서 Color에서 RGB 모두 0으로 맞춰주시고요. A 알파 값은 255로 맞춰주세요. RGB은 각각 색을 의미하고, A알파는 투명도를 의미합니다. ▣ 그런 다음에 GameManager을 생성해 주시고 그 안에 GameManager라는 스크립트.. 2021. 2. 9.
파이썬 24장(tkinter_08, 미로게임_03, 사운드, 아이템, winsound, create_rectangle, delete) ▣ 안녕하세요. 오늘은 저번장에 있는 내용과 이어지지만 새로운 프로젝트를 만들어서 연결해보는 공부를 해보도록 하겠습니다. ▣ 먼저 import winsound를 불러오겠습니다. 이건 아이템을 먹었을 때, wav파일을 재생하기 위한 모듈입니다. 그리고 아이템에 대한 X, Y 좌표 변수도 선언 및 정의를 해주도록 하겠습니다. ▣ 그리고 간단하게 Player를 컨버스에 배치해주시고, 아이템까지 item좌표로 배치해주도록 하겠습니다. 이때 tag 지정하는거 잊지 마세요. ▣ 움직이는 코드는 저희가 저번장에서 공부했으니 넘어가고 main함수에 대한 부분을 수정해보도록 하겠습니다. 우선 아이템에 닿였을 때 조건문을 만들어보겠습니다. 많은 방법들이 있겠지만, 저는 pos - item에 위치를 뺀 값으로 지정했습니다... 2021. 2. 2.
파이썬 23장(tkinter_07, 미로게임_02, 플레이어 이동, keysym, after, coords) ▣ 안녕하세요 오늘은 저번 시간에 이어서 미로게임을 만들어보겠습니다. 간단하게 플레이어를 넣고 방향키를 누르면 이동하는 걸 공부해보겠습니다. ▣ 먼저 저번장까지 완성한 내용을 열어서 keyinput 전역변수를 선언해주겠습니다. 여기에는 키를 입력한 값을 저장하는 변수라고 생각하시면 됩니다. 그리고 키에 값을 입력 받는 함수 key_Down을 만들어보겠습니다. 전역 변수를 사용해야 하기 때문에 gloabal키워드로 keyinput을 선언했고, 매개변수로 받은 i에 값에 i.keysym 키워드를 사용합니다. 저번장에서도 했지만, 이 키워드는 입력받은 키에 이름값을 가져옵니다. 만약에 방향키"Up"을 누르면 이렇게 "Up"에 이름값이 keyinput에 대입됩니다. ▣ 그리고 밑에 보시면 key_Up함수를 정의.. 2021. 1. 5.
파이썬 22장(tkinter_06, 미로게임_01, 도형그리기, 게임맵만들기, canvas.create_rectangle, 2차원 리스트, 리스트) ▣ 안녕하세요^^ 오늘은 간단하게 캔버스를 활용하여 도형을 그려보고 도형을 이용해서 미로게임 맵을 만들어보는 과정까지 함께 공부해도록하겠습니다. ▣ 먼저 동일하게 선언을 TK()를 선언해주시고, 타이틀을 지정한 후에 cavas를 선언해주세요. 그리고 cavas.create_rectangle를 선언해줍니다. 제가 밑에 주석을 넣은 것처럼 create_rectangle(x1, y1, x2, y2, fill=채우기 색, outline=선색, width=선두께) 이렇게 지정을 해줘야 하는데 x1, y1, x2, y 2가 먼지 구분이 잘 안되실 거라 생각합니다. 이건 쉽게 이야기하면 ▣ 그림에서처럼 x1, y1은 좌측 상단 좌표를 이야기합니다. x2, y2는 우측 하단 좌표를 이야기합니다. 한마디로 좌측과 우측에.. 2020. 12. 31.
파이썬 21장(tkinter_05, 키 입력, bind(), 키 입력함수, key, 마우스 클릭) ▣ 안녕하세요^^ 오늘은 키를 입력받고 이미지를 움직여보는 걸 해보도록 하겠습니다. ▣ 먼저 키를 입력받으려면 bind() 함수를 사용해야 합니다. bind 함수에 첫번째 매개변수 값은 이벤트 값을 넣어주고 두 번째에는 키를 입력하면 호출하고 값을 전달해줄 함수를 지정해줍니다. ▣ 이벤트에 종류로는 주석에 나와있는것 처럼 "" , ""는 키를 입력할 때 함수에 매개변수 값이 전달이 되고 "" 키 입력 후 땐 후에 값을 전달 "" 마우스 포인터를 움직일 때 전달 "", "" 각각 마우스를 클릭하면 전달이 됩니다. ▣ 저희는 ""키를 입력하면 전달하게 하게 지정하고 KeyClick함수를 호출하게 합니다. 입력하면 KeyClick(e) - e에 값이 전달되고 전역 변수에 접근하여 e.keycode에 접근하여 .. 2020. 12. 14.
파이썬 20장(tkinter_04, 메시지박스 , after(), 시간, GUI, import, 타이머) ▣ 안녕하세요^^ 오늘은 저번장에 이어서 tkinter모듈을 사용해서 GUI를 구현 보도록 하겠습니다. 먼저 메시지박수를 출력하는걸 간단하게 구현해보겠습니다. ▣ 우선 메시지 박스를 사용하려면 import.tkinter.messagebox 모듈을 추가해주시고, 우리가 저번에 했던것처럼 버튼을 먼저 생성해주겠습니다. 그리고 버튼을 클릭할 때, 메시지를 출력하게 할 텐데 tkinter.messagebox.showinfo("타이틀 제목", "내용")을 함수에 넣습니다. 그리고 버튼에 command를 함수로 지정해줍니다. ▣ 실행을 해보면 버튼을 클릭할 때 이렇게 메시지가 나오게 됩니다. ▣ 여기서 중요한 건 tkinter.messagebox.showinfo() == 정보 표시 tkinter.messagebox.. 2020. 12. 7.
파이썬 19장(tkinter_03, import, GUI, checkbutton, 체크버튼, boolean) ▣ 안녕하세요~~^^ 오늘은 저번장에 이어서 tkinter을 이어서 공부해보도록 하겠습니다. 먼저 체크박스부터 생성하는 걸 공부해보도록 하겠습니다. ▣ 캔버스와 거의 비슷합니다. 먼저 체크버튼을 선언을 하고 pack() 함수로 배치하면 됩니다. 그럼 이렇게 우리가 지정한 text로 체크버튼이 생성되는 걸 확인할 수 있습니다. 안에 네모 체크버튼을 누르면 체크가 되는 것도 확인할 수 있습니다. ▣ 그리고 체크버튼 처음에 상태를 지정하기 위해서는 tkinter.BooleanVar()를 선언해주고 그 값을 set()함수로 지정해주면 처음 상태를 지정할 수 있습니다. boolean 타입은 우리가 공부했었죠? 참이면 True == 1, false == 0 으로 공부했습니다. ▣ 그리고 이렇게 현재에 상태를 get.. 2020. 11. 30.