def ProcessInput(self, events, pressed_keys):
"""
Process input from user
Inherits from SceneBase
Args: self
events - pygame events
pressed_keys
"""
for event in events:
if event.type == pygame.KEYDOWN and event.key == pygame.K_RETURN:
# Move to the next scene when the user pressed Enter
pass
if event.type == pygame.MOUSEBUTTONDOWN:
for button in self.buttons:
button.isClicked(event)
if self.leveling_up:
self.continue_button.isClicked(event)
if event.type == pygame.MOUSEBUTTONUP:
for button in self.buttons:
button.isClicked(event)
if self.leveling_up:
self.continue_button.isClicked(event)
if event.type == pygame.MOUSEMOTION:
#for button in self.buttons:
# button.isHovered(event)
if self.leveling_up:
self.continue_button.isHovered(event)
python类K_RETURN的实例源码
def handleEvent(self, event):
self.collisionEngine.eventHandler(event)
self.scene.handleEvent(event)
if event.type == pg.KEYDOWN:
if event.key == pg.K_RETURN:
self.camera.duration = 0
if event.key == pg.K_SPACE:
self._swapCameraFollow()
if event.type == self.SCENE_EVENT:
if event.category == "complete":
self._nextScene()
if event.category == "transition":
self._handleTransition(event)
if event.category == "unpause":
self._loadUI(self.maxLives, self.lives)
if event.category == "death":
self._handleDeath(event)
if event.category == "revive":
self._handleRevive()
if event.category == "pause":
isAlive = all([live != 0 for live in self.lives])
if isAlive:
self.pause = True
self.messageMenu("transition", "pause_menu")
if event.category == "unpause":
self.pause = False
self._loadUI(self.maxLives, self.lives)
def eventHandler(self, event):
if event.type == pg.KEYDOWN:
if event.key == pg.K_RETURN:
self.resolveDoorCollisions()
try:
p1, p2 = self.scene.players
p1Jump = p1.keybinds["coop_jump"]
p2Jump = p2.keybinds["coop_jump"]
if event.key == p1Jump or event.key == p2Jump:
self.resolvePlayerCollisions(30)
self.audio.state = "explosion"
except ValueError:
pass
def handleEvent(self, event):
if event.type == pg.KEYDOWN:
if event.key == pg.K_RETURN:
self._messageNextScene()
def handleEvent(self, event):
if event.type == pg.KEYDOWN:
if event.key == pg.K_RETURN:
self.messageCutScene("transition", "jail_cutscene")
def handleEvent(self, event):
if event.type == pg.KEYDOWN:
if event.key == pg.K_RETURN:
self._messageStart()
def handleEvent(self, event):
if event.type == pg.KEYDOWN:
if event.key == pg.K_RETURN:
self._sendMessage()
def handleEvent(self, event):
if event.type == pg.KEYDOWN:
if event.key == pg.K_RETURN:
self._sendMessage()
def handleEvent(self, event):
if event.type == pg.KEYDOWN:
if event.key == pg.K_ESCAPE:
self.effect.timeStartDarken = self.effect.time
self.effect.timeEndDarken = self.effect.time + self.dt
self.audio.state = "exit"
if event.key == pg.K_UP:
self.arrow.moveUp()
if event.key == pg.K_DOWN:
self.arrow.moveDown()
if self.arrow.index == 0:
if event.key == pg.K_RIGHT:
self.backgroundSetting.next()
if event.key == pg.K_LEFT:
self.backgroundSetting.previous()
if event.key == pg.K_RETURN:
if self.backgroundSetting.index == 0:
self.render.flip(True, False)
if self.backgroundSetting.index == 1:
self.render.flip(False, True)
if self.arrow.index == 1:
if event.key == pg.K_RIGHT:
self.fullscreenSetting.next()
if event.key == pg.K_LEFT:
self.fullscreenSetting.previous()
if event.key == pg.K_RETURN:
if self.fullscreenSetting.index == 0:
pg.display.set_mode((settings.WIDTH, settings.HEIGHT))
if self.fullscreenSetting.index == 1:
pg.display.set_mode((settings.WIDTH, settings.HEIGHT),
pg.FULLSCREEN)
self.messageMenu("screen")
self.messageScene("screen")
self.messageCutScene("screen")
def handleEvent(self, event):
if event.type == pg.KEYDOWN:
if event.key == pg.K_RETURN:
self.messageMenu("transition", "main_menu")
self.messageScene("no_mode")
def notify(self, event):
if self.isActivated:
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
pass
elif event.key == pygame.K_DOWN:
pass
elif event.key == pygame.K_SPACE:
self.isActivated = False
elif event.key == pygame.K_RETURN:
pass
def notify(self, event):
if self.selected:
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
self.optionList[self.selector.vPos].deselect()
self.selector.moveUp()
self.optionList[self.selector.vPos].select()
elif event.key == pygame.K_DOWN:
self.optionList[self.selector.vPos].deselect()
self.selector.moveDown()
self.optionList[self.selector.vPos].select()
elif event.key == pygame.K_SPACE:
self.optionList[self.selector.vPos].doOption()
elif event.key == pygame.K_RETURN:
self.optionList[self.selector.vPos].doOption()
def update(self,screen,event_queue,dt,clock, joystick, netmodel, vizmodel):
nextState = self
self.name = gameover.enter_text(event_queue,screen, 8)
for event in event_queue:
if event.type == pygame.KEYUP:
if event.key == pygame.K_RETURN:
self.name = gameover.pressed
leaderboard.StoreScore(self.name,self.score)
nextState = Leaderboard(self.name)
return nextState
def update(self, screen, event_queue, dt,clock,joystick, netmodel, vizmodel):
# Logos/titles
screen.blit(self.logo,(screen.get_width() / 4 - 265,screen.get_height() * 3 / 4-500))
screen.blit(self.intel,(screen.get_width() / 4 - 300,screen.get_height()-130))
screen.blit(self.activestate,(screen.get_width() - 980,screen.get_height() - 130))
nextState = self
displaytext('Play', 32, screen.get_width() / 4 - 20, screen.get_height() * 3 / 4
- 80, WHITE, screen)
displaytext('Train', 32, screen.get_width() / 4 - 20, screen.get_height() * 3 / 4
- 40, WHITE, screen)
displaytext('Exit', 32, screen.get_width() / 4 - 20, screen.get_height() * 3 / 4,
WHITE, screen)
displaytext(u'\u00bb', 32, screen.get_width() / 4 - 60, screen.get_height() * 3 / 4
- 40*self.menu_selection, WHITE, screen)
# Each game state processes its own input queue in its own way to avoid messy input logic
for event in event_queue:
if event.type == pygame.KEYDOWN or event.type == pygame.JOYBUTTONDOWN:
if (event.type == pygame.KEYDOWN and (event.key == pygame.K_DOWN)) or (event.type == pygame.JOYBUTTONDOWN and (event.button == 1)) or (event.type == pygame.JOYAXISMOTION and (event.axis == 1 or event.value >= DEADZONE)):
self.menu_selection -= 1
if self.menu_selection == -1:
self.menu_selection = 2
if (event.type == pygame.KEYDOWN and (event.key == pygame.K_UP)) or (event.type == pygame.JOYBUTTONDOWN and (event.button == 0)) or (event.type == pygame.JOYAXISMOTION and (event.axis == 1 or event.value <= -DEADZONE)):
self.menu_selection += 1
if self.menu_selection == 3:
self.menu_selection = 0
if (event.type == pygame.KEYDOWN and event.key == pygame.K_RETURN) or (event.type == pygame.JOYBUTTONDOWN and event.button == 11):
if self.menu_selection == 2:
nextState = Play(False)
elif self.menu_selection == 1:
nextState = Play(True)
else:
nextState = None
if (event.type == pygame.KEYDOWN and event.key == pygame.K_x):
self.ExportModel()
if (event.type == pygame.KEYDOWN and event.key == pygame.K_d):
self.DumpData()
if (event.type == pygame.KEYDOWN and event.key == pygame.K_w):
self.DumpWeights()
return nextState
def handle(self, event):
gd.BoardGame.handle(self, event) # send event handling up
if self.show_msg == False:
if event.type == pygame.KEYDOWN and event.key != pygame.K_RETURN:
lhv = len(self.home_square.value)
self.changed_since_check = True
if event.key == pygame.K_BACKSPACE:
if lhv > 0:
self.home_square.value = self.home_square.value[0:lhv - 1]
else:
char = event.unicode
if len(char) > 0 and lhv < 3 and char in self.digits:
self.home_square.value += char
self.home_square.update_me = True
self.mainloop.redraw_needed[0] = True
def handle(self, event):
gd.BoardGame.handle(self, event) # send event handling up
if self.show_msg == False:
if event.type == pygame.KEYDOWN and event.key != pygame.K_RETURN:
lhv = len(self.home_square.value)
self.changed_since_check = True
if event.key == pygame.K_BACKSPACE:
if lhv > 0:
self.home_square.value = self.home_square.value[0:lhv - 1]
else:
char = event.unicode
if len(char) > 0 and lhv < self.sollen and char in self.digits:
self.home_square.value += char
self.home_square.update_me = True
self.mainloop.redraw_needed[0] = True
def handle(self, event):
gd.BoardGame.handle(self, event) # send event handling up
if self.show_msg == False:
if event.type == pygame.KEYDOWN or event.type == pygame.MOUSEBUTTONDOWN:
self.auto_check_reset()
if event.type == pygame.KEYDOWN and event.key == pygame.K_LEFT:
self.home_sqare_switch(self.board.active_ship + 1)
elif event.type == pygame.KEYDOWN and event.key == pygame.K_RIGHT:
self.home_sqare_switch(self.board.active_ship - 1)
elif event.type == pygame.KEYDOWN and event.key == pygame.K_UP:
self.home_sqare_switch(self.board.active_ship - self.sumn1n2sl + 1)
elif event.type == pygame.KEYDOWN and event.key == pygame.K_DOWN:
self.home_sqare_switch(self.board.active_ship + self.sumn1n2sl)
elif event.type == pygame.KEYDOWN and event.key != pygame.K_RETURN and not self.correct:
lhv = len(self.home_square.value)
self.changed_since_check = True
if event.key == pygame.K_BACKSPACE:
if lhv > 0:
self.home_square.value = self.home_square.value[0:lhv - 1]
else:
char = event.unicode
if (len(char) > 0 and lhv < 2 and char in self.digits):
self.home_square.value = char
if self.auto_select:
self.home_sqare_switch(self.board.active_ship + 1)
else:
self.home_square.value = ""
self.home_square.update_me = True
self.mainloop.redraw_needed[0] = True
elif event.type == pygame.MOUSEBUTTONUP:
self.home_sqare_switch(self.board.active_ship)
def onKeyDown(self, event):
if event.key == pygame.K_RETURN or event.key == pygame.K_KP_ENTER:
self.fsubmit()
self.update_trigger()
def init_rotary_encoders(self):
""" Rotary encoders (RE) initializer.
This is executed only if RE enabled in config.txt. Two REs are configured this way:
1. Volume Control: GPIO16 - Volume Up, GPIO26 - Volume Down, GPIO13 - Mute
2. Tuning: GPIO12 - Move Right, GPIO6 - Move Left, GPIO5 - Select
RE events will be wrapped into keyboard events with the following assignment:
Volume Up - '+' key on numeric keypad, Volume Down - '-' key on keypad, Mute - 'x' key
"""
if not self.config[USAGE][USE_ROTARY_ENCODERS]:
return
from event.rotary import RotaryEncoder
RotaryEncoder(16, 26, 13, pygame.K_KP_PLUS, pygame.K_KP_MINUS, pygame.K_x)
RotaryEncoder(12, 6, 5, pygame.K_RIGHT, pygame.K_LEFT, pygame.K_RETURN)
def __pygamebox(title, message):
try:
import pygame
pygame.quit() #clean out anything running
pygame.display.init()
pygame.font.init()
screen = pygame.display.set_mode((460, 140))
pygame.display.set_caption(title)
font = pygame.font.Font(None, 18)
foreg, backg, liteg = (0, 0, 0), (180, 180, 180), (210, 210, 210)
ok = font.render('Ok', 1, foreg, liteg)
okbox = ok.get_rect().inflate(200, 10)
okbox.centerx = screen.get_rect().centerx
okbox.bottom = screen.get_rect().bottom - 10
screen.fill(backg)
screen.fill(liteg, okbox)
screen.blit(ok, okbox.inflate(-200, -10))
pos = [10, 10]
for text in message.split('\n'):
if text:
msg = font.render(text, 1, foreg, backg)
screen.blit(msg, pos)
pos[1] += font.get_height()
pygame.display.flip()
stopkeys = pygame.K_ESCAPE, pygame.K_SPACE, pygame.K_RETURN, pygame.K_KP_ENTER
while 1:
e = pygame.event.wait()
if e.type == pygame.QUIT or \
(e.type == pygame.KEYDOWN and e.key in stopkeys) or \
(e.type == pygame.MOUSEBUTTONDOWN and okbox.collidepoint(e.pos)):
break
pygame.quit()
except pygame.error:
raise ImportError