[파이썬 기초 강의] 46강. 핑퐁 게임 만들기 | 터틀 그래픽 모듈
HTML-код
- Опубликовано: 24 сен 2024
- 이번 시간에는 파이썬의 터틀 그래픽 모듈로 핑퐁 게임을 만들어 볼 거예요.
터틀 그래픽 모듈로 간단한 게임을 만들면서, 그동안 배웠던, 조건/반복/변수/함수 등의 기본 개념들을 정리해 보세요~
총 20가지 프로젝트를 통해 파이썬의 기초를 다져 나갈 수 있는 파이썬 터틀 그래픽 강좌 ##
[터틀 프로젝트 1편]
[티쳐블] codethem.co.kr...
[인프런] 인프런 링크는 댓글을 참고해 주세요. 여기서는 링크 오류가 발생하네요.
기본 예제 2개를 포함하여 총 12가지 프로젝트 만들기
파이썬 개념 : 변수, 리스트, 딕셔너리, 함수를 포함한 파이썬 기본 개념
예시 : 국가별 수도 퀴즈 게임, 숨은 터틀 찾기, 축구 게임, 점프 게임, 청기 백기 게임 등
[터틀 프로젝트 2편]
[티쳐블] codethem.co.kr...
10가지 프로젝트 만들기
파이썬 개념 : 람다, 파일 읽고/쓰기, 클래스, 모듈 등의 개념이 추가됩니다.
예시 : 터틀 피아노, 타로 카드 점, 맞춤법 폭탄 게임, 미로 탈출, 발사 게임 등
이제, 전공이나 분야에 상관없이 누구나 코딩을 배워야하는 시기가 왔습니다. 코딩 너무 어렵게만 느끼지 마시고, 조금씩 하나하나씩 만들어 나가보세요~
그러면 어느새 스스로 무언가를 만들고 있는 자신을 발견하게 되실 거예요.
코드덤은 피지컬 컴퓨팅, 프로그래밍 등을 통해, 사물인터넷, 로봇, 가상현실, 게임, 애니메이션 등 다양한 예제와 활용법을 소개하고, 초급 강좌부터 응용, 활용까지 함께 다양한 아이디어를 공유하는 채널입니다.
코딩은 배움을 우리 생활 속으로 녹여낼 수 있는 훌륭한 도구입니다. 코딩교육을 통해 배움과 실생활과의 경계가 허물어지고, 우리의 아이디어, 우리의 꿈이 현실에 조금 더 가까워질 수 있기를 바랍니다.
#코드덤파이썬
다른 에디터를 사용하시는 분들은, 코드 맨 마지막에 t.done()을 추가해 주셔야 터틀 그래픽 창이 바로 닫히지 않습니다~총 20가지 프로젝트를 통해 파이썬의 기초를 다져 나갈 수 있는 파이썬 터틀 그래픽 강좌를 만나보세요! 숨은 터틀 찾기, 축구 게임, 수도 맞히기 퀴즈, 청기 백기 게임, 타로 운세 보기, 맞춤법 폭탄 게임, 미로 탈출 게임, 똥 피하기 게임 등 총 20가지 프로젝트를 만들어 나가는 과정입니다. [티처블 패키지] codethem.co.kr/p/turtle_package [인프런 패키지] www.inflearn.com/roadmaps/576 [유튜브 멤버십] : 구독버튼 옆의 "가입"버튼을 클릭해 주세요~ [티처블 1편] codethem.co.kr/p/turtle1 [인프런 1편] www.inflearn.com/course/파이썬-터틀-1?inst=03d45d6e [티처블 2편] codethem.co.kr/p/turtle2 [인프런 2편] www.inflearn.com/course/파이썬-터틀-2?inst=6c8945fe
추가해도 안되는데 어떻게 하나여…
@@박제민-p8c 마지막에 t.mianloop() 넣으셔야해용
진짜 설명도 잘해주시고 저의 은인이십니다 감사합니다 !!
고맙습니다
감사합니다~^^
공이 땅에 닿으면 화면이 꺼져거립니다
혹시 다른 에디터를 사용하고 계신다면, 코드 맨 마지막 줄에 t.done()을 추가하셔야 합니다~
if player.distance(ball) < 50 and -260 < ball.ycor() < -245:
ball_yspeed *= -1
t.done()
이 부분에서 공이 플레이어 부분에 닿아서 튕기지가 않은데 어떻게 하나요? 버추얼 스튜디오를 사용 중입니다.
왼쪽버튼 오른쪽 버튼으로 막대가 움직이게 하셨는데 딱딱 끊어지게 막대가 움직이다 보니 공을 계속 놓쳐서 게임이 빨리 종료 되어 버리는데 혹시 조금 부드럽게 움직이게 할수 있을까요~~?
random 모듈을 왜 import 시켰을까요? random.함수명 으로 실행되는 코드가 없던데요.. 답변 해 주심 감사하겠습니다~
처음 공이 떨어지는 각도를 랜덤 각도로 적용할 생각이었기에 넣었지만, 입문자용이기에 좀 더 심플하게 가기 위해, 영상 촬영 중간 방향을 전환하면서 사용하지 않은 거예요~ 사용하지 않은 모듈이 있어 오히려 혼란스러웠을 수 있었겠네요^^ 한번 랜덤 각도를 적용시켜 보세요~ 2022년의 마지막 주, 멋지게 마무리하시기 바랍니다!
질문이 있습니다.
오류가 발견되었다는 소리는 없는데 얘가 실행을 시키면 떴다가 1초만에 사라져버립니다.
그리고 그 사라지기 전에 눈을 부릅뜨고 화면을 보면 공이 없네요ㅠㅠ
초보자라서 설명 들으며 거의 베끼는 수준이었는데...
파이썬 IDLE가 아닌 다른 에디터를 사용하시는 분들은, 코드 맨 마지막에 t.done()을 추가해 주셔야 터틀 그래픽 창이 바로 닫히지 않습니다~
키보드 왼쪽 오른쪽 누르는거 상관없이 볼의 속도는 일정하게는 못하나요?
부탁인데 구글 드라이브에 py 파일 넣어서 공유해주실수 있나요?
죄송합니다만, 파일은 제공해 드리지 않습니다. 한 줄씩 코드를 직접 입력해 보고, 발생하는 오류도 하나씩 수정해 나가는 과정이 코딩 학습에서 정말 중요합니다. 그러니, 중간에 오류가 발생하더라도, 고민하고 수정하며 한 줄씩 완성해 나가세요! 이 과정을 통해 더 크게 도약하실 수 있으실 거예요!
그 실행이 잘 되긴 하는데 스틱 움직일 때 공이 느려져요;; 아이들 쓰고 있는데
파이썬에 이런게 있는지 꿈에도 몰랐습니다.
근데 아래에 플레이어 바가 매끄럽게 움직이게 하는 방법은 없을까요?
어제 분명히 답글을 달았는데, 답글이 사라졌네요^^ 인터넷 연결이 불안정했었던 것 같아요. t.tracer(0)로 터틀 그래픽의 기본 애니메이션 기능을 끄고 원하는 시점에 t.update()로 저희가 화면을 업데이틀 할 수 있습니다. 이 경우 컴퓨터 처리 속도가 워낙 빠르기 때문에, time모듈을 불러와서 시간 지연을 주어야 합니다. 47강 snake 게임에서 이 방법에 대해 소개합니다. 47강을 참고 하시면 도움이 될 듯 합니다.
재시작 버튼과 종료 버튼을 만드는 방법이 있을까요?
강의 잘 보았습니다..감사합니다! 비주얼스튜디오코드를 사용해보니 게임창이 잠깐 생기다가 없어지는데 어떠하면 좋을까요?
파이썬 IDLE가 아닌 다른 에디터를 사용하시는 분들은, 코드 맨 마지막에 t.done()을 추가해 주셔야 터틀 그래픽 창이 바로 닫히지 않습니다~ 좋은 주말 되세요^^
공을 이미지로 바꾸는 법은 없나요? 다른 사진을 넣고싶은데 잘 안되네요..
40강에, 이미지 업로드 방법이 소개되어 있습니다~ (ruclips.net/video/OK0NGEP75S8/видео.html) 이 내용 참고하시면 어렵지 않게 넣으실 수 있을 거예요. 단, 터틀 그래픽에서는 이미지 회전 기능을 제공하지 않기 때문에, 공이 방향을 바꾸는 부분은 구현하지 못하니, 이 부분은 참고해서 만들어 나가시면 됩니다~
@@코드덤 #ball 부분에서 어디에 추가를 해야하는 건가요? ㅠㅠ 똑같이 해도 파일을 찾을 수 없다고 하네요
제가 잘 하고 있다가 갑자기 키보드설정하는데 있어서 문제가 생겨서요 ㅜㅜ
t.listen()
>>> t.onkeypress(right, "Right")
Traceback (most recent call last):
File "", line 1, in
t.onkeypress(right, "Right")
NameError: name 'right' is not defined
이렇게 빨간줄이 그어졌는데 영상이랑 똑같이 했는데 뭐가 문제일까요 ㅜㅜㅜ 알려주심 감사하곘습니다.
right이라는 함수명에 오타가 있거나, 함수 위치가 잘못되었을 수 있을 듯 합니다. 3:24 구간의 함수를 만드는 위치와 함수명을 다시 한번 더 체크해 보세요~
묘듈설치어떻게해요
안녕하세요 우연히 코딩 공부하려다 이채널을 찾게 되었구 상세히 알려주셔서 너무 감사해요.
고3에 들어서 코딩 공부를 시작하다보니 아직 어리숙한 부분이 많았었지만 이런강의를 들으며 큰도움이 되고있어요~
실례가 되겠지만 하나만 질문 드려볼게요
왜 플레이어를 t.Turtle()로 지정하나요? 이게 무슨의미로서 이용이 가능한가요?
고3이면, 여러 일정으로 바쁠텐데, 이렇게 다양한 방면으로 공부하는 모습이 멋지네요! Turtle()은 객체를 생성하기 위한 코드입니다. 혹시 블록코딩을 접해 보셨다면, 오브젝트 또는 스프라이트라는 용어로 접해보셨을 듯 합니다. 아주 쉽게 생각해서 캐릭터를 생성한다고 생각하시면 됩니다. 터틀 그래픽 모듈에서는 Turtle()로 터틀 오브젝트를 하나 생성을 하는 거예요. 이렇게 생성된 오브젝트를 동그라미 모양으로 바꿔서, 공으로 사용하고, Turtle()로 또 다른 오브젝트를 만들어 사각형 모양으로 막대를 만들어서, 막대로 사용하는 거예요. 44강의 터틀 레이스 게임을 보시면, 총 7마리의 터틀 선수가 함께 경주를 하는데요. for문을 사용해서, 각 터틀 선수를 Turtle()로 생성해 준 거예요.
중간에 다른 함수를 입력하려고 했는데 입력이 안 돼요ㅠㅠ 어떻게 해결하나요?
혹시 터틀로 중력을 넣을수 잏을까요? 제발여ㅠㅠ
while문 내에서 터틀의 y좌표값에 변화를 주면 됩니다. 점점 가속도 붙어 떨어질수 있도록 변수를 사용해서 y좌표값 변화량을 점점 키워주시면 되세요~
감사합니다! 다른영상도 참고하겠습니다. 구독, 좋아요 누르고 갑니닷!
혹시 위에 생명이 계속 :
안녕하세요! 질문이 있습니다! 공이 왼쪽이나 오른쪽 벽에 닿았을때 공의 개수를 늘리는 것도 추가하고 싶은데 어떻게 하면 될까요??
벽에 닿았을 때, 공 객체를 동일한 방식으로 추가로 생성해 주시면 되세요~
테이블 사이즈를 700,800으로 키워서 제작하고 있는데 distance 부분에서 계속 막히네요...영상에서는 -260
공을 튕기는 막대의 y좌표값 기준으로 설정하시면 됩니다. 위의 영상에서는 player로 초기에 goto로 (0, -270)에 위치시켰습니다. 막대의 y좌표가 -270이기때문에, 막대 표면에서 튕기는 효과를 만들기 위해, -270보다 조금 더 위쪽에서 튕기도록 구간을 설정한 거예요.
game_on 쓰기 전까지는 런을 누르면 화면이 떳다가 사라지고 그랬는데 공을 넣으니까 안 사라지고 계속 나오네요... 이건 왜 그런것인지 알 수 있을까요? 런으로 보여주고 혼자 꺼져버리는 현상은 어떻게 해야 하나요ㅠㅠ
다른 에디터를 사용하시는 분들은, 코드 맨 마지막에 t.done()을 추가해 주셔야 터틀 그래픽 창이 닫히지 않습니다~^^
1:28초 쯤에 실행하는거 무슨 키 누르면 되나요?
어떤 에디터를 사용하시는지에 따라 다릅니다. 만약 파이썬 IDLE를 사용하고 계신다면 F5를 눌러 실행시킬 수 있어요.
player가 움직일 때 코드덤님도 그렇고 공이 느려지는데 왜 그런가요? 그리고 어떻게 고칠 수 있나요?
터틀 그래픽 모듈은 입문교육용으로 한계가 있습니다~ 제대로 된 게임을 만들고 싶다면 pygame에 도전해 보세요! ^^
@@코드덤 감사합니다!
요즘 입문을 어떻게 해야하나 했는데
코드덤님 영상이 너무 재미있고 이해가 잘되서
너무 즐겁게 배우고 있어요!
감사합니다!
t.write(f"life : {life}, False, "center"", ("", 20)) 에서 빨간색 줄이 그어지는데 무엇이 잘못되었는지 아시나요?
center에서 뒷부분 "" 에서따옴표 하나 빼셔야 될것같은데요
따옴표 쓰실 때
" ' ' "
' " " '
이렇게 서로 다른 걸 쓰셔야해요
" " " "
' ' ' '
같은 것끼리 안에 쓰면 에러나요
Shape라는 함수가 없다는데요..?
shape은 소문자로 적어주셔야 합니다. 파이썬에서는 대소문자 구분이 매우 중요합니다.
import turtle as t
distance 함수와 write 함수를 좀 더 자세히 알 수 있을까요??
write 함수는 31강 두뇌 훈련게임에서 자세히 소개하고 있으니, 해당 강좌를 참고해 주세요. (ruclips.net/video/e0iBjOMbzQg/видео.html ) distance 또한 42강부터 자주 사용되고 있으니, 예제를 통해 사용되는 방법을 접해 보시면 이해가 쉽게 되실거예요.