-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
해결됨
enumerate 부분에서 이해가 힘든 코드가 있습니다
20.08.26 23:35 작성 조회수 125
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" 가 들어가있어서 헷갈리네요 ㅠㅠ
답변을 작성해보세요.
1
나도코딩
지식공유자2020.08.28
balls 는 각각의 딕셔너리 자료형을 여러개 가지는 리스트입니다. 각 항목은 딕셔너리라서 "pos_x" 와 같이 key 값으로 value 를 확인하구요. balls.append 를 하므로 값을 추가하게 되면 그 리스트에서는 마지막 값으로 추가가 되기때문에 질문 내용처럼 balls[0] 이라는 보장은 못합니다. 값이 처음으로 들어가는 거라면 0 이 맞겠지요. enumerate 를 통해 balls 리스트에 있는 값들을 하나씩 가져와서 for 문을 수행하므로, 각각의 공이 현재 가지고 있는 pos_x, pos_y 의 값이 저장되는 것이랍니다 ^^
0
답변 2