inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬 무료 강의 (활용편1) - 추억의 오락실 게임 만들기 (3시간)

enumerate 부분에서 이해가 힘든 코드가 있습니다

해결된 질문

222

양유진

작성한 질문수 3

0

안녕하세요. 공튀기기 강의 부분 코드입니다.

코드에서 for ball_idx, ball_val in enumerate(balls):

        ball_pos_x = ball_val["pos_x"]
        ball_pos_y = ball_val["pos_y"]

        ball_img_idx = ball_val["img_idx"]라고 하면

balls.append({
    "pos_x" : 50# 공의 x좌표
    "pos_y" : 50# 공의 y좌표
    "img_idx" : 0# 공의 이미지 인덱스
    "to_x" : 3# x축 이동방향 -3이면 왼쪽, +3 이면 오른쪽
    "to_y" : -6# y축 이동방향
    "init_spd_y" : ball_speed_y[0]# y 최초 속도 
})

를 했으니깐 저 대괄호 {} 안에 있는 자체( 첫번째 공에 대한 정보)가 ball[0]이 되는 것이 맞나요? 그렇다면 ball_val["pos_x"] 가 무슨 값이 되는지 궁금합니다.  50 이 되는건가요..?? print로 찍어보니 점점 늘어나는 수던데 .. 0,1,2 등의 인덱스 숫자값이 아닌 "pos_x" 가 들어가있어서 헷갈리네요 ㅠㅠ 

python GUI pygame

답변 2

1

나도코딩

balls 는 각각의 딕셔너리 자료형을 여러개 가지는 리스트입니다. 각 항목은 딕셔너리라서 "pos_x" 와 같이 key 값으로 value 를 확인하구요. balls.append 를 하므로 값을 추가하게 되면 그 리스트에서는 마지막 값으로 추가가 되기때문에 질문 내용처럼 balls[0] 이라는 보장은 못합니다. 값이 처음으로 들어가는 거라면 0 이 맞겠지요. enumerate 를 통해 balls 리스트에 있는 값들을 하나씩 가져와서 for 문을 수행하므로, 각각의 공이 현재 가지고 있는 pos_x, pos_y 의 값이 저장되는 것이랍니다 ^^

0

양유진

감사합니다!! 이해했습니다^^

pygame 설치오류

0

123

1

pip install pygame 이 실패합니다

0

205

1

pip install pygame 이 안되요

0

887

1

(4:00) linting enabled 항목이 보이지 않습니다

0

155

1

마지막 프로젝트 그림 파일들을 올려주실 수는 없을까요?

0

202

1

import pygame에서 계속 오류가 발생해요

0

3580

2

무기 Y포지션 speed 감소

0

294

1

pygame 공부

0

504

0

마지막 부분 스프라이트가 맨 왼쪽에 위치해있습니다

0

264

1

공 쪼개기 문제

0

305

0

실행시 글자가 깨집니다.

0

309

1

키보드 이벤트 오류

0

569

1

스크린의 높이를 680으로 설정했을 때 오류?

0

294

1

pygame.time.get_ticks() 질문있습니다.

0

534

0

캐릭터의 이동

0

328

0

적(똥)과 케릭터가 충돌했을 때 게임 오버가 뜨게 만들려고..

0

298

1

시작을 하기에 앞서...

0

388

0

이미지 배경을 투명하게 하려면?

0

374

0

파이게임이 실행은 되는데....

0

227

0

실행이 안됩니다.

0

320

0

똑같이 따라 쳤는데 오류가 생겨요

0

302

0

배경색이 안 나와요

0

328

0

import pygame 실행이 안 돼요

0

2697

1

Error

0

151

0