오늘은 pygame을 마무리 했다.
내가 만든 game은 pump게임이다!!
여기에 압축한 파일을 넣으려고 했으나, 파일 크기때문에 git에 올리려고 한다.
새로 알게 된 pygame의 코드를 작성해보자!!
SB = 0
while SB == 0:
clock.tick(60)
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
SB = 1
screen.blit(background,(0,0))
font = pygame.font.Font(None, 30)
font_title = pygame.font.Font(None, 50)
text = font.render("Press C to continue...", True, (255,255,255))
text_title = font_title.render("Welcome to Pump Game!!", True, (204,255,51))
screen.blit(text, (200,500))
screen.blit(text_title,(20,20))
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_c:
SB += 1
pygame.display.flip()
같은 조의 선영님의 도움으로 로딩화면을 만들어봤다!!
while문을 이용하여서, 본 게임으로 들어가기 전 로딩 화면을 구현 해 보았다.
조건이 갖추어 지지 않는다면, while문에서 벗어나지 못하도록 하는 점을 이용했다.
SB라는 변수를 통하여 while문을 통제 하였는데, 나같은 경우는 C라는 키가 입력이 될 경우 SB가 0보다 커지게 되어서
while 문을 벗어난다고 설정을 하였다.
화면에 background 이미지를 가져와서 펼쳐서 보여준 후, font를 이용하여, text로 설명을 해 놓았다.
font_title = pygame.font.Font(None, 50)
text_title = font_title.render("Welcome to Pump Game!!", True, (204,255,51))
screen.blit(text_title,(20,20))
자 주요 text를 화면에 출력하는 코드이다!!
코드를 하나씩 보자면, font_title로는 pygame에서 폰트를 지정해 주는건데, 기본 폰트를 사용한다는 None, 폰트크기 50!
그 다음은, 방금 지정한 font체를 사용하여, "welcome~"의 text를 지정해주고, rgb색상을 입힌다!!
자, 이제 폰트와 text 설정을 해주었으면, screen.blit을 이용해서 (20,20)좌표에 띄워주면 text 출력 끝!
음.. 이번에는 pygame 내부에서 배경음악, 효과음 설정을 알아보자!!
pygame.mixer.init()
pygame.mixer.music.load('mypygame/music/music.mp3')
pygame.mixer.music.play()
shot_sound = pygame.mixer.Sound('mypygame/music/hit.ogg')
자, 이 코드는 music을 이용하여, mp3파일을 볼러온다.!!
그리고 설정해놓은 mp3를 play()를 이용하여 배경에서 틀어줌!!
그 다음은 효과음을 설정해준다.
이렇게 여기서 설정을 해 주었다면!!
if object_y_pox >= screen_height -10:
print("놓쳤습니다")
pygame.mixer.Sound.play(shot_sound)
penalty += 1
여기서 조건을 갖추었다면, 호출!!
그렇다면, 조건이 충족이 될 때마다 shot_sound가 출력이 된다!!
음.. 또 코드로는 없지만, 애를 먹었던 구간이 있다!
예를 들어서
ex) 변경 전
if a>10:
screen.blit(A,(10,20))
elif a > 20:
screen.blit(A,(20,30))
screen.blit(A,(40,40))
이런식으로 a의 값에 따라서 A를 그리는 위치를 바꾸는 로직을 만들어 봤다!
결과는!!!
어떠한 경우에라도 마지막에 그려진 40,40을 따라가게 된다.
그래서 느낀점! screen,blit을 한다면, 맨 마지막에 변수처리를 해주자!
ex) 변경 후
A_pos_x =10
if a>10:
A_pos_x + 0
elif a > 20:
A_pos_x +20
screen.blit(A,(A_pos_x ,40))
이렇게 설정을 해 준다면
10보다 작을경우엔 (10,40)으로 그려지고!
10보다 크고 20보다 작을 경우에는 (40,40)으로 그려진다!!
git강의는 다음시간에 적도록 하자 ㅎㅎ
'나의 메모장 > 파이썬 나의 메모장' 카테고리의 다른 글
나의 파이썬 메모장(추가2) #map #lambda #filter (0) | 2022.04.27 |
---|---|
나의 파이썬 메모장(추가) (0) | 2022.04.27 |
4월 26일 TIL (pygame) (2) | 2022.04.26 |
4월 25일 TIL (pygame rect) (0) | 2022.04.25 |