#충돌된 공 or 무기 없애기 부분인 if ball_to_remove > -1: del balls[ball_to_remove] ball_to_remove = -1 부분이 도저히 이해가 안됩니다.
200
작성한 질문수 1
지금 # 충돌된 공 or 무기 없애기
if ball_to_remove > -1:
del balls[ball_to_remove]
ball_to_remove = -1 부분이 도저히 이해가 안됩니다.
balls.append 해서 최초의 공 (=가장 큰 공) 이 있는건 알겠는데 도대체 어느코드에서 balls의 인덱스 수가 ball_images
만큼 늘어난건가요......제 생각에는 # 최초 발생하는 큰 공 추가 만 되있어서 인덱스는 0이고 값은 딕셔너리의 내용인데요..
(프린트 문으로 이 부분은 확인했습니다!)
아래가 balls 가 포함되있는 코드인데 어디서 ball_images 만큼의 인덱수가 늘어난건가요.
# 최초 발생하는 큰 공 추가
balls.append({
"pos_x" : 50, # 공의 x좌표
"pos_y" : 50, # 공의 y좌표
"img_idx" : 0, # 공의 이미지 인덱스,ball_image 리스트 안에서의 이미지의 인덱스 넘버
"to_x": 3, # x축 이동방향
"to_y": -6, # y축 이동방향
"init_spd_y": ball_speed_y[0] # y의 최초 속도
})
# 공 위치 정의
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"]
ball_size = ball_image[ball_img_idx].get_rect().size # 해당 ball의 x,y값이 묶여진 리스트
ball_width = ball_size[0]
ball_height = ball_size[1]
... ...
# 4. 충돌 처리
... ...
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"]
# 공 rect 정보 업데이트
ball_rect = ball_images[ball_img_idx].get_rect() # 공의 크기와 좌표(x,y = left,top)
ball_rect.left = ball_pos_x
ball_rect.top = ball_pos_y
... ...
# 왼쪽으로 튕겨나가는 작은 공
balls.append({
"pos_x": ball_pos_x + (ball_width/2) -(small_ball_width/2),
"pos_y": ball_pos_y + (ball_height/2) -(small_ball_height/2),
"img_idx": ball_img_idx + 1,
"to_x": -3,
"to_y": -6,
"init_spd_y": ball_speed_y[ball_img_idx + 1]})
# 오른쪽으로 튕겨나가는 작은 공
balls.append({
"pos_x": ball_pos_x + (ball_width/2) -(small_ball_width/2),
"pos_y": ball_pos_y + (ball_height/2) -(small_ball_height/2),
"img_idx": ball_img_idx + 1,
"to_x": 3,
"to_y": -6,
"init_spd_y": ball_speed_y[ball_img_idx + 1]})
break
else:
continue
break
... ...
# 충돌된 공 or 무기 없애기
if ball_to_remove > -1:
del balls[ball_to_remove]
ball_to_remove = -1
# 모든 공을 없앴다면 게임 종료
if len(balls) == 0:
game_result = "Mission Complete"
running = False
답변 1
0
이거 뒷부분 보고 오신건가요?? 아님 이 강의 내에서만 질문하시는건가요?
이 수업 내에서의 질문이라면,
여기 에서는 처음 있는 공만 지우는게 맞아요. 초기값인 0번 인덱스
쪼개 진 것에 대해서는 다음 수업에서 진행 해요.
거기서 작아진걸 리스트에 추가하는 과정에서, 그 추가된게, 자동으로 리스트의 1 번 2 번 3 번으로 들어가게 되는 거죠.
pygame 설치오류
0
121
1
pip install pygame 이 실패합니다
0
205
1
pip install pygame 이 안되요
0
884
1
(4:00) linting enabled 항목이 보이지 않습니다
0
155
1
마지막 프로젝트 그림 파일들을 올려주실 수는 없을까요?
0
202
1
import pygame에서 계속 오류가 발생해요
0
3579
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





