디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[🔎질문] 여기저기 돌아다니다 결국 파이썬갤 온 파이썬몇달차 늒네입니다 문제가있어요

ㅇㅇ(122.153) 2023.05.27 19:45:34
조회 172 추천 0 댓글 1
														

pygame으로 게임좀 만들어 보려는데(raycasting으로 3D로 만들어 볼꺼)

잘 되다가 for 넣으니까 안되더라구요...

문제가 되는 부분 통째로 긁어 와 봤습니다


#창 유지
running = True
while running:
#sp1 그리기
    pygame.draw.rect(scr, (255, 255, 0), (sp1.x_POS, sp1.y_POS, 20, 20), 0)

    #배경(검정)
    scr.fill(Black)

    #벽 그리기
    for wallname in walltype:
        pygame.draw.rect(scr, White, [wallname[2][0], wallname[2][1], wallname[3][0] - wallname[2][0], wallname[3][1] - wallname[2][1]], wallname[4])
   
    print("ok")
   
    #FPS
    dt = clock.tick(FPS)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
                running = False

        #키보드 이벤트
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                pressing_L = True
            elif event.key == pygame.K_RIGHT:
                pressing_R = True
            elif event.key == pygame.K_UP:
                sp1.movingaction += 1
            elif event.key == pygame.K_DOWN:
                sp1.movingaction += -1
            if event.key == pygame.K_p:
                try:
                    inFPS = int(input("FPS를 입력하세요"))
                    if inFPS > 0:
                        FPS = inFPS
                        print("FPS가", FPS, "(으)로 변경되었습니다.")
                    else:
                        print("FPS값은 자연수만 가능합니다.")
                except:
                    print("FPS값은 자연수만 가능합니다.")
            if event.key == pygame.K_ESCAPE:
                esc = True

        if event.type == pygame.KEYUP:
            if event.key == pygame.K_LEFT:
                if pressing_R == True:
                    sp1.rotating -= -0.25 * dt
                else:
                    sp1.rotating = 0
                pressing_L = False
            elif event.key == pygame.K_RIGHT:
                    if pressing_L == True:
                        sp1.rotating -= 0.25 * dt
                    else:
                        sp1.rotating = 0
                    pressing_R = False
            elif event.key == pygame.K_UP:
                sp1.movingaction -= 1
            elif event.key == pygame.K_DOWN:
                sp1.movingaction -= -1
            if event.key == pygame.K_ESCAPE:
                escing = 0
                esc = False
    if pressing_L or pressing_R == True:
        if pressing_L == True:
            if pressing_R == False:
                sp1.rotating = -0.25 * dt
            else:
                sp1.rotating = 0
        if pressing_R == True:
            if pressing_L == False:
                sp1.rotating = 0.25 * dt
            else:
                sp1.rotating = 0

    if esc == True:
        escing += 1
        if escing == 250:
            running = False

    if sp1.movingaction == 1:
        sp1.to_x_U = move(sp1.rotate, "U", 1, 0.1)
        sp1.to_y_U = move(sp1.rotate, "U", 2, 0.1)

    elif sp1.movingaction == -1:
        sp1.to_x_D = move(sp1.rotate, "D", 1, 0.1)
        sp1.to_y_D = move(sp1.rotate, "D", 2, 0.1)
    elif sp1.movingaction == 0:
        sp1.to_x_U = 0
        sp1.to_y_U = 0
        sp1.to_x_D = 0
        sp1.to_y_D = 0
    sp1.rotate += sp1.rotating
    sp1.x_POS += (sp1.to_x_U +  sp1.to_x_D) * dt
    sp1.y_POS += (sp1.to_y_U + sp1.to_y_D) * dt

#--경계선(화면 크기 안에서만 움직이게)
    if sp1.x_POS < 20:
        sp1.x_POS = 20
    elif sp1.x_POS > scr_wid - sp1.wid - 20:
        sp1.x_POS = scr_wid - sp1.wid - 20
    if sp1.y_POS < 20:
        sp1.y_POS = 20
    elif sp1.y_POS > scr_hgt - sp1.hgt - 20:
        sp1.y_POS = scr_hgt - sp1.hgt - 20
#장애물 충돌처리
    for walltype_num in walltype:
        if sp1.y_POS + 17 >  walltype_num[2][1] and sp1.y_POS + 3 < walltype_num[3][1]:
            sp1.in_wall_y = True
        else:
            sp1.in_wall_y = False
        if sp1.x_POS + 17 > walltype_num[2][0] and sp1.x_POS + 3 < walltype_num[3][0]:
            sp1.in_wall_x = True
        else:
            sp1.in_wall_x = False
        #-x좌표 충돌 처리
        if  sp1.x_POS + 20 > walltype_num[2][0] and sp1.x_POS + 23 < walltype_num[3][0] and sp1.in_wall_y == True:
            sp1.x_POS = walltype_num[2][0] -20
        if  sp1.x_POS < walltype_num[3][0] and sp1.x_POS -3 > walltype_num[3][0] and sp1.in_wall_y == True:
            sp1.x_POS = walltype_num[3][0]
        if  sp1.y_POS + 20 > walltype_num[2][1] and sp1.y_POS + 23 < walltype_num[3][1] and sp1.in_wall_x == True:
            sp1.y_POS = walltype_num[2][1] -20
        if  sp1.y_POS < walltype_num[3][1] and sp1.y_POS +3 > walltype_num[2][1] and sp1.in_wall_x == True:
            sp1.y_POS = walltype_num[3][1]

#충돌 처리
    sp1.rect = sp1.img.get_rect() #캐릭터 크기(사각형)
    sp1.rect.left = sp1.x_POS
    sp1.rect.top = sp1.y_POS

#스프라이트 표시
    #플레이어
    sp1.POS = (sp1.x_POS, sp1.y_POS)
    sp1.img = pygame.transform.rotozoom(sp1_img, sp1.rotate * -1, 1)
    sp1.rePOS = (sp1.POS[0] + (sp1.wid / 2), sp1.POS[1] + (sp1.hgt / 2))
    sp1.reccenter = sp1.img.get_rect(center = sp1.rePOS)
    scr.blit(sp1.img, sp1.reccenter)
    if esc == True:
        scr.blit(escaping, (20, 20))

#마우스 위치
    mouse_POS = pygame.mouse.get_pos()

#화면 새로고침
    pygame.display.update()

#?
    pygame.display.flip()

#위에 끝나면 내려와서 종료
pygame.quit()

저기에 #장애물 충돌처리에서 문제가 생기는데

#벽 생성
outline  = wall("outline", "Null", (0, 0), (scr_wid, scr_hgt), 20)
wall1 = wall("wall1", "Null", (80, 80), (120, 120), 0) #0은 꽉 채우기


#벽 생성 클래스
class wall:
    def __init__(self, Name, wallimg, POS1, POS2, thick):
        self.Name = Name
        self.img = wallimg
        self.POS1 = POS1
        self.POS2 = POS2
        self.thick = thick
        walltype.append([self.Name, self.img, self.POS1, self.POS2, self.thick])
        self.order = walltype.index([self.Name, self.img, self.POS1, self.POS2, self.thick])
        walltype[self.order] = [self.Name, self.img, self.POS1, self.POS2, self.thick, self.order]

이런식으로 그 위에 써놨습니다


오류 화면은



viewimage.php?id=3da4c42eeadc&no=24b0d769e1d32ca73dea80fa1bd8233c00ee9550323bf6f11a87144efe9d9b15ec01284082896d62ee2c018ed82a5aaf91f22c60e6f2216d6a6924a2d17c49b46c198f


이런식으로됩니다

플레이어 히트박스가 노란색 네모로 그려져야 하는데 처음에만 한번 띡 나타났다 바로 사라져요

저기 안에서만 문제가 생기고 저거말고 외부 간섭오는 코드는 없을겁니다
for문쓰면 안되는건가요;;
도와주세요

추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
- 설문 영포티룩도 멋지게 소화할 것 같은 40대 스타는? 운영자 25/10/27 - -
- AD 저녁 뭐먹지? 오늘의 메뉴 추천! 운영자 25/10/31 - -
635 공지 가독성 좋은 f-string 을 쓰자 [9] 주넹갤로그로 이동합니다. 21.10.02 3606 10
1056 공지 (공지 요청)[질문지 양식] 복붙해 쓰시오. [4] 203.121.116.11갤로그로 이동합니다. 21.12.14 2522 5
634 공지 질문 올릴때 [2] 주넹갤로그로 이동합니다. 21.10.02 2675 5
178 공지 파이썬 공부할 때 참고할만한 것들 [7] 주넹갤로그로 이동합니다. 21.04.21 8303 7
1 공지 파이썬 미니 갤러리입니다. [9] 주넹갤로그로 이동합니다. 20.12.14 3424 7
2627 일반 진짜 코딩 과제 감을 못잡겠음 [1] ㅇㅇ(118.235) 10.31 20 0
2626 일반 ㄴㄷㅋㄷ 이거 5년전거 아님? 5년 전거로 공부해도되는거야? ㅇㅇ(118.37) 10.25 19 0
2625 일반 맥OS로 공부하는거 별로일까요? [1] ㅇㅇ(118.37) 10.25 29 0
2624 일반 입문 파이썬 공부하려는데요 인강좀 추천해주세요! ㅇㅇ(118.37) 10.25 40 0
2623 일반 코딩 1도 모르는데 [5] ㅇㅇ(119.199) 10.13 80 0
2622 🔎질문 셀레니움 값이 입력이 안되는 현상이 있습니다 ㅇㅇ(39.124) 10.09 47 0
2621 일반 혼자공부하는파이썬 점프투파이썬 [1] ㅇㅇ(211.246) 09.18 149 0
2620 일반 님들이 싫어하는거 사용자 이름 없음(182.228) 08.05 87 0
2619 🔎질문 고등학생인데 질문 있어요. [3] ㅇㅇ(118.221) 07.30 160 0
2618 🔎질문 셀레니움으로 이미지 직접 다운로드 하는 방법 [1] ㅇㅇ(39.7) 07.14 95 0
2617 일반 ㄴㄷㅋㄷ 6시간짜리 5년전꺼라 버전이 달라서 어려움 [1] 빨간망토갤로그로 이동합니다. 05.30 179 0
2616 일반 파이썬 아다 떼려면 책 필요없고 ㄴㄷㅋㄷ 보면됨? [2] 빨간망토갤로그로 이동합니다. 05.23 326 0
2615 일반 7월부터 C언어 파이썬 동시에 해야하는데 [3] ㅇㅇ(118.235) 05.19 168 0
2614 🔎질문 라즈베리파이 프로그램 관련 질문 [2] ㅇㅇ(59.25) 05.04 128 0
2613 일반 에라토스테네스-신촌우왕 체식 신촌우왕갤로그로 이동합니다. 04.22 360 0
2612 일반 카메라 영상을 파이썬 flet으로 실시간 출력 작성 해보신분 [2] ㅇㅇ(218.150) 04.03 194 0
2611 🔎질문 혼자 공부하기 파이썬 책 추천좀 해주세요 [2] 토리짜갤로그로 이동합니다. 03.31 324 0
2610 일반 루트 k의 근사값 [1] 신촌우왕갤로그로 이동합니다. 03.28 182 0
2609 일반 루트 2의 근사값 [1] 신촌우왕갤로그로 이동합니다. 03.28 644 0
2608 일반 짝수 완전수 신촌우왕갤로그로 이동합니다. 03.28 112 0
2606 일반 유클리드 호제법 신촌우왕갤로그로 이동합니다. 03.22 147 0
2605 일반 비전공자 생초보 입문자 점프 투 파이썬으로 하면 되나여? [1] ㅇㅇ(223.39) 03.18 488 0
2604 일반 Int로 변환했는데 이구 왜이럴까요 [3] ㅇㅇ(210.126) 03.15 227 0
2603 일반 이거 어떻게 쳐요,,? [2] ㅇㅇ(221.154) 03.13 228 1
2602 🔎질문 고수님들 대학 파이썬 수업듣는데 질문 있어서 왔습니다 ㅠㅠ [2] ㅇㅇ(39.124) 03.11 253 0
2601 일반 파이썬으로 데이터 변형 하고 있는데 [3] ㅇㅇ(221.152) 03.08 195 1
2600 일반 게임에서 마우스 좌표는 다 잘 찍히는데 키보드가 안됨 ㅇㅇ(59.20) 03.04 154 0
2598 🔎질문 누가 좀 도와줘... [2] ㅇㅇ(115.138) 02.07 256 0
2596 🔎질문 점프투파이썬 굳이 책 사야 하나요? [2] 애개뤼를쮀에에엑갤로그로 이동합니다. 24.12.23 694 0
2595 일반 파이썬 윈도우앱에 광고달아보신분..? ㅇㅇ(222.236) 24.12.18 217 0
2594 일반 파이썬 모바일 추천 좀 ㅇㅇ(110.11) 24.12.08 243 0
2593 일반 r스튜디오 도와주십쇼 형님들.. [2] ㅇㅇ(121.154) 24.12.05 294 0
2591 일반 조졌다 [1] delegen(121.181) 24.11.18 272 0
2590 🔎질문 대학 입학전에 파이썬 공부해볼라고 하는데 [2] ㅇㅇ(110.10) 24.11.17 505 0
2589 일반 파이썬 이래 배우면 되나요?? [1] ㅇㅇ(119.195) 24.11.12 462 0
2588 🔎질문 가상환경 라이브러리 글로벌 문제 ㅇㅇ(123.214) 24.11.05 225 0
2587 일반 도와주세요 고수님들 [2] ㅇㅇ(118.217) 24.11.03 350 0
2586 일반 챗GPT 개같네 [2] 초보 파갤러(119.203) 24.10.27 492 0
2585 일반 파이썬 뭐 부터 건드려야함? 정처기 보유 [1] ㅇㅇ(118.216) 24.10.24 355 0
2582 일반 점프투파이썬이랑 나도코딩 입문강의중에 뭐 봐야함? [2] ㅇㅇ(118.235) 24.10.09 550 0
2581 일반 아이패드로 파이썬 [1] 쪼물갤로그로 이동합니다. 24.10.05 294 0
2580 일반 욜로yolo 객체학습 이후에 질문이 있습니다. [1] ㅇㅇ(117.52) 24.10.05 301 0
2579 일반 파이썬 초보 책추천 [20] 쪼물갤로그로 이동합니다. 24.10.05 5412 0
2577 일반 파린이 도와주세요 ㅠㅠ [2] ㅇㅇ(106.102) 24.10.03 285 0
2576 일반 ai로 댓글 다는거 [2] ㅇㅇ(220.95) 24.09.30 295 0
2575 일반 형님들 파이선 입문을 어떻게해야 좋을까요? [4] ㅇㅇ(106.101) 24.09.26 381 0
2574 일반 질문)본인:쌩초보, 나도코딩 따라 중, 목표는 객체인식, 적용은 시골축사 [12] ㅇㅇ(211.117) 24.09.25 477 0
2572 일반 fastapi 만든사람 콜롬비아 출신 고졸임 [1] ㅇㅇ갤로그로 이동합니다. 24.09.15 333 1
2570 🔎질문 도와주세요 파이참 실행이 아예 안되요 ㅠㅠ... [2] ㅇㅇ(211.252) 24.09.02 297 0
2569 일반 pygbag 아시는 분 ㅇㅇ(183.109) 24.08.20 223 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2