📣 나도코딩의 【ChatGPT 풀코스 강의】가 신규 출시되었습니다. ChatGPT의 기초부터 프롬프트 엔지니어링, OpenAI API 까지 쉽고 재미있게 알려드립니다. 👉 bit.ly/naco_chatgpt (50% 할인 쿠폰 코드 : CHATGPT) --- 잠깐! 질문이 있으신가요? 아래 영상의 설명을 참고하셔서 질문게시판을 이용해보세요 ^^ 이미 답변이 되었을 수도 있답니다. - 자주 묻는 질문 게시판 : nadocoding.tistory.com/17 - 사용방법 : ua-cam.com/video/LZQC9mEzdtk/v-deo.html [목차] 파란색 링크를 눌러주세요 (건너뛰기) [기본기] (0:00:00) 0.Intro (0:00:16) 1.소개 (0:02:02) 2.활용편1 소개 (0:02:59) 3.환경설정 & 프레임 (0:11:52) 4.배경 (0:18:36) 5.캐릭터 (0:28:26) 6.키보드 이벤트 (0:39:54) 7.FPS (0:46:54) 8.충돌 처리 (0:54:42) 9.텍스트 (1:02:46) 10.게임 개발 프레임 [퀴즈] (1:07:03) 11.퀴즈 전반전 (1:14:53) 12.퀴즈 후반전 [프로젝트] (1:22:16) 13.프로젝트 (1:25:17) 14.배경과 캐릭터 (1:35:40) 15.무기와 키보드 이벤트 (1:50:43) 16.공 만들기 (1:57:37) 17.공 튕기기 (2:10:22) 18.충돌 처리 (2:19:46) 19.공 쪼개기 (2:27:38) 20.게임 오버 (2:38:47) 21.버그 수정 (2:52:24) 22.Outro [소스코드] 아래 블로그에서 소스코드를 받으실 수 있습니다. nadocoding.tistory.com/8 [퀴즈 게임 이미지] 1. 똥 www.freepik.com/free-vector/funny-poop-sticker-collection_1318153.htm#page=1&query=shit&position=0 2. 멍멍이 캐릭터 www.freepik.com/free-vector/pack-pugs-with-lovely-style_1353886.htm#page=1&query=shit&position=6 3. 종이 배경 www.freepik.com/free-photo/design-space-paper-textured-background_3220799.htm#page=1&query=paper&position=0 [프로젝트 게임 이미지] 1. 배경 www.freepik.com/free-vector/arcade-game-world-pixel-scene_4815143.htm#query=arcade-game-world-pixel-scene&position=8 2. 스테이지 www.freepik.com/free-vector/urban-city-day-time-background_4708004.htm#page=5&query=brick&position=47 3. 캐릭터 opengameart.org/content/custom-sprites-for-the-crystal-palace-0 4. 무기 머리 부분 www.freepik.com/free-vector/weapon-icons-set_3924829.htm#page=1&query=arrow%20weapon&position=7 5. 무기 몸체 부분 (와이어) www.freepik.com/free-vector/barbed-wire-realistic-illustration-separate-elements-barbed-wire_3586280.htm#page=1&query=wire&position=37 6. 공 www.freepik.com/free-vector/colored-bubbles_808278.htm#page=2&query=bubble&position=18
(다른 댓글에도 있지만 중요한 내용이라서 고정 댓글에 다시 추가합니다) 키 이벤트를 통한 캐릭터 이동 시 방향키를 빠르게 누르면 캐릭터가 아예 멈춰버리는 현상이 생깁니다. 프로젝트 코드 기준으로 아래와 같이 4군데를 수정하면 위 현상을 해결할 수 있습니다. x 좌표 이동 방향 처리를 왼쪽, 오른쪽으로 나누어서 key down / key up 에서 각각 처리하여 더해주는 방식입니다. ★ 아이디어를 주신 '실로폰'님 감사합니다 ^^ [개선된 코드] # 수정1 : 기존의 character_to_x 를 왼쪽 방향, 오른쪽 방향 변수 2개로 나눔 character_to_x_LEFT=0 character_to_x_RIGHT=0 ... for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # 수정2 : 키를 누를 때 LEFT, RIGHT 에 따라 서로 다른 변수의 값 조정 if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: character_to_x_LEFT -= character_speed # 바뀐 부분 elif event.key == pygame.K_RIGHT: character_to_x_RIGHT += character_speed # 바뀐 부분 elif event.key == pygame.K_SPACE: ... # 수정3 : 키에서 손을 뗄 때 LEFT, RIGHT 를 각각 처리 if event.type == pygame.KEYUP: if event.key == pygame.K_LEFT: # 이 부분은 모두 다 바뀜 character_to_x_LEFT = 0 elif event.key == pygame.K_RIGHT: character_to_x_RIGHT = 0 # 수정4 : 두 변수의 값을 모두 더함 character_x_pos += character_to_x_LEFT + character_to_x_RIGHT ...
이번에도 어찌저찌 해보겠습니다 선생님 파이썬이 익숙해지는 그날까지...★ 1:41:35 무기 발사 처리 1:45:12 공격 시 무기 위로 올라가게 조정 1:54:00 공격당한 공 쪼개지고 늘어나고 하는거 1:58:33 enumerate 2:05:48 공 튕김처리 그림판 설명
저도 나름 코딩강사랍시고 여기저기 강의 하며 다녔었고, 파이게임의 주제로도 강의한 적 있었는데, 이 영상을 보니 제가 했던건 강의 축에도 못낀다는걸 느꼈습니다. 가지고 계시는 지식도 훌륭하시지만, 그걸 전달하고 설명하시는 실력도 대단하시네요 앞으로도 좋은 영상 기대하겠습니다.
기본편 끝내고 현재 활용편1까지 다 따라했습니다! (이제는 선생님이라고 불러야 할 것 같습니다 ^^) 그냥 보고 따라하니 조금씩 이해가 가고 퀴즈를 통해서 더욱 이해가 잘가네요. 진짜 아무것도 모르고 시작해서 금방 포기 할 줄 알았는데 너무 재밌게 배우고 있습니다! 영상 만드시는데 수고가 많으시겠지만 꾸준히 올려주세요! 감사합니다
영상 시작 부분에서 pygame 설치 오류가 뜨는 분들이 많으실 텐데, 22년 12월 기준으로 python 3.11 이상 최신 버전은 pip install pygame 실행 시 설치가 안 되는 오류가 있습니다. 낮은 버전을 다시 설치하셔야 하는데, 3.7 이전 버전은 VS code에서 디버깅 툴이 지원되지 않으므로 3.7~3.10 사이의 버전 설치를 권장합니다. 저는 3.10.9 버전으로 해결했습니다.
linting 이라는 설정이 안 나오면... (2024년 2월 12일) 제 생각에는 vscode가 업데이트가 되서 사라진것 같습니다 그냥 결론 예기 하면 8:20 부터 이벤트루프 만들어 보세요. (그냥 코드부터 보고 싶다면 11:08 ) 이게 왜 이러냐면 vscode가 업데이트 되서 그 설정이 사라졌지만 나도코딩님의 영상을 보면 linting 어쩌구가 체크 되있고, 체크 해제 해야 하는데, 없어지면서 체크 해제가 기본 값이 된것 같습니다. 그러니까 그 설정을 할 필요가 없어졌다는 소리에요
키 이벤트를 통한 캐릭터 이동 시 방향키를 빠르게 누르면 캐릭터가 아예 멈춰버리는 현상이 생깁니다. 프로젝트 코드 기준으로 아래와 같이 4군데를 수정하면 위 현상을 해결할 수 있습니다. x 좌표 이동 방향 처리를 왼쪽, 오른쪽으로 나누어서 key down / key up 에서 각각 처리하여 더해주는 방식입니다. ★ 아이디어를 주신 '실로폰'님 감사합니다 ^^ [개선된 코드] # 수정1 : 기존의 character_to_x 를 왼쪽 방향, 오른쪽 방향 변수 2개로 나눔 character_to_x_LEFT=0 character_to_x_RIGHT=0 ... for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # 수정2 : 키를 누를 때 LEFT, RIGHT 에 따라 서로 다른 변수의 값 조정 if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: character_to_x_LEFT -= character_speed # 바뀐 부분 elif event.key == pygame.K_RIGHT: character_to_x_RIGHT += character_speed # 바뀐 부분 elif event.key == pygame.K_SPACE: ... # 수정3 : 키에서 손을 뗄 때 LEFT, RIGHT 를 각각 처리 if event.type == pygame.KEYUP: if event.key == pygame.K_LEFT: # 이 부분은 모두 다 바뀜 character_to_x_LEFT = 0 elif event.key == pygame.K_RIGHT: character_to_x_RIGHT = 0 # 수정4 : 두 변수의 값을 모두 더함 character_x_pos += character_to_x_LEFT + character_to_x_RIGHT ...
댓글을 안달래야 안달 수가 없습니다. 너무나도 완벽합니다. 이제 파이썬 책 한바퀴 돌리고 두바퀴째 돌리기 직전에 한번 무작정 따라했는데 뭔가 광명을 찾은 느낌입니다. 전체 큰 틀이 느껴지고 큰 깨달음을 얻어갑니다. 결국 for, if문을 활용해서 이 게임이란걸 만들어내다니....ㄷㄷㄷ 재미가 붙습니다. 감사합니다. 최고(굿)(굿)(굿)
elapsed_time = (pygame.time.get_ticks() - start_ticks) / 1000 이 부분에서 start_ticks를 따로 정의해서 빼주는 이유가 무엇인가요? pygame.time.get_ticks() / 1000 을 해준 후에 total에서 빼면 안되는 건가요?
pygame.time.get_ticks() 를 하게 되면 프로그램 시작 시점부터 이 문장이 실행될 때까지의 시간을 알 수 있는데요, 이렇게 설명해볼게요. import pygame ... 소스코드 ... start_ticks 정의 -> 프로그램 시작 시점부터 이 때까지 2초 소요 (★) ...소스 코드... while ... ... 소스 코드... elapsed_time 계산 -> 프로그램 시작 시점부터 이 때까지 3초 소요 (●) 프로그램을 시작하고부터 ★ 지점까지는 2초가 소요 되었습니다. 프로그램을 시작하고부터 ● 지점까지는 3초가 소요 되었습니다. 그러면 ★ 와 ● 까지는 1초가 소요된 것이죠. total_time 이 100초이며, 100초부터 99, 98, 이렇게 줄어들어야 하므로 elapsed_time 은 1초, 2초, .. 이렇게 증가해야 합니다. 하지만 pygame.time.get_ticks() 는 프로그램 시작 시점부터 그 문장이 실행될때가지의 시간이라 했으므로, 앞에 ★ 부분까지 소요된 2초를 포함한 전체 시간이 나오겠지요? 그러면 준혁님께서 말씀하신 코드대로 하면 elapsed_time 의 처음 값은 최소한 3초 이상일겁니다. 그러면 total_time 에서 3초를 뺀 97 초가 처음값이 되는 문제가 생길 수 있는거죠. start_ticks 를 빼면, ● 까지 3초 소요된 시간 중 ★ 까지 2초 소요된 시간을 빼기 때문에 1초가 될 것이고, total_time 에서 1초를 뺀 99초가 될겁니다. 정리하면, 게임 루프 (while 부분) 에 진입하기 전까지의 소스코드가 수행되기 위해 소요되는 시간은 빼기 위해 start_ticks 를 따로 빼준답니다. ^^ 감사합니다.
230102 ~54:42 수강시작 230103 54:42~1:50:42 퀴즈 완료, 프로젝트 이벤트 처리까지 완료(+코드 수정하여 무기 최대 2개 발사 가능하도록 설정) 230104 1:50:42~2:27:38 공 튀기기 및 작은 공으로 쪼개기 구현 완료 230105 2:27:38~ 수강 끝 나코님의 코드를 일부 다르게 작성해서 그런 것인지는 모르겠지만 저는 다른 부분에서 버그가 나오는 것 같네요... 동일한 위치에서 무기 2개를 발사한 경우 무기에 맞지 않은 공이 사라지는 버그가 발견되는 것 같은데 저도 한 번 다시 코드를 검토해야 할 것 같습니다... 역시 코드 작성보다도 코드 리뷰, 에러 체크가 어렵게 느껴지네요.
바다 건너 사는데요... 시작할까말까 고민만 1년 하다가... 까먹고 있다가 우연한 기회에 다시 접하게 되서 정말 기쁩니다. 퇴근후에 30분 정도라도 강의 듣고 있으면 그래도 머리가 약간은 돌아가는 느낌이 드네요.ㅋㅋㅋ 소걸음으로 시작한지 그래도 몇주 되어갑니다. 잘듣고 잘보고 잘흉내 내서 나도한번 코딩을 제대로 해보는 시간이 오기를 간절히 기다려봅니다.. 직장에서도 잘 써먹어서 좋은 프로모션이 있으면 더 좋구요..늘 감사 합니다.
38:40초 질문입니다. 항상 강의 잘 보고 있습니다. 감사합니다. 키보드 이벤트에서 경계값 처리하는 부분 질문인데요. 강의에서는 while문 바깥에 # 가로 경계값 처리 if character_x_pos < 0: character_x_pos = 0 elif character_x_pos > screen_width - character_width: character_x_pos = screen_width - character_width 이런식으로 처리를 해주셨는데요. 저는 왼쪽방향 경계처리만 생각해 보자면 if event.type == pygame.KEYDOWN: # 키보드를 눌렀을 때(아래키 입력 아님) if event.key == pygame.K_LEFT: # 캐릭터를 왼쪽으로 이동 if character_x_pos >= 5: # 왼쪽 경계에 닿을때 까지만 빼줄수 있다. to_x -= 5 else: # 아니라면 다시 반복문 처음으로 가서 이벤트를 기다리자. continue 이런식으로 while문 안에서 x_pos 위치가 5보다 크거나 같을때만(X 좌표 왼쪽 경계위치가 0이니까 그 밑의 값으로는 가지 못하게) 빼주고 아닌경우에는 continue해서 돌려 보내는 방식으로 구현할 수 있지않을까 생각해봤는데요.(continue대신에 'character_x_pos = 0'을 넣어서 멈추게 하려 했는데도 안되더라고요 ㅠ) 제 방법이 조건문이 더 겹겹이 있어서 시간적인 면에서 비효율적이긴 해도 논리상 구현은 돼야 할 것같은데, 이대로 실행을 하면 캐릭터가 계속 왼쪽 경계밖으로 벗어나네요 ㅠ 제 코드에 어떤 논리상 오류가 있는건가요??
와~ 정말 잘 배웠습니다. 파이썬을 전혀 몰랐다가 기초부터 게임까지 배우고, 뭔가 만들 수 있어서 좋네요. 강의 보면서 만든 게임에 약간 오류가 있어서 조금 아쉬운데, 제가 만든 건 왜 공 하나만 움직이는지 모르겠어요. 소스 코드 비교하는 방법을 알려 주는 동영상 강의 보면서, 소스 코드를 비교해 봤는데, 다른 게 없었거든요. 그래도 완벽하지는 않지만, 게임을 만들어서 재밌게 즐길 수 있어서, 뿌듯합니다. 잘 가르쳐 주셔서 고맙습니다^^
📣 나도코딩의 【ChatGPT 풀코스 강의】가 신규 출시되었습니다.
ChatGPT의 기초부터 프롬프트 엔지니어링, OpenAI API 까지 쉽고 재미있게 알려드립니다.
👉 bit.ly/naco_chatgpt (50% 할인 쿠폰 코드 : CHATGPT)
---
잠깐! 질문이 있으신가요? 아래 영상의 설명을 참고하셔서 질문게시판을 이용해보세요 ^^ 이미 답변이 되었을 수도 있답니다.
- 자주 묻는 질문 게시판 : nadocoding.tistory.com/17
- 사용방법 : ua-cam.com/video/LZQC9mEzdtk/v-deo.html
[목차]
파란색 링크를 눌러주세요 (건너뛰기)
[기본기]
(0:00:00) 0.Intro
(0:00:16) 1.소개
(0:02:02) 2.활용편1 소개
(0:02:59) 3.환경설정 & 프레임
(0:11:52) 4.배경
(0:18:36) 5.캐릭터
(0:28:26) 6.키보드 이벤트
(0:39:54) 7.FPS
(0:46:54) 8.충돌 처리
(0:54:42) 9.텍스트
(1:02:46) 10.게임 개발 프레임
[퀴즈]
(1:07:03) 11.퀴즈 전반전
(1:14:53) 12.퀴즈 후반전
[프로젝트]
(1:22:16) 13.프로젝트
(1:25:17) 14.배경과 캐릭터
(1:35:40) 15.무기와 키보드 이벤트
(1:50:43) 16.공 만들기
(1:57:37) 17.공 튕기기
(2:10:22) 18.충돌 처리
(2:19:46) 19.공 쪼개기
(2:27:38) 20.게임 오버
(2:38:47) 21.버그 수정
(2:52:24) 22.Outro
[소스코드]
아래 블로그에서 소스코드를 받으실 수 있습니다.
nadocoding.tistory.com/8
[퀴즈 게임 이미지]
1. 똥
www.freepik.com/free-vector/funny-poop-sticker-collection_1318153.htm#page=1&query=shit&position=0
2. 멍멍이 캐릭터
www.freepik.com/free-vector/pack-pugs-with-lovely-style_1353886.htm#page=1&query=shit&position=6
3. 종이 배경
www.freepik.com/free-photo/design-space-paper-textured-background_3220799.htm#page=1&query=paper&position=0
[프로젝트 게임 이미지]
1. 배경
www.freepik.com/free-vector/arcade-game-world-pixel-scene_4815143.htm#query=arcade-game-world-pixel-scene&position=8
2. 스테이지
www.freepik.com/free-vector/urban-city-day-time-background_4708004.htm#page=5&query=brick&position=47
3. 캐릭터
opengameart.org/content/custom-sprites-for-the-crystal-palace-0
4. 무기 머리 부분
www.freepik.com/free-vector/weapon-icons-set_3924829.htm#page=1&query=arrow%20weapon&position=7
5. 무기 몸체 부분 (와이어)
www.freepik.com/free-vector/barbed-wire-realistic-illustration-separate-elements-barbed-wire_3586280.htm#page=1&query=wire&position=37
6. 공
www.freepik.com/free-vector/colored-bubbles_808278.htm#page=2&query=bubble&position=18
(다른 댓글에도 있지만 중요한 내용이라서 고정 댓글에 다시 추가합니다)
키 이벤트를 통한 캐릭터 이동 시 방향키를 빠르게 누르면 캐릭터가 아예 멈춰버리는 현상이 생깁니다.
프로젝트 코드 기준으로 아래와 같이 4군데를 수정하면 위 현상을 해결할 수 있습니다.
x 좌표 이동 방향 처리를 왼쪽, 오른쪽으로 나누어서 key down / key up 에서 각각 처리하여 더해주는 방식입니다.
★ 아이디어를 주신 '실로폰'님 감사합니다 ^^
[개선된 코드]
# 수정1 : 기존의 character_to_x 를 왼쪽 방향, 오른쪽 방향 변수 2개로 나눔
character_to_x_LEFT=0
character_to_x_RIGHT=0
...
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 수정2 : 키를 누를 때 LEFT, RIGHT 에 따라 서로 다른 변수의 값 조정
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
character_to_x_LEFT -= character_speed # 바뀐 부분
elif event.key == pygame.K_RIGHT:
character_to_x_RIGHT += character_speed # 바뀐 부분
elif event.key == pygame.K_SPACE:
...
# 수정3 : 키에서 손을 뗄 때 LEFT, RIGHT 를 각각 처리
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT: # 이 부분은 모두 다 바뀜
character_to_x_LEFT = 0
elif event.key == pygame.K_RIGHT:
character_to_x_RIGHT = 0
# 수정4 : 두 변수의 값을 모두 더함
character_x_pos += character_to_x_LEFT + character_to_x_RIGHT
...
@@nadocoding 그러면 charcater를 player로 전부 바꿔야 하나요?
이해가 안가내요...
@@tatenen4132 죄송합니다. 다른 PC 에서 작업하던 소스코드를 수정해서 character 가 player 로, 우리 강의 내용과 다르게 돼 있었네요
댓글 내용 수정하였으니 다시 확인 부탁드려요 ^^
@@nadocoding 혹시 IDLE로 해도 바뀌는건 없나요?
@@siwoncool 코드 분량이 꽤 되어서 IDLE 에서 하시게 되면 많이 불편하실거라 생각합니다 ^^
솔직히 이런 강의가 한국어 영상으로
나와준다는게 너무나
감사할 따름이네요. 감동입니다11
대한민국에 많은 훌륭한 강의들이 있지만 사교육비 절감에 조금이나마 일조하고 싶었는데 많은 분들이 호응해 주셔서 얼마나 감사한지 모릅니다. 계속 좋은 영상을 만들도록 꾸준히 노력하겠습니다 ^^
@@nadocoding 계속 좋은 영상 빨리 올려주세요...ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ (좋은 강의 잘보고 있습니다. ^^)
@@nadocoding 대기업 부품으로써 자괴감 많이 느끼고 있었는데, 나도코딩님 강의로 늦었지만 프로그래머라는 꿈을 갖게 되었어요.
앞으로 2년 열심히 공부해서 프로그래머로 새 삶을 시작하려 합니다. 너무 감사합니다.
맨날 흑백화면에 print나 쳐대는 게 코딩인가 싶었는데 실용편 따라하니 진짜 코딩의 참맛을 알 것 같습니다.
말 잘하시네요 ㅋㅋㅋㅋㅋㅋㅋ
ㅇㅈ
@@hoya0690 '인정'을 초성으로만 따서 'ㅇㅈ'이라고 써요
20:59 책갈피✨
이번에도 어찌저찌 해보겠습니다 선생님 파이썬이 익숙해지는 그날까지...★
1:41:35 무기 발사 처리
1:45:12 공격 시 무기 위로 올라가게 조정
1:54:00 공격당한 공 쪼개지고 늘어나고 하는거
1:58:33 enumerate
2:05:48 공 튕김처리 그림판 설명
진짜재밋다ㅋㅋㅋㅋㅋㅋ 파이썬 파짜도 모르고 아직 기초도 안듣고 있는데 이해가 되면 얼마나 잘 가르쳐주시는 거징ㅎㅎ 이거 보고 기초편보면 정말 재밋게 배울 수 있을 것 같아요ㅎㅎ 감사합니당ㅎㅎ
똑똑혜
@@이기섭섭하다 7
@@이기섭섭하다
저분 동생이라서 형 선전해주는 거 아닐까요?
@@kimjunsik540
안 똑똑해!
PC언어는 내것은 아니라고 생각하며 지내왔는데..."나도코딩님" 의 기본편(약2주간) 보고 더할나위 없는 실력과 강의에 감탄 금할 수 없네요.. 멋지고 최곱니다. 한걸음 한걸음 나아가고 많이 배우겠습니다.
갑니다
저도 나름 코딩강사랍시고 여기저기 강의 하며 다녔었고, 파이게임의 주제로도 강의한 적 있었는데,
이 영상을 보니 제가 했던건 강의 축에도 못낀다는걸 느꼈습니다.
가지고 계시는 지식도 훌륭하시지만, 그걸 전달하고 설명하시는 실력도 대단하시네요
앞으로도 좋은 영상 기대하겠습니다.
목소리도 너무 듣기 좋고요, 설명도 너무 친절하시고, 강의 퀄리티도 높고요, 너무 최고에요!
자꾸 이러시면 진짜인 줄 알고 혼자 헤벌레... 합니다.
3000 만큼 감사합니다♥
감사합니다. 너무, 훌륭한 강의 .. 그리고, 광고도 없구오... 최고의 영상.. 감동X1000만배 입니다.
정말 최고의 강의입니다. 전 초딩,중딩,고딩은 알아도 코딩은 전혀 모릅니다. 그런 제가 강의하시는대로 따라 하니 조금씩 알게 되더라구여. 진심으로 감사드립니다. 목소리 최고, 강의 이끌어 가시는 스킬도 최고입니다. 복 받으실 거예요.
코하하하
강의 하시는데 목소리가 너무 차분하고 귀에 잘 들어옵니다. 가르치는데 천부적인 목소리를 소유하신 것 같아요. 감사합니다!
칭찬 정말 감사드립니다. ^^ 제게는 늘 어색한 제 목소리지만 전달이 잘 된다고 하시니 진짜 다행이에요 ㅋㅋㅋ
28:27 이번에도 잘 따라가 보겠습니다~ 감사합니다.
책 한권 본 느낌, 아니 다른 책(파이썬 완벽가이드)에서는 언급되지 않은것도 볼 수 있어 좋았습니다. 추천입니다. ^^
1:04:00
기본편 끝내고 현재 활용편1까지 다 따라했습니다! (이제는 선생님이라고 불러야 할 것 같습니다 ^^)
그냥 보고 따라하니 조금씩 이해가 가고 퀴즈를 통해서 더욱 이해가 잘가네요.
진짜 아무것도 모르고 시작해서 금방 포기 할 줄 알았는데 너무 재밌게 배우고 있습니다!
영상 만드시는데 수고가 많으시겠지만 꾸준히 올려주세요! 감사합니다
파이썬을 아예 모르는 상태에서 봤는데도 전체적인 내용이 잘 이해되네요!! 세부적인 문법만 익힌다면 저도 충분히 게임을 만들 수 있다는 자신감을 얻었습니다. 좋은 강의 감사해요~~!
이번에도 다 듣고 따라해 보았어요!! 와우~~ 같이 따라 할때는 귀에 쏙쏙 잘 들어와요 ㅎㅎㅎ^^ 대박ㅎㅎㅎ 넘넘 재밌어요!!! 감사합니다.~~~^^
ㅠㅠ 감동입니다. 이렇게 열심히 하시는 분이 계시니... 다음 강의도 열심히 준비하겠습니다!!!^^
선생님 기초 6시간 듣고 왔어요 너무 재밋어요 활용편에선 또 어떤 수업으로 저한테 흥미를 주실지 기대되네용 좋은 강의 감사합니다.
2:10:26
재밌게 강의 잘 보고있습니다 선생님. 꾸준히 흥미를 가지고 코딩 공부에 임하게 해줄 수 있는 강의는 이 강의가 처음이에요. 감사합니다♥
책갈피 1:07:47
이런영상 많이 올려주셔서 감사합니다, 공부 잘 하고 있어요.
내가본 파이선 강의중에 최고다... 이만한거 없다.. 그냥 여기서 1달만 미친척하고 하면 파이썬 쌉고수.. 강의 정말 최곱니다요
거의 3시간 가까이 되는 영상인데, 시간가는 줄 모르고 보았네요. 파이썬을 혼자 공부하시는 분들께 정말 좋은 강의네요! 코딩하는 걸 어려워하는 어려워하고 활용을 못하는 경우가 많은데 게임을 직접 만들어보며 재미있게 코딩하기 좋아요!
영상 시작 부분에서 pygame 설치 오류가 뜨는 분들이 많으실 텐데, 22년 12월 기준으로 python 3.11 이상 최신 버전은 pip install pygame 실행 시 설치가 안 되는 오류가 있습니다. 낮은 버전을 다시 설치하셔야 하는데, 3.7 이전 버전은 VS code에서 디버깅 툴이 지원되지 않으므로 3.7~3.10 사이의 버전 설치를 권장합니다. 저는 3.10.9 버전으로 해결했습니다.
댓글정말안다는편인데 바로 해결됬네요~^^
감사합니당
사랑해요
@user-cb7vf5fm3j python 홈페이지에서 다운 받을 수 있습니다!
감사합니다 :)
활용편 완강 가즈아
54:44
1:22:16 퀴즈 해결 완료
2:10:23 무기, 공 이해중
끝!
처음 댓글을 달아봐요...파이썬 독학중입니다. 이렇게 고컬리티 강의를 무료로 올려주셔서 ..너무 감사 드립니다.. 어떤 강의도 이런 퀄은 없었네요..더하기 빼기 강의만 수두룩했는데,, 이런 실전 강의를 올려주셔서 다시 한번 감사드립니다.
초 5학년 입니다. 코딩이 재밌어서 이분 보고 시작했는데 제가 게임을 만들수 있을줄은 몰랐어요. ㅋㅋㅋ 친구한테 제가 만들었다 하니까 안믿더라고여.. 어쨋든 강의 정말 좋아요!!!
고인물 ㄷㄷ
저도 초5인데 C언어 파이썬 열심히 공부중입니다 만들어보니까 재밋더라구요 ㅎ
중1 인데 내일 파이썬 함수 배워요
+ 현재는 코틀린으로 넘어가 앱개발 중
난 중1인데.ㅜ.ㅜ.ㅜ.ㅜ.ㅜ.ㅜ.ㅜ.ㅜ.ㅜ.ㅜ.ㅜ.ㅜ.ㅜ.ㅜ.ㅜ.ㅜ.ㅜ.ㅜ
자바로 역전하겠습니다.
저도 저번달 돌잔치 했는데요 코딩 정말 쉽네요ㅎㅎ
가격이 부담스러워서 코딩 배우고 싶었지만 못 배우고 있었는데 나도코딩님 덕분에 재밌게 배우고있어요 ㅠㅠ 감사합니다
프로젝트 도입부에 게임 직접 해보는 거 피지컬 ㄷㄷ
77
아니 ㄹㅇ 개잘하긴 하네 ㅋㅋㅋ
누가 대신 코드 짜줘서 그런가 개재밌네요... ㅎㅎㅎㅎ 감사히 잘 볼게요!
와 ... 뒤늦게 이 강의 따라 해 보고 있는데, 챕터 하나 하나 풀어 나가고 결과가 제대로 나올때마다 희열이 느껴지네요 ^^ 댓글이 왜 많이 달렸는지 이해가 갑니다. 감사합니다.
나만 어려운가.. 무슨말은 하는지는 알아듣는것 같아도 막상
안보고 똑같이 해보라면 시작부터 막막하네요 공 액션 나오기 시작할때부터
한계를 느끼네요. 다들 잘 하시는것 보니 대단합니다.
선생님 사랑합니다 강의진짜 잘보고있습니다 나중에 시간되시면 웹코딩도 올려주실수잇나요 이미 나도코딩님한테 중독되서 다른강의를 못보겟네요
따뜻한 댓글 감사합니다 ^^ 파이썬 강의 이후 커리큘럼 구상 시 참고하겠습니다.
53:29 실수는 누구나 합니다. 저도 해요 ㅎㅎㅎ
@@설윤사랑해 ㅇㅇ
이 채널을 이제라도 알아서 다행이다. 감사합니다 8ㅅ8
기본편 공부 끝내고 활용편 시작합니다. 강의가 너무 좋습니다. 활용편 기대됩니다.
절말 감사합니다~~
삶의 활력이 되네요^^
강의 너무 잘 듣고 완성했습니다! 정말 도움되고 흥미로운 강의였어요. 친절하게 잘 알려주시고 단계별로 나눠서 진행해 복잡하지 않게 하나하나 이해할 수 있었습니다. 감사합니다!
말을 엄청 안정적으로 잘하시네요 짧은 시간도 아닌데 ㄷㄷ 앞쪽 설명 들으면서 똥피하기 생각났는데 퀴즈로 나와서 반갑네요 ㅋㅋㅋ
헛 ㅋㅋㅋ 똥피하기를 먼저 떠올리시다니!! 통했네요 ^^ 강의 뒤로 갈수록.. 말을 많이 해서 그런지 목소리가 조금 허스키해집니다 ㅠㅠ 미리 양해 부탁드립니다 ㅋㅋ
저도 해볼게유
linting 이라는 설정이 안 나오면...
(2024년 2월 12일)
제 생각에는 vscode가 업데이트가 되서 사라진것 같습니다
그냥 결론 예기 하면 8:20
부터 이벤트루프 만들어 보세요.
(그냥 코드부터 보고 싶다면 11:08 )
이게 왜 이러냐면 vscode가 업데이트 되서 그 설정이 사라졌지만 나도코딩님의 영상을 보면 linting 어쩌구가 체크 되있고, 체크 해제 해야 하는데, 없어지면서 체크 해제가 기본 값이 된것 같습니다.
그러니까 그 설정을 할 필요가 없어졌다는 소리에요
진짜 대박... 지금 6시간 파이썬 기초 강의 듣는데 이 게임 목표로 꼭 완강할 겁니다 대박...
^^ 꼭 기초 강의 완주하시고 기억이 남아있을때 게임 프로젝트까지 완주 해버리세요 !! 감사합니다.
난 이제다봄
사실 기초편 1시간안봄
현재 55:30 까지 봤습니당 듣기에 너무 편안하고 좋습니다
좋은 영상 감사드립니다 ㅎㅎ
긴 시간동안 수고 많으셨습니다. 친절한 설명 감사합니다.
54:43 텍스트) 책갈피
키 이벤트를 통한 캐릭터 이동 시 방향키를 빠르게 누르면 캐릭터가 아예 멈춰버리는 현상이 생깁니다.
프로젝트 코드 기준으로 아래와 같이 4군데를 수정하면 위 현상을 해결할 수 있습니다.
x 좌표 이동 방향 처리를 왼쪽, 오른쪽으로 나누어서 key down / key up 에서 각각 처리하여 더해주는 방식입니다.
★ 아이디어를 주신 '실로폰'님 감사합니다 ^^
[개선된 코드]
# 수정1 : 기존의 character_to_x 를 왼쪽 방향, 오른쪽 방향 변수 2개로 나눔
character_to_x_LEFT=0
character_to_x_RIGHT=0
...
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 수정2 : 키를 누를 때 LEFT, RIGHT 에 따라 서로 다른 변수의 값 조정
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
character_to_x_LEFT -= character_speed # 바뀐 부분
elif event.key == pygame.K_RIGHT:
character_to_x_RIGHT += character_speed # 바뀐 부분
elif event.key == pygame.K_SPACE:
...
# 수정3 : 키에서 손을 뗄 때 LEFT, RIGHT 를 각각 처리
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT: # 이 부분은 모두 다 바뀜
character_to_x_LEFT = 0
elif event.key == pygame.K_RIGHT:
character_to_x_RIGHT = 0
# 수정4 : 두 변수의 값을 모두 더함
character_x_pos += character_to_x_LEFT + character_to_x_RIGHT
...
자주 좌측에서 우측으로 방향을 (반대 방향도 마찬가지) 바로 이동하는 것이 아닌 잠시 멈췄다가 한번더 키를 누르면 실행되고있습니다.
원래 그런건가요?
@@영혼-o2o 강의 코드에서는 그런데 위 댓글 보충설명의 코드로 하면 개선될거에요! 댓글대로 하셨는데도 그러면 작성하신 코드 모두를 올려주시면 도움드리겠습니다^^
@@nadocoding 감사합니다.
x 위치랑 -x 위치를 두개로 나눈건가요
@@ky_1108 네, x 좌표만 있었는데 x_left 와 x_right 로 둘로 나눈거 맞습니다 ^^
1:02:46 내가 볼려고!!
감사합니다. 참으로 무지 귀한 강의와 자료입니다.
점점 어려워 지기는 하는데 그냥 무작정 따라하고 있어요 좋은 강의 주셔서 감사합니다.
그 와중에 나는 저 사람 게임 잘하는거만 보이지..
수업 진행하실 때 영상이 길면 집중이 떨어져서 가끔 놓지는 부분 있는데, 일일이 각주 달아주셔서 정말 효율적입니다. 진심으로 감사합니다 ㅜ
어디서 어떻게 몇 년이나 노력하며 배우셨길래
이렇게 설명하며 코딩을 자연스레 하시는 거죠..?
초보자 입장으로 너무 감사하고 신기할 따름이예요
나도코딩처럼 되고 싶습니다!! 하트하트
좋은 강의 만들어주셔서 감사해요! 그런데 53:35 너무 귀여우신거 아닙니까?
[책갈피]
1:07:04
좋은 강의 올려주셔서 감사합니다!
배우다 보니까....
컴퓨터 게임들 움직이는거 레알 어떻게 만든거야...
유니티, 또는 다른 프레임 웤을 사용해 더 편리하게 만들죠 퍼이게임으로 만드는 사람은 많이 없는것 같아요 ㅎㅎ
완전 온라인(?) 학원에 다니는것 같음 ㅎㅎㅎ
28:27 책갈피
이런 강의를 볼수있어서 영광입니다
정말 댓글을 안달수 없게 만드시네요^^ 정말 유익한 강의 너무 좋습니다. 항상 감사합니다
18:31 여기서 배경 적용했는데 왜 화면이 잠깐 뜨다가 다시 들어갈까요...?(스크린이 정의 되지 못했다는데요..)
저도 여기서 헤맸는데
이분 강의목록에 '소스코드 비교방법' 영상보시면 해결방법 나옵니다!
54:58 텍스트 할 차례입니다~~
2:20:02...
댓글을 안달래야 안달 수가 없습니다. 너무나도 완벽합니다. 이제 파이썬 책 한바퀴 돌리고 두바퀴째 돌리기 직전에 한번 무작정 따라했는데 뭔가 광명을 찾은 느낌입니다. 전체 큰 틀이 느껴지고 큰 깨달음을 얻어갑니다. 결국 for, if문을 활용해서 이 게임이란걸 만들어내다니....ㄷㄷㄷ 재미가 붙습니다. 감사합니다. 최고(굿)(굿)(굿)
파이썬 game강의도 잘 보았습니다. 알림 설정하고 다른 동영상도 쭉 가겠습니다.
1:07:43 까지 봤다
elapsed_time = (pygame.time.get_ticks() - start_ticks) / 1000
이 부분에서 start_ticks를 따로 정의해서 빼주는 이유가 무엇인가요?
pygame.time.get_ticks() / 1000 을 해준 후에 total에서 빼면 안되는 건가요?
pygame.time.get_ticks() 를 하게 되면 프로그램 시작 시점부터 이 문장이 실행될 때까지의 시간을 알 수 있는데요, 이렇게 설명해볼게요.
import pygame
... 소스코드 ...
start_ticks 정의 -> 프로그램 시작 시점부터 이 때까지 2초 소요 (★)
...소스 코드...
while ...
... 소스 코드...
elapsed_time 계산 -> 프로그램 시작 시점부터 이 때까지 3초 소요 (●)
프로그램을 시작하고부터 ★ 지점까지는 2초가 소요 되었습니다.
프로그램을 시작하고부터 ● 지점까지는 3초가 소요 되었습니다.
그러면 ★ 와 ● 까지는 1초가 소요된 것이죠.
total_time 이 100초이며, 100초부터 99, 98, 이렇게 줄어들어야 하므로 elapsed_time 은 1초, 2초, .. 이렇게 증가해야 합니다.
하지만 pygame.time.get_ticks() 는 프로그램 시작 시점부터 그 문장이 실행될때가지의 시간이라 했으므로, 앞에 ★ 부분까지 소요된 2초를 포함한 전체 시간이 나오겠지요? 그러면 준혁님께서 말씀하신 코드대로 하면 elapsed_time 의 처음 값은 최소한 3초 이상일겁니다. 그러면 total_time 에서 3초를 뺀 97 초가 처음값이 되는 문제가 생길 수 있는거죠.
start_ticks 를 빼면, ● 까지 3초 소요된 시간 중 ★ 까지 2초 소요된 시간을 빼기 때문에 1초가 될 것이고, total_time 에서 1초를 뺀 99초가 될겁니다.
정리하면, 게임 루프 (while 부분) 에 진입하기 전까지의 소스코드가 수행되기 위해 소요되는 시간은 빼기 위해 start_ticks 를 따로 빼준답니다. ^^ 감사합니다.
@@nadocoding 설명이 너무 친절하셔서 바로 이해가 됐습니다^^ 바쁘신 와중에 이렇게 답변을 해주시니 감사합니다ㅠㅠ
@@최준혁-l7i 자 그럼 진짜 이해하셨는지 퀴즈를... ㅋㅋ
@@nadocoding ㅋㅋㅋㅋㅋ혼자 쫌 더 공부해 볼께요....
싫어요 한 사람들은 딱봐도 프로그래밍 강의하면서 돈 버는 사람들인데 무료로 이런거 유튜브로 올리니 배알이 꼴리나 보네
와 몇일에 걸쳐 퀴즈 전반부 후반부 영상 안보고 클리어 한다고 시간이 꽤 걸렸습니다만 영상 놓치지 않고 다 봤습니다~ 감사합니다.
정말 감사합니다 ㅎㅎ 시간날때마다 조금씩 변형해가며 원하는 기능들을 추가해 저만의 게임을 만들어보는 중입니다. 최근에 발견했는데, 정말 재미있게 듣고 있어요!
처음에 pygame 다운로드 할 때
pip install pygame 을 쳐도 다운로드가 되질 않네요...
26:10
“음..이렇게 하면 될려나..?”
가능합니다 파이썬이거든요
기본편 잘 보고 여기로 왔습니다. 훌륭한 강의 감사합니다.
기초 파이썬 끝내고 활용편 넘어왔습니다. ^^ 또 열심히 배워볼게요^^
프로그램 하지마라 선배로써 피흘리며 충고한다 조선에서는 하지마라
기초편을 다보고 활용편을 보기 시작 했습니다. 이렇게 좋은 강좌를 만들어 주셔서 감사합니다.
미친듯이 거의 하루 만에 7시간 때려 붓고 영상대로 다만들고 추가로 나만의 방식으로도 만들어보고 이영상에서 흡수 할 수 있는 정보란 정보는 머리에 다 때려박았네요
줄 신경써서 써야겠네요 ㅋㅋ ㅠㅠ 이번 수업도 즐겁게 잘 들었습니다! 파이썬의 고수가 되기 위해 아직 갈길은 멀지만..언젠간..^^
활용편이 어렵네요ㅡㅡ 좋은 강의 감사합니다 여러번 돌려 보고 공부중입니다
감사합니다... 제 기준 코딩 유투버 중 최고 잘 가르치십니다
처음으로 프로젝트 하나 끝내봅니다.
좋은 강의 해주셔서 감사합니다.
열심히 배우겠습니다.
230102 ~54:42 수강시작
230103 54:42~1:50:42 퀴즈 완료, 프로젝트 이벤트 처리까지 완료(+코드 수정하여 무기 최대 2개 발사 가능하도록 설정)
230104 1:50:42~2:27:38 공 튀기기 및 작은 공으로 쪼개기 구현 완료
230105 2:27:38~ 수강 끝
나코님의 코드를 일부 다르게 작성해서 그런 것인지는 모르겠지만 저는 다른 부분에서 버그가 나오는 것 같네요... 동일한 위치에서 무기 2개를 발사한 경우 무기에 맞지 않은 공이 사라지는 버그가 발견되는 것 같은데 저도 한 번 다시 코드를 검토해야 할 것 같습니다... 역시 코드 작성보다도 코드 리뷰, 에러 체크가 어렵게 느껴지네요.
cmd말고 다른 창에서 프로그램을 띄운다는 것 자체가 감동적이네요 ^^
강의 잘들었습니다. 머릿속에 쏙쏙 들어오네요. 키보드 소리도 듣기 좋네요 사각사각 거리는게 키보드는 어떤 키보드를 쓰시는지 물어봐도 될까요?
저는 영상을 보면서 무엇을 할 것이다~ 를 말해주시면 파이썬으로 구현을 해보고 어떻게 하셨는지 참고를 했습니다... 시간은 영상의 두 배 이상 걸리지만 확실히 배울 수가 있었네요~
완강했어요. 진짜 재밌는 강의였습니다 ~~
문과 출신에 평생 코딩은 나랑 관련 없는 세상이라고만 생각하고 살았는데 나도 코딩님 덕분에 즐겁게 코딩 공부하고 있습니다. 유익하고 알고 쉬운 강의 감사합니다!!
코딩이 뭔지 모르는 사람입니다. 뭔가 멋지네요 ㅎ
39:56 북마크
따라서 이것저것 만들어보니 너무 재밌어요! 감사합니다~~~
💙안녕하세요. 3주에 걸쳐 기본편을 다 듣고 넘어왔습니다. 혹시 이 강의를 듣고 다음 강의를 들어야하나요? 바로 활용편2로 넘어가도 괜찮을까요?
바다 건너 사는데요... 시작할까말까 고민만 1년 하다가... 까먹고 있다가 우연한 기회에 다시 접하게 되서 정말 기쁩니다. 퇴근후에 30분 정도라도 강의 듣고 있으면 그래도 머리가 약간은 돌아가는 느낌이 드네요.ㅋㅋㅋ 소걸음으로 시작한지 그래도 몇주 되어갑니다. 잘듣고 잘보고 잘흉내 내서 나도한번 코딩을 제대로 해보는 시간이 오기를 간절히 기다려봅니다.. 직장에서도 잘 써먹어서 좋은 프로모션이 있으면 더 좋구요..늘 감사 합니다.
언젠가 머신러닝하고 데이터 분석도 부탁드려요~! 나도코딩님이 만들어주시면 공부하는데 많은 도움이 될것 같아요! 항상 감사합니다.
앱 개발 공부 중인 취준생인데, 스타트업 드라마를 보다가 파이썬을 배워보고 싶어서 영상을 찾다가 나도코딩님을 알게되서 정말 잘보고 있습니다. 감사합니다!
38:40초 질문입니다. 항상 강의 잘 보고 있습니다. 감사합니다.
키보드 이벤트에서 경계값 처리하는 부분 질문인데요. 강의에서는 while문 바깥에
# 가로 경계값 처리
if character_x_pos < 0:
character_x_pos = 0
elif character_x_pos > screen_width - character_width:
character_x_pos = screen_width - character_width
이런식으로 처리를 해주셨는데요.
저는 왼쪽방향 경계처리만 생각해 보자면
if event.type == pygame.KEYDOWN: # 키보드를 눌렀을 때(아래키 입력 아님)
if event.key == pygame.K_LEFT: # 캐릭터를 왼쪽으로 이동
if character_x_pos >= 5:
# 왼쪽 경계에 닿을때 까지만 빼줄수 있다.
to_x -= 5
else:
# 아니라면 다시 반복문 처음으로 가서 이벤트를 기다리자.
continue
이런식으로 while문 안에서 x_pos 위치가 5보다 크거나 같을때만(X 좌표 왼쪽 경계위치가 0이니까 그 밑의 값으로는 가지 못하게) 빼주고 아닌경우에는 continue해서 돌려 보내는 방식으로 구현할 수 있지않을까 생각해봤는데요.(continue대신에 'character_x_pos = 0'을 넣어서 멈추게 하려 했는데도 안되더라고요 ㅠ) 제 방법이 조건문이 더 겹겹이 있어서 시간적인 면에서 비효율적이긴 해도 논리상 구현은 돼야 할 것같은데, 이대로 실행을 하면 캐릭터가 계속 왼쪽 경계밖으로 벗어나네요 ㅠ 제 코드에 어떤 논리상 오류가 있는건가요??
열정적인 강의 정말 감사합니다!
미션을 수행하고 나면 2단계를 만들어 보고 싶습니다
어디서 어떤 작업을 더 해야되는지 부탁드립니다.
나도코딩 최고에요. 감사합니다!!
와~ 정말 잘 배웠습니다. 파이썬을 전혀 몰랐다가 기초부터 게임까지 배우고, 뭔가 만들 수 있어서 좋네요. 강의 보면서 만든 게임에 약간 오류가 있어서 조금 아쉬운데, 제가 만든 건 왜 공 하나만 움직이는지 모르겠어요. 소스 코드 비교하는 방법을 알려 주는 동영상 강의 보면서, 소스 코드를 비교해 봤는데, 다른 게 없었거든요. 그래도 완벽하지는 않지만, 게임을 만들어서 재밌게 즐길 수 있어서, 뿌듯합니다. 잘 가르쳐 주셔서 고맙습니다^^
체크포인트
12/2
39:54 FPS
12/3
1:25:17 배경과 캐릭터
12/4
1:50:43 공 만들기
12/9
완강
감사합니다
책갈피
40:00
잘 보고 갑니다~~ 나중에 또 올게요!!
코딩 잘 하시는 분들 정말 대단하죠. 잘 봤습니다.
안녕하세요
이웃합니다
좋은 강의 영상 감사합니다
선생님 팁하나 알려드릴까요??
같은단어 여러개를 한번에 봐꾸실 때 단축키
Ctrl + Shift + L
를 사용하시면 편리합니다.
저는 지금 막 코딩을 시작하려는 사람인데요 파이썬 기본편을 본 뒤에 이것을 해보려 하는데
해보니까 쉬워서 파이썬을 계속 할거입니다! 다음에도 더 재미있는 코딩영상 많이 올려주세요!!!!!!