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()
python类K_UP的实例源码
def update(self, is_key_pressed, time, display):
"""
?????????????????????????????
is_key_pressed ?????????????ascii????????????
time ????
display ????????Display??
"""
if (is_key_pressed(pygame.K_e)):
if self.theme_changed:
display.theme_index = (display.theme_index + 1) % len(self.themes)
display.theme = self.themes[display.theme_index]
self.theme_changed = False
elif not self.theme_changed:
self.theme_changed = True
flag = False
if (is_key_pressed(pygame.K_UP)):
self._up(display, time)
flag = True
if (is_key_pressed(pygame.K_DOWN)):
self._down(display, time)
flag = True
if (is_key_pressed(pygame.K_LEFT)):
self._left(display, time)
flag = True
if (is_key_pressed(pygame.K_RIGHT)):
self._right(display, time)
flag = True
if self.counter >= 3:
self.counter = 0
return flag
else:
self.counter += 1
return False
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 action_from_keys(self, keys):
go = np.zeros(self.action_dim)
if keys[pygame.K_LEFT]:
go[-1] = self.max_deg
if keys[pygame.K_RIGHT]:
go[-1] = -self.max_deg
if keys[pygame.K_UP]:
go[0] = 10
if keys[pygame.K_DOWN]:
go[0] = -10
return go
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 run(self):
# Setup
for event in pygame.event.get():
if (event.type == pygame.QUIT):
return (False, '', None)
if (event.type == pygame.KEYDOWN):
if (event.key == pygame.K_UP and not self.dino.is_jumping()):
self.dino.set_movement(8)
self.dino.set_jumping(True)
if (event.key == pygame.K_DOWN):
self.dino.set_movement(-5)
if (event.key == pygame.K_h):
if self.dino.get_coins() > 4:
self.dino.set_coins(self.dino.get_coins() - 5)
self.powers.append(power(self.dino.get_position()))
# Movement
self.move_all_objects()
# Enemies
if (self.enemy.check_hitted(self.dino) and not self.enemy.get_hitted()):
del self.enemy
self.enemy = enemy(self.screen_size, self.ground_limit)
self.dino.set_lives(1, type='decrement')
if (not self.dino.get_lives()):
return(True, 'game_over', None)
# Prize
self.check_prize_hitted()
# Objects to show
objects_to_show = {}
objects_to_show['lives'] = self.dino.get_lives()
objects_to_show['coins'] = self.dino.get_coins()
objects_to_show['power'] = self.powers
objects_to_show['char'] = self.dino
objects_to_show['enemy'] = self.enemy
objects_to_show['prize'] = self.prize
self.clock.tick(self.difficulty * 60)
return (True, 'match_running', objects_to_show)
def button_event(self, button):
if button == 1:
return pygame.K_LEFT
elif button == 3:
return pygame.K_RIGHT
elif button == 2:
return pygame.K_UP
elif button == 0:
return pygame.K_DOWN
def __init__(self):
self.PIN_STATUS = 0
self.PINS = [16, 18]
self.K_UP = pygame.K_UP
self.foward = 0
self.right = 0
self.left = 0
self.DEBUG = 0
def setControls(self):
"""
Setups the controls for the class. setGame must be called first in order for this to run correctly
"""
self.controls = []
self.values = [self.game.board.callable, self.game.board.mvCurUp, self.game.board.mvCurDown,
self.game.board.mvCurLeft, self.game.board.mvCurRight]
if self.control_set == "arrows":
self.keys = [pygame.K_RETURN, pygame.K_UP, pygame.K_DOWN, pygame.K_LEFT, pygame.K_RIGHT]
else:
self.keys = [pygame.K_SPACE, pygame.K_w, pygame.K_s, pygame.K_a, pygame.K_d]
for i in range(len(self.keys)):
self.controls.append([self.keys[i], self.values[i]])
def __init__(self, main_menu):
self.parent = main_menu.parent
self.main_menu = main_menu
self.settings = self.parent.settings
self.parent.event_handler.register_key_listener(self.handle_keypress)
self.title = text_renderer.render_title("Options", colours.COLOUR_WHITE)
self.title_position = (
(self.parent.resolution[0] - self.title.get_width())// 2,
15
)
self.directions = {
pygame.K_UP : [-1, 0],
pygame.K_DOWN : [ 1, 0],
pygame.K_RIGHT : [ 0, 1],
pygame.K_LEFT : [ 0, -1],
pygame.K_SPACE : [ 0, 2],
pygame.K_RETURN : [ 0, 2],
pygame.K_ESCAPE : [ 0, 3],
pygame.K_BACKSPACE : [ 0, 3]
}
self.animation = None
self.menu = SettingsMenu(self.settings)
self.menu.register_finished_callback(self.finished)
def __init__(self, main_menu):
self.parent = main_menu.parent
self.main_menu = main_menu
self.title_banner = main_menu.title_banner
self.parent.event_handler.register_key_listener(self.handle_keypress)
self.main_menu.menu.selected = 0
self.animation = None
self.directions = {
pygame.K_UP : -1,
pygame.K_DOWN : 1
}
def update(self, dt, game):
key = pygame.key.get_pressed()
if key[pygame.K_UP]:
self.rect.y -= self.vel * dt
if key[pygame.K_DOWN]:
self.rect.y += self.vel * dt
self.collider(game)
#AI Paddle, same as paddle but with pseudo AI for updating position
def run(self):
"""The mainloop
"""
#self.paint()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
running = False
if event.key==pygame.K_UP:
#print(m.active_itemnumber)
self.offset_y += 50
#self.sound2.play()
if event.key==pygame.K_DOWN:
self.offset_y -= 50
if event.key==pygame.K_LEFT:
self.x += self.dy
if event.key == pygame.K_RIGHT:
self.x -= self.dy
if event.key == pygame.K_PAGEUP:
self.offset_y += self.height
if event.key == pygame.K_PAGEDOWN:
self.offset_y -= self.height
milliseconds = self.clock.tick(self.fps)
seconds = milliseconds / 1000.0 # important for python2
self.offset_y -= seconds * 10 # scroll 10 pixels / second
if self.offset_y * -1 > self.text_height:
running = False
self.playtime += milliseconds / 1000.0
self.paint()
pygame.display.flip()
self.screen.blit(self.background, (0, 0))
#pygame.quit()
return
def __init__(self):
self._mapping = [
{ # Player
pygame.K_d:"right",
pygame.K_s:"down",
pygame.K_q:"left",
pygame.K_z:"up"
},
{ # Player 1
pygame.K_RIGHT:"right",
pygame.K_DOWN:"down",
pygame.K_LEFT:"left",
pygame.K_UP:"up"
}
]
def on_event(self, event):
print(event)
if event.type == pygame.QUIT:
self._running = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
self._running = False
if event.key == pygame.K_UP:
self.y -= 5
if event.key == pygame.K_DOWN:
self.y += 5
if event.key == pygame.K_RIGHT:
self.x += 5
if event.key == pygame.K_LEFT:
self.x -= 5
def Update(self):
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and self.Tile.Left != None:
self.Tile = self.Tile.Left
elif keys[pygame.K_RIGHT] and self.Tile.Right != None:
self.Tile = self.Tile.Right
if keys[pygame.K_UP] and self.Tile.Up != None:
self.Tile = self.Tile.Up
elif keys[pygame.K_DOWN] and self.Tile.Down != None:
self.Tile = self.Tile.Down
def Update(self):
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and self.Tile.Left != None:
self.Tile = self.Tile.Left
elif keys[pygame.K_RIGHT] and self.Tile.Right != None:
self.Tile = self.Tile.Right
if keys[pygame.K_UP] and self.Tile.Up != None:
self.Tile = self.Tile.Up
elif keys[pygame.K_DOWN] and self.Tile.Down != None:
self.Tile = self.Tile.Down
def Update(self):
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and self.Tile.Left != None:
self.Tile = self.Tile.Left
elif keys[pygame.K_RIGHT] and self.Tile.Right != None:
self.Tile = self.Tile.Right
if keys[pygame.K_UP] and self.Tile.Up != None:
self.Tile = self.Tile.Up
elif keys[pygame.K_DOWN] and self.Tile.Down != None:
self.Tile = self.Tile.Down
def Update(self):
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and self.Tile.Left != None:
self.Tile = self.Tile.Left
elif keys[pygame.K_RIGHT] and self.Tile.Right != None:
self.Tile = self.Tile.Right
if keys[pygame.K_UP] and self.Tile.Up != None:
self.Tile = self.Tile.Up
elif keys[pygame.K_DOWN] and self.Tile.Down != None:
self.Tile = self.Tile.Down
def play(self):
"""Initialize the software."""
self.load_score_images()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
return 0
if not self.pipes_stop:
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
self.y_increase = -5
# Initialize the bird and the background.
self.screen.blit(self.background_img, (0, 0))
self.y_increase += 0.25 # Simulates gravity acceleration
self.pipes() # Update pipes
# Count the score.
self.score()
if self.bird_dies():
# Bird dies
self.bird()
self.gameover()
pygame.display.flip()
return 1
self.y_increase = 0
self.pipes_stop = True
else:
self.pipes_stop = False
self.bird()
self.y_bird += self.y_increase
# Update the screen.
pygame.display.flip()
self.clock.tick(60)