[사전스터디] 졸라맨 번개 피하기 게임 - (1)

hyuckhoon.ko·2020년 4월 29일
0

What I learned in wecode

목록 보기
10/109

졸라맨이 번개들을 피하는 게임을 만드는 중이다.

아직 번개 한개 밖에 만들지 못했다.

그 대신!!!!

오늘 중점적으로 한 것은 키보드 입력값 대로 졸라맨을 좌우로 움직이게 하는 것, 게임 종료 방법 그리고 충돌 여부를 알려주는 함수를 만들었다.
1. 좌,우로 움직이되 게임 스크린 창을 넘어가지 않게 범위 지정
2. 게임 스크린 우측 상단 'X'를 누르거나, 캐릭터가 번개에 맞을 경우 종료
3. 충돌 여부 감지 함수 작성 (함수명 : is_collision )

그 다음은 번개와 졸라맨 간의 '거리'는 구하는 함수를 만들었다.

예를들어, 그 길이가 40 이하이면, collision = True 를 반환하는 함수다.

충돌할 시, collision 변수 값이 True로 값이 바뀌고 게임이 종료되도록 했다.
(또한, True일 경우, 게임 캐릭터가 180도 뒤집히도록 따로 이미지를 저장해 뒀다.)

if collision:
	player(**player_dead_img**, player_x, player_y) 
else:
    player(**player_img**, player_x, player_y) 로 구분해뒀다.

거리를 구하는 함수를 앞으로는 잘 써먹어야 겠다. 굉장히 흥미로웠다.
오늘 코딩한 부분중 가장 소름끼치도록 재밌었던 부분이었다.

대학교 4학년때 참가했었던 자율주행 자동차 대회에서 사용했었던 코드다. 차량의 실시간 위치(from gps data)와 그 다음 경로(waypoint) 위치 간의 거리를 구하고, 그 거리가 일정 거리 이내면 그 경로를 지나쳤다고 판단하는 알고리즘이다.

우선, import math 먼저 한 후

def is_collision(player_x, player_y, enemy_x, enemy_y):
	dis_x = abs(player_x - enemy_x)
    dis_y = abs(player_y - enemy_y)
    distance = math.sqrt( math.pow(dis_x,2) + math.pow(dis_y,2) )
    if distance < 40:
       return True
    else:
    	return False

내일은 떨어지는 번개들의 양을 증가시키고, 번개의 속도를 수정해서 게임에 긴장감을 부여하려 한다.

                                      - One step at a time -
    
    

0개의 댓글