강의노트 키 이벤트
강의노트
• 조회수 28
• 댓글 0
• 수정 5일 전
- 이벤트
키 이벤트
눌린 키가 키상수와 같을때 명령이 동작하게하기 위한 루틴은 다음과 같다. 키를 누를때마다 한번씩 실행된다.
import pygame
pygame.init( )
#색설정
BLACK= ( 0, 0, 0)
WHITE = (255, 255, 255)
BLUE = ( 0, 0, 255)
RED = (255, 0, 0)
#화면설정
size = [1200, 300]
screen = pygame.display.set_mode(size)
font= pygame.font.SysFont('Verdana', 20)
pygame.display.set_caption(”KEYDOWN/KEYUP 이벤트 처리하기 ∼”)
#메인 루프
running = True
keyFlag = None
clock = pygame.time.Clock( )
#텍스트출력함수
def dispText(dispMessage, txtColor='BLACK', start_pos=(50, 50)):
textSurface = font.render(dispMessage, True, pygame.Color(txtColor), None)
textRect = textSurface.get_rect( )
textRect.topleft = start_pos
screen.blit(textSurface, textRect)
while running:
clock.tick(10)
#이벤트루프
for event in pygame.event.get( ):
if event.type == pygame.KEYDOWN:
# 전체 키보드의 키 상태 값 반환
pressed= pygame.key.get_pressed( )
#눌린키들의목록저장
Keys = [pygame.key.name(keyName) for keyName, pressedKeyValue in enumerate(pressed) if pressedKeyValue]
eventMessage = str(event)
keyFlag = True
elif event.type == pygame.KEYUP:
keyFlag = False
elif event.type== pygame.QUIT:
running = False
screen.fill(WHITE)
#키를누르면
if keyFlag ==True:
dispText(’Key Down!! ', 'RED')
#첫번째키만반환
dispText('Pressed Key: ' + Keys[0], 'RED', (50, 90))
dispText('eventMessage :' + eventMessage, 'RED', (50, 130))
#키를해제하면
elif keyFlag == False:
dispText('Key Up!! ', 'BLUE')
# 아무것도 하지 않은 경우
else:
dispText('Please press any key.')
pygame.display.flip( )
pygame.quit( )
K_[1~10]은 K_1부터 K_10까지를 의미한다.
if event.type == pygame.KEYDOWN:
if event.key == pygame.키상수:
명령 모음
pygame.key.get_pressed()를 사용할 수 있습니다. 이 함수는 모든 키의 목록과 현재 눌렸는지 여부를 반환합니다.
keys = pygame.key.get_pressed()
if keys[pygame.K_UP]:
p.move(up=True)
if keys[pygame.K_DOWN]:
p.move(down=True)
if keys[pygame.K_LEFT]:
p.move(left=True)
if keys[pygame.K_RIGHT]:
p.move(right=True)
키를 누르고 있을때 연속적으로 동작되게하기위해서는
keys = pygame.key.get_pressed()
if keys[키상수]:
명령 모음
혹은
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.키상수:
변수 설정
if event.type == pygame.KEYUP
if event.key == pygame.키상수
변수해제
if 변수:
명령 모음
키 상수
상수 | 설명 | 상수 | 설명 | 상수 | 설명 | 상수 | 설명 |
---|---|---|---|---|---|---|---|
K_[0~9] | 0~9 | K_[a~z] | a~z | K_F[1~15] | F1~F15 | K_KP[0~9] | keypad 0~9 |
상수 | 설명 | 상수 | 설명 | 상수 | 설명 |
---|---|---|---|---|---|
K_UP | up arrow | K_DOWN | down arrow | K_RIGHT | right arrow |
K_LEFT | left arrow | K_DELETE | delete | K_INSERT | insert |
K_HOME | home | K_END | end | K_PAGEUP | page up |
K_PAGEDOWN | page down | K_NUMLOCK | numlock | K_CAPSLOCK | capslock |
K_SCROLLOCK | scrollock | K_RSHIFT | right shift | K_LSHIFT | left shift |
K_RCTRL | right control | K_LCTRL | left control | K_RALT | right alt |
K_LALT | left alt | K_RMETA | right meta | K_LMETA | left meta |
K_LSUPER | left Windows key | K_RSUPER | right Windows key | ||
K_MODE | mode shift | K_HELP | help | K_PRINT | print screen |
K_SYSREQ | sysrq | K_BREAK | break | K_MENU | menu |
K_POWER | power | K_EURO | Euro | K_AC_BACK | Android back button |
K_BACKSPACE | backspace | K_TAB | tab | K_CLEAR | clear |
K_RETURN | return | K_PAUSE | pause | K_ESCAPE | escape |
K_SPACE | space | K_EXCLAIM | exclaim | K_QUOTEDBL | quotedbl |
K_HASH | hash | K_DOLLAR | dollar | K_AMPERSAND | ampersand |
K_QUOTE | quote | K_LEFTPAREN | left parenthesis | K_RIGHTPAREN | right parenthesis |
K_ASTERISK | asterisk | K_PLUS | plus sign | K_COMMA | comma |
K_MINUS | minus sign | K_PERIOD | period | K_SLASH | forward slash |
K_BACKQUOTE | grave | K_COLON | colon | K_SEMICOLON | semicolon |
K_LESS | less-than sign | K_EQUALS | equals sign | K_GREATER | greater-than sign |
K_QUESTION | question mark | K_AT | at | K_LEFTBRACKET | left bracket |
K_BACKSLASH | backslash | K_RIGHTBRACKET | right bracket | K_CARET | caret |
K_UNDERSCORE | underscore | K_KP_PERIOD | keypad period | ||
K_KP_DIVIDE | keypad divide | K_KP_MULTIPLY | keypad multiply | K_KP_EQUALS | keypad equals |
K_KP_MINUS | keypad minus | K_KP_PLUS | keypad plus | K_KP_ENTER | keypad enter |
로그인 하면 댓글을 쓸 수 있습니다.