티스토리 뷰
반응형
모든 강의 자료 : www.codingnow.co.kr/
이전강의 링크입니다.
이전 강의에서는 스타워즈 게임의 기본 틀을 만드는 강의 입니다.
기본 틀에 대한 설명이 있습니다.
파이썬 기초 활용 #키보드 입력으로 별이동하기 게임 #1탄 pynput
youtu.be/ZfHsb9bNMcY 파이썬의 pynput 메소드를 사용하여 키보드 입력을 통한 별(★) 이동하는 간단한 게임을 만들어 보았습니다. 실행결과입니다. 파이썬 키보드 입력으로 별 이동하기 게임 pynput을 사
cflab2017.tistory.com
이번 시간에는 적군의 비행기와 미사일을 발사하는 것을 만들어 게임을 좀더 수준을 올려 봤습니다.
키보드의 입력은 pynput를 사용하였습니다.
다음과 같이 cmd 창에서 pip를 사용하여 설치 하여야 합니다.
pip install pynput
자세한 코드 설명은 첨부된 동영상을 참고 해주세요.
이것은 cmd 차에서 화면을 갱신하면서 문자의 위치를 변경하면서 출력하는 것입니다.
미사일을 발사하고 점수를 카운트 하며 적군의 비행기와 충돌하면 게임이 끝납니다.
from pynput import keyboard
import os
import time, random
guide = ' # #'
isActive = True
position = {'x': 6+7, 'y': 0+6}
air = [-1 for i in range(len(guide))]
missile = [-1 for i in range(len(guide))]
air_make_time = 0
air_update_time = 0
missile_update_time = 0
score = 0
def key_press(key):
global position
global missile
if key == key.space:
missile[position['x']] = position['y']
if key == key.up: position['y'] -= 1
if key == key.down: position['y'] += 1
if key == key.left: position['x'] -= 1
if key == key.right: position['x'] += 1
if position['x'] < 6: position['x'] = 6
if position['x'] > 24: position['x'] = 24
if position['y'] < 0: position['y'] = 0
if position['y'] > 9: position['y'] = 9
def key_release(key):
if key == keyboard.Key.esc:
global isActive
isActive = False
return False
listener = keyboard.Listener(on_press=key_press, on_release=key_release)
listener.start()
#▼↑◌◎♠
while isActive:
os.system('cls')
if air_make_time > 5:
air_make_time = 0
idex = random.randint(6,24)
if air[idex] == -1:
air[idex] = 0
print(' ######################')
for i in range(10): # y
for k in range(len(guide)): # x
if position['x'] == k and position['y'] == i:
#적기와 충돌 검사
if air[k] == position['y']:
print('☆',end='')
isActive = False
else:
print('♠', end='')
elif air[k] > -1 or missile[k] > -1:
if air[k] == i:
if air[k] == missile[k]:
print('◎', end='')
score += 10
air[k] = -1
missile[k] = -1
else:
print('▼',end='')
elif missile[k] == i:
print('↑',end='')
else:
print(guide[k], end='')
else:
print(guide[k], end='')
print()
print(' ######################')
print(f'x = {position["x"]}, y = {position["y"]}')
print(f'당신의 점수는 {score}점입니다.')
time.sleep(0.1)
#적기 이동하기
if air_update_time > 2:
air_update_time = 0
for i ,val in enumerate(air):
if val > -1:
air[i] += 1
if air[i] > 9:
air[i] = -1
#미사일 이동하기
if missile_update_time > 1:
missile_update_time = 0
for i, val in enumerate(missile):
if val > -1:
missile[i] -= 1
air_make_time += 1
air_update_time += 1
missile_update_time += 1
del listener
print('종료했습니다.')
반응형
'파이썬 강의' 카테고리의 다른 글
파이썬 기초 활용 :: 유성피하기 게임 만들기 (feat 갤러그 게임) (0) | 2021.01.21 |
---|---|
파이썬 기초 활용 #간단한 숫자맞추기 게임 만들기 (0) | 2021.01.18 |
파이썬 기초 활용 #키보드 입력으로 별이동하기 게임 #1탄 pynput (0) | 2021.01.14 |
파이썬 기초 활용 편 #간단한 게임 만들기 #가위바위보 게임 (0) | 2021.01.13 |
파이썬 기초 활용편 : : 학생의 총점, 최고, 최저, 평균 구하기 (0) | 2021.01.12 |