한줄 if가 있는 for문을 풀어주실 수 있나요?
290
작성한 질문수 10
weapons = [[w[0], w[1]] for w in weapons if w[1] > 0]
한줄 코드만으로는 잘 이해가 가지 않습니다.
이 코드를 풀어서 보면 어떤 코드인지 이해에 도움이 될 것 같습니다.
답변 1
0
그 줄 바로 위부터 볼게요.
여기서 나온 결과를 다시 weapons 에 저장을 했어요.
이걸 이해를 못하시는것 같은데,
그러니까, 쉽게 설명하면,
weapon 1 의 좌표는 ( 캐릭터 위치 정중앙 , 캐릭터 머리 )
weapon 2 는 아직 안쏨.
잠시후
weapon 1 의 좌표는 ( 캐릭터 "이전" 위치 정중앙 , 캐릭터 머리보다 30만큼 위 )
weapon 2 는 ( 캐릭터 위치 정중앙 , 캐릭터 머리 )
이런식으로 저장을 하는 겁니다. 그러니까 지속적으로 저장되고 있는거예요.
다음은
weapon 1 의 좌표는 ( 캐릭터 "이전전" 위치 정중앙 , 캐릭터 머리보다 60만큼 위 )
weapon 2 는 ( 캐릭터"이전" 위치 정중앙 , 캐릭터 머리보다 30만큼 위 )
weapon 3 는 ( 캐릭터 위치 정중앙 , 캐릭터 머리 )
이런식으로 쏠때마다 늘겟죠??
그러면, 이렇게 저장된 애들을
여기서, if 오른쪽 부분만 살펴보면,
w[1] 값 즉, 무기들중에 y좌표가 0 보다 크다면, 그러니까 화면 위로 올라가지 않았다면, 그애들은
다시 weapon 에 저장한다. 즉, 천장보다 위로 올라가면, 저장하지 않는다.
그리고 아래의 구문에서,
이 저장된 애들만 그려주죠?
그러니까 천장보다 위로 올라간 애들은 그리지 않으니까,
즉, 천장보다, 올라간 애들은, 버린다.
라는 겁니다.
pygame 설치오류
0
119
1
pip install pygame 이 실패합니다
0
204
1
pip install pygame 이 안되요
0
881
1
(4:00) linting enabled 항목이 보이지 않습니다
0
155
1
마지막 프로젝트 그림 파일들을 올려주실 수는 없을까요?
0
202
1
import pygame에서 계속 오류가 발생해요
0
3577
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





