def __init__(self, dims):
self.position, self.velocity, self.dims, self.scale, self.map = V2(0, 0), V2(0, 0), dims, 1, [pg.K_RIGHT,
pg.K_LEFT,
pg.K_UP,
pg.K_DOWN]
python类K_LEFT的实例源码
def action_from_keys(self, keys):
if keys[pygame.K_LEFT]:
return np.asarray([-10])
elif keys[pygame.K_RIGHT]:
return np.asarray([+10])
else:
return np.asarray([0])
def action_from_keys(self, keys):
if keys[pygame.K_LEFT]:
return np.asarray([-1])
elif keys[pygame.K_RIGHT]:
return np.asarray([+1])
else:
return np.asarray([0])
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 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 action_from_keys(self, keys):
if keys[pygame.K_LEFT]:
return np.asarray([-10])
elif keys[pygame.K_RIGHT]:
return np.asarray([+10])
else:
return np.asarray([0])
def action_from_keys(self, keys):
if keys[pygame.K_LEFT]:
return np.asarray([-1])
elif keys[pygame.K_RIGHT]:
return np.asarray([+1])
else:
return np.asarray([0])
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 and (event.key == pygame.K_RIGHT or event.key == pygame.K_LEFT):
self.next_step()
elif event.type == pygame.MOUSEBUTTONUP:
if self.board.active_ship == self.next_step_btn.unit_id:
if self.cursor_pos == self.sumn1n2sl + 1:
self.level.next_board_load()
else:
self.next_step()
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_RIGHT or event.key == pygame.K_LEFT):
self.next_step()
elif event.type == pygame.MOUSEBUTTONUP:
if self.board.active_ship == self.next_step_btn.unit_id:
if self.current_pos + 1 > self.all_a_count:
self.level.next_board_load()
else:
self.next_step()
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_RIGHT or event.key == pygame.K_LEFT):
self.next_step()
elif event.type == pygame.MOUSEBUTTONUP:
if self.board.active_ship == self.next_step_btn.unit_id:
if self.current_pos + 1 > self.all_a_count: # if self.cursor_pos == self.sumn1n2sl+1:
self.level.next_board_load()
else:
self.next_step()
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 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 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 process_input(self):
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
if event.type == pygame.KEYDOWN:
if self.state.paused:
if event.key == pygame.K_r:
self.state.paused = False
if self.state.game_over:
if event.key == pygame.K_r:
self.state = State(self.ROWS, self.COLS)
if event.key == pygame.K_ESCAPE:
sys.exit()
if self.state.running:
if event.key == pygame.K_DOWN:
self.state.move_piece(board.DIRECTION_DOWN)
if event.key == pygame.K_LEFT:
self.state.move_piece(board.DIRECTION_LEFT)
if event.key == pygame.K_RIGHT:
self.state.move_piece(board.DIRECTION_RIGHT)
if event.key == pygame.K_x:
self.state.rotate_piece()
if event.key == pygame.K_z:
self.state.rotate_piece(True)
if event.key == pygame.K_SPACE:
self.state.drop_piece()
if event.key == pygame.K_p:
self.state.paused = True
def run(self):
self.screen = pygame.display.get_surface()
while self.running:
# Pump GTK messages.
# Pump PyGame messages.
for event in pygame.event.get():
if event.type == pygame.QUIT:
return
elif event.type == pygame.VIDEORESIZE:
pygame.display.set_mode(event.size, pygame.RESIZABLE)
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
self.currentPlayState = self.playStates.Paused
# Clear Display
self.screen.fill(self.white)
options = { 0 : self.drawMenuState,
1 : self.drawPlayState,
2 : self.drawInstructionState
}
options[self.currentPlayState]()
# Flip Display
pygame.display.flip()
# Try to stay at 30 FPS
self.clock.tick(30)
# This function is called when the game is run directly from the command line:
# ./TestGame.py
def move(self, eventKey):
#print eventKey
if eventKey == pygame.K_LEFT:
self.x -= 35
self.col -= 1
elif eventKey == pygame.K_RIGHT:
self.x += 35
self.col += 1
elif eventKey == pygame.K_DOWN:
self.y += 20
def check_keydown_events(event, ai_settings, screen,ship,bullets):
"""Respond to keypresses."""
if event.key == pygame.K_RIGHT:
ship.moving_right = True
elif event.key == pygame.K_LEFT:
ship.moving_left = True
elif event.key == pygame.K_SPACE:
fire_bullet(ai_settings, screen,ship,bullets)
elif event.key == pygame.K_q:
sys.exit()
def check_keyup_events(event, ship):
"""Respond to key releases."""
if event.key == pygame.K_RIGHT:
ship.moving_right = False
elif event.key == pygame.K_LEFT:
ship.moving_left = False
def check_keydown_events(event, ai_settings, screen,ship,bullets):
"""Respond to keypresses."""
if event.key == pygame.K_RIGHT:
ship.moving_right = True
elif event.key == pygame.K_LEFT:
ship.moving_left = True
elif event.key == pygame.K_SPACE:
fire_bullet(ai_settings, screen,ship,bullets)
elif event.key == pygame.K_q:
sys.exit()