def turn(self):
global board,whos_turn,n_of_turn
for event in pygame.event.get():
if (event.type == pygame.MOUSEBUTTONDOWN):
mouse_pos = pygame.mouse.get_pos()
for i in range(3):
for j in range(3):
if (sqr_pos[i][j][0] < mouse_pos[0] and sqr_pos[i][j][0] + sqr_size[0] > mouse_pos[0] and
sqr_pos[i][j][1] < mouse_pos[1] and sqr_pos[i][j][1] + sqr_size[1] > mouse_pos[
1] and board[i*3+j] == NO_ONE):
board[i*3+j] = whos_turn
n_of_turn += 1
who_won(tuple(board) ,whos_turn, n_of_turn)
reward_consider(winner,tuple(board),p1,p2)
whos_turn = self.ID ^ 1
elif (event.type == pygame.K_ESCAPE):
esc_pause()
if (event.type == pygame.QUIT):
sys.exit()
# -------------------------------------------
python类K_ESCAPE的实例源码
def main():
pygame.init()
screen = pygame.display.set_mode((500,500))
screen.fill((255, 0, 0))
s = pygame.Surface(screen.get_size(), pygame.SRCALPHA, 32)
pygame.draw.line(s, (0,0,0), (250, 250), (250+200,250))
width = 1
for a_radius in range(width):
radius = 200
pygame.gfxdraw.aacircle(s, 250, 250, radius-a_radius, (0, 0, 0))
screen.blit(s, (0, 0))
pygame.display.flip()
try:
while 1:
event = pygame.event.wait()
if event.type == pygame.QUIT:
break
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE or event.unicode == 'q':
break
pygame.display.flip()
finally:
pygame.quit()
def handleEvent(self, event):
if self.mode:
self.mode.handleEvent(event)
if event.type == pg.KEYDOWN:
if event.key == pg.K_ESCAPE:
self.pause = not self.pause
if self.pause:
self.messageScene("pause")
else:
self.messageScene("unpause")
if event.type == self.SCENE_EVENT:
if event.category == "start_game":
if event.data == "solo":
self.mode = SinglePlayer(self.screen)
self.mode.startGame()
if event.data == "coop":
self.mode = MultiPlayer(self.screen)
self.mode.startGame()
if event.category == "no_mode":
self.mode = None
if event.category == "screen":
self.screen = pg.display.get_surface()
def checkEvents(self):
"""
Check for pygame events (mainly keyboard/mouse events).
Passes the events onto the GUI also.
"""
for event in pygame.event.get():
if event.type == QUIT or (event.type == KEYDOWN and event.key ==
pygame.K_ESCAPE):
return False
elif event.type == KEYDOWN:
self._Keyboard_Event(event.key, down=True)
elif event.type == KEYUP:
self._Keyboard_Event(event.key, down=False)
elif event.type == MOUSEBUTTONDOWN:
if event.button == 4:
self.viewZoom *= 1.1
elif event.button == 5:
self.viewZoom /= 1.1
elif event.type == MOUSEMOTION:
if self.rMouseDown:
self.viewCenter -= (event.rel[0] /
5.0, -event.rel[1] / 5.0)
return True
def __init__(self, key_list=None):
"""
:param Union[list,None] key_list: the list of keys to be added right away to our keyboard_registry dict
"""
super().__init__()
# stores the keys that we would like to be registered as important
# - key: pygame keyboard code (e.g. pygame.K_ESCAPE, pygame.K_UP, etc..)
# - value: True if currently pressed, False otherwise
# - needs to be ticked in order to yield up-to-date information (this will be done by a GameLoop playing a Screen)
self.keyboard_registry = {}
self.descriptions = {}
if key_list is None:
key_list = ["up", "down", "left", "right"]
self.update_keys(key_list)
def checkEvents(self):
"""
Check for pygame events (mainly keyboard/mouse events).
Passes the events onto the GUI also.
"""
for event in pygame.event.get():
if event.type == QUIT or (event.type == KEYDOWN and event.key ==
pygame.K_ESCAPE):
return False
elif event.type == KEYDOWN:
self._Keyboard_Event(event.key, down=True)
elif event.type == KEYUP:
self._Keyboard_Event(event.key, down=False)
elif event.type == MOUSEBUTTONDOWN:
if event.button == 4:
self.viewZoom *= 1.1
elif event.button == 5:
self.viewZoom /= 1.1
elif event.type == MOUSEMOTION:
if self.rMouseDown:
self.viewCenter -= (event.rel[0] /
5.0, -event.rel[1] / 5.0)
return True
def manager(field):
put_tile = False
for event in pygame.event.get():
if event.type == pygame.QUIT or (event.type == pygame.KEYDOWN and event.dict["key"] == pygame.K_ESCAPE):
sys.exit()
elif event.type == pygame.KEYDOWN and (event.dict["key"] == pygame.K_RIGHT or event.dict["key"] == pygame.K_d):
field.change_right_move(True)
elif event.type == pygame.KEYUP and (event.dict["key"] == pygame.K_RIGHT or event.dict["key"] == pygame.K_d):
field.change_right_move(False)
elif event.type == pygame.KEYDOWN and (event.dict["key"] == pygame.K_LEFT or event.dict["key"] == pygame.K_q):
field.change_left_move(True)
elif event.type == pygame.KEYUP and (event.dict["key"] == pygame.K_LEFT or event.dict["key"] == pygame.K_q):
field.change_left_move(False)
elif event.type == pygame.MOUSEBUTTONDOWN and event.dict["button"] == 4:
field.change_tile(1)
elif event.type == pygame.MOUSEBUTTONDOWN and event.dict["button"] == 5:
field.change_tile(-1)
elif event.type == pygame.MOUSEBUTTONDOWN and event.dict["button"] == 1:
field.put_tile()
def manager(jeff, field, frame, level_select):
for event in pygame.event.get():
if event.type == pygame.QUIT or (event.type == pygame.KEYDOWN and event.dict["key"] == pygame.K_ESCAPE):
sys.exit()
elif event.type == pygame.KEYDOWN and jeff.is_dead() and event.dict["key"] == pygame.K_r:
jeff = Jeff.Jeff([300, Constant.GROUND_HEIGHT - 50])
field.reload_level()
elif event.type == pygame.KEYDOWN and (jeff.is_dead() or field.is_level_ended()) and event.dict["key"] == pygame.K_m:
jeff = Jeff.Jeff([300, Constant.GROUND_HEIGHT - 50])
frame = "MENU"
elif event.type == pygame.KEYDOWN and field.is_level_ended() and event.dict["key"] == pygame.K_n:
next_level = level_select.get_next_level(field.get_level_file())
if next_level != "":
jeff = Jeff.Jeff([300, Constant.GROUND_HEIGHT - 50])
field.load_level(next_level)
elif event.type == pygame.KEYDOWN and event.dict["key"] == pygame.K_SPACE:
jeff.jump(True)
elif event.type == pygame.KEYUP and event.dict["key"] == pygame.K_SPACE:
jeff.jump(False)
return jeff, frame
def getEvent():
"""
retrieve events from the clock, such as button clicks
:return (tuple): (string(messageName), messageParam0, ...)
"""
for event in pygame.event.get():
if event.type == pygame.QUIT or (event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE):
return ('end', 0)
elif event.type == pygame.KEYDOWN and event.key == 257:
return ('buttonClick', 1)
elif event.type == pygame.KEYDOWN and event.key == 258:
return ('buttonClick', 2)
elif event.type == pygame.KEYDOWN and event.key == 259:
return ('buttonClick', 4)
#elif event.type == pygame.KEYDOWN:
# print event.key
return None
def update( self, dt, fps=8 ):
self.display_time( dt.hour, dt.minute )
pygame.display.flip()
# handle exits
was_quit = False
for event in pygame.event.get():
if event.type == pygame.QUIT:
was_quit = True
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
was_quit = True
if not was_quit:
self.clock.tick( fps )
return was_quit
def touch_handler(self, event):
#handle keypresses...
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_BACKSPACE:
self.panel.text.del_letter()
elif event.key == pygame.K_RETURN or event.key == pygame.K_KP_ENTER:
self.panel.new_line()
elif event.key == pygame.K_ESCAPE:
self.close(None)
elif event.key == pygame.K_LEFT:
self.panel.text.cursor_left()
elif event.key == pygame.K_RIGHT:
self.panel.text.cursor_right()
elif len(event.unicode) > 0:
self.panel.text.add_letter(event.unicode)
super(Keyboard,self).touch_handler(event)
def Loop(self): # game loop
while not self.Exit:
if self.Level == "menu": # loop only goes here if the level is 'menu'
for event in pygame.event.get(): # checking for any events
if event.type == pygame.QUIT: # checks if someone tries to close the window
self.Exit = True # stops the while-loop
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
self.Exit = True
self.Draw() # black screen. draw all your things after this line
grid.Draw()
player1.Draw()
player2.Draw()
self.Tick() # refreshes the window. this is the end of the loop
# you can use elifs here to make new levels
else: self.Exit = True # if self.Level is not a valid level, it will terminate the while-loop
### FUNCTION DEFINITIONS ###
def textBoxInput(textbox):
# starts grabbing key inputs, putting into textbox until enter pressed
global keydict
textbox.text = ""
while True:
updateDisplay()
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RETURN:
textbox.clear()
return textbox.text
elif event.key == pygame.K_ESCAPE:
pygame.quit()
sys.exit()
else:
textbox.update(event)
elif event.type == pygame.QUIT:
pygame.quit()
sys.exit()
def textBoxInput(textbox):
# starts grabbing key inputs, putting into textbox until enter pressed
global keydict
textbox.text = ""
while True:
updateDisplay()
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RETURN:
textbox.clear()
return textbox.text
elif event.key == pygame.K_ESCAPE:
pygame.quit()
sys.exit()
else:
textbox.update(event)
elif event.type == pygame.QUIT:
pygame.quit()
sys.exit()
def handleEvents(self, events):
for event in events:
if event.type == pygame.QUIT:
self.doQuit()
return
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
self.doQuit()
return
elif event.key == pygame.K_DOWN:
self.current_option += 1
if self.current_option >= len(self.options):
self.current_option = 0
elif event.key == pygame.K_UP:
self.current_option -= 1
if self.current_option < 0:
self.current_option = len(self.options)-1
elif event.key == pygame.K_RETURN:
self.currentOptionExecute()
return
def handleEvents(self, events):
for event in events:
if event.type == pygame.QUIT:
self.game.forceQuit()
return
elif event.type == pygame.KEYDOWN:
log.info('Got Key Event: '+str(event))
if event.key == pygame.K_ESCAPE:
self.backToMenu()
return
elif event.key in settings.CONTROLS:
self.doAction(settings.CONTROLS[event.key])
held_keys = pygame.key.get_pressed()
for key, action in settings.HELD_CONTROLS.iteritems():
if held_keys[key]:
self.doAction(action)
def pause():
paused = True
message_to_screen("PAUSED", red, -100, mfont)
message_to_screen("Continue - [ESC]/C", white, 0, sfont)
message_to_screen("Exit - Q", white, 50, sfont)
pygame.display.update()
while paused:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_c or event.key == pygame.K_ESCAPE:
paused = False
elif event.key == pygame.K_q:
pygame.quit()
quit()
# gameDisplay.fill(background)
clock.tick(5)
def main():
pygame.init()
screen = pygame.display.set_mode((500,500))
screen.fill((255, 0, 0))
s = pygame.Surface(screen.get_size(), pygame.SRCALPHA, 32)
pygame.gfxdraw.aacircle(s, 250, 250, 200, (0, 0, 0))
screen.blit(s, (0, 0))
pygame.display.flip()
try:
while 1:
event = pygame.event.wait()
if event.type == pygame.QUIT:
break
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE or event.unicode == 'q':
break
pygame.display.flip()
finally:
pygame.quit()
def ShowPhoto(photoFile):
screen = pygameEngine.GetScreen()
image = pygame.image.load(photoFile).convert()
image = pygame.transform.scale(image, (config.WIDTH,config.HEIGHT))
screen.blit(image, (0,0))
pygame.display.update()
sleep(1)
pygameEngine.ShowNavButtons()
i = 0
while True:
# get one pygame event
event = pygame.event.poll()
# handle events
# Button 1 = Quit
if (event.type == pygame.MOUSEBUTTONUP and event.button == 1) or (event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE) or GPIO.input(config.GPIO_NUMBER_BUTTON_1):
return -1
# Button 2 = Cycle old photos
if (event.type == pygame.MOUSEBUTTONUP and event.button == 3) or (event.type == pygame.KEYDOWN and event.key == pygame.K_RETURN) or GPIO.input(config.GPIO_NUMBER_BUTTON_2):
return 1
# Button Esc or Q = Quit keys
if event.type == pygame.KEYDOWN and (event.key == pygame.K_ESCAPE or event.key == pygame.K_q) :
return -1
pygame_tutorial_3.py 文件源码
项目:uit-inf-1400-2017.github.io
作者: uit-inf-1400-2017
项目源码
文件源码
阅读 33
收藏 0
点赞 0
评论 0
def handle_events(self):
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
self.up_pressed = True
elif event.key == pygame.K_DOWN:
self.down_pressed = True
elif event.key == pygame.K_LEFT:
self.left_pressed = True
elif event.key == pygame.K_RIGHT:
self.right_pressed = True
elif event.key == pygame.K_ESCAPE:
exit()
elif event.type == pygame.KEYUP:
if event.key == pygame.K_UP:
self.up_pressed = False
elif event.key == pygame.K_DOWN:
self.down_pressed = False
elif event.key == pygame.K_LEFT:
self.left_pressed = False
elif event.key == pygame.K_RIGHT:
self.right_pressed = False
def checkEvents(self):
"""
Check for pygame events (mainly keyboard/mouse events).
Passes the events onto the GUI also.
"""
for event in pygame.event.get():
if event.type == QUIT or (event.type == KEYDOWN and event.key ==
pygame.K_ESCAPE):
return False
elif event.type == KEYDOWN:
self._Keyboard_Event(event.key, down=True)
elif event.type == KEYUP:
self._Keyboard_Event(event.key, down=False)
elif event.type == MOUSEBUTTONDOWN:
if event.button == 4:
self.viewZoom *= 1.1
elif event.button == 5:
self.viewZoom /= 1.1
elif event.type == MOUSEMOTION:
if self.rMouseDown:
self.viewCenter -= (event.rel[0] /
5.0, -event.rel[1] / 5.0)
return True
def get_event(self, event):
if event.type == pg.QUIT:
self.quit = True
elif event.type == pg.KEYUP:
if event.key == pg.K_ESCAPE:
self.quit = True
elif event.key == pg.K_SPACE:
self.running_sim = not self.running_sim
elif event.key == pg.K_UP:
if self.tick_index < len(self.tick_lengths) - 1:
self.tick_index += 1
self.tick_length = self.tick_lengths[self.tick_index]
elif event.key == pg.K_DOWN:
if self.tick_index > 0:
self.tick_index -= 1
self.tick_length = self.tick_lengths[self.tick_index]
def run(self):
while not self.is_done:
time.sleep(0.01)
x, y = pygame.mouse.get_pos()
events = pygame.event.get()
for event in events:
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
Kuai.emit('key-up', x, y)
if event.key == pygame.K_DOWN:
Kuai.emit('key-down', x, y)
if event.key == pygame.K_LEFT:
Kuai.emit('key-left', x, y)
if event.key == pygame.K_RIGHT:
Kuai.emit('key-right', x, y)
if event.key == pygame.K_ESCAPE:
Kuai.emit('key-escape')
pass
def _map_keys(self):
key_map = self.io.key_map
key_map[imgui.KEY_TAB] = pygame.K_TAB
key_map[imgui.KEY_LEFT_ARROW] = pygame.K_LEFT
key_map[imgui.KEY_RIGHT_ARROW] = pygame.K_RIGHT
key_map[imgui.KEY_UP_ARROW] = pygame.K_UP
key_map[imgui.KEY_DOWN_ARROW] = pygame.K_DOWN
key_map[imgui.KEY_PAGE_UP] = pygame.K_PAGEUP
key_map[imgui.KEY_PAGE_DOWN] = pygame.K_PAGEDOWN
key_map[imgui.KEY_HOME] = pygame.K_HOME
key_map[imgui.KEY_END] = pygame.K_END
key_map[imgui.KEY_DELETE] = pygame.K_DELETE
key_map[imgui.KEY_BACKSPACE] = pygame.K_BACKSPACE
key_map[imgui.KEY_ENTER] = pygame.K_RETURN
key_map[imgui.KEY_ESCAPE] = pygame.K_ESCAPE
key_map[imgui.KEY_A] = pygame.K_a
key_map[imgui.KEY_C] = pygame.K_c
key_map[imgui.KEY_V] = pygame.K_v
key_map[imgui.KEY_X] = pygame.K_x
key_map[imgui.KEY_Y] = pygame.K_y
key_map[imgui.KEY_Z] = pygame.K_z
def checkEvents(self):
"""
Check for pygame events (mainly keyboard/mouse events).
Passes the events onto the GUI also.
"""
for event in pygame.event.get():
if event.type == QUIT or (event.type == KEYDOWN and event.key ==
pygame.K_ESCAPE):
return False
elif event.type == KEYDOWN:
self._Keyboard_Event(event.key, down=True)
elif event.type == KEYUP:
self._Keyboard_Event(event.key, down=False)
elif event.type == MOUSEBUTTONDOWN:
if event.button == 4:
self.viewZoom *= 1.1
elif event.button == 5:
self.viewZoom /= 1.1
elif event.type == MOUSEMOTION:
if self.rMouseDown:
self.viewCenter -= (event.rel[0] /
5.0, -event.rel[1] / 5.0)
return True
def checkEvents(self):
"""
Check for pygame events (mainly keyboard/mouse events).
Passes the events onto the GUI also.
"""
for event in pygame.event.get():
if event.type == QUIT or (event.type == KEYDOWN and event.key ==
pygame.K_ESCAPE):
return False
elif event.type == KEYDOWN:
self._Keyboard_Event(event.key, down=True)
elif event.type == KEYUP:
self._Keyboard_Event(event.key, down=False)
elif event.type == MOUSEBUTTONDOWN:
if event.button == 4:
self.viewZoom *= 1.1
elif event.button == 5:
self.viewZoom /= 1.1
elif event.type == MOUSEMOTION:
if self.rMouseDown:
self.viewCenter -= (event.rel[0] /
5.0, -event.rel[1] / 5.0)
return True
def run(self):
cnt = 0
self.display_start()
running = True
while running:
pygame.time.wait(1000)
self.update_diplay()
cnt += 1
if cnt >= 209:
cnt = 0
self.update_current_data()
if time.strftime("%d/%m") != self._system_data.current_date:
self._system_data.current_date = time.strftime("%d/%m")
self.update_daily_data()
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
pygame.quit()
def esc_pause():
pausing = True
while (pausing):
print("pause")
for event in pygame.event.get():
if (event.type == pygame.K_ESCAPE):
pausing= False
def check_keydown_events(settings, event, screen, tile_map):
"""Respond to key down events"""
player = tile_map.player
if event.key == pygame.K_ESCAPE:
sys.exit()
if event.key == pygame.K_a:
generate_new_random_blob(settings, screen, settings.image_res.enemy_blob_images, tile_map)
if event.key == pygame.K_r:
reset_game(tile_map)
if event.key == pygame.K_LEFT:
if not player.idle_top:
if player.dx == 0.0:
player.dx = -1 * settings.player_dx
player.facing_left = True
if event.key == pygame.K_RIGHT:
if not player.idle_top:
if player.dx == 0.0:
player.dx = settings.player_dx
player.facing_left = False
if event.key == pygame.K_F9:
if settings.fullscreen == True:
settings.fullscreen = False
pygame.display.set_mode((800, 600))
else:
settings.fullscreen = True
pygame.display.set_mode((800, 600), pygame.FULLSCREEN)
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")