def handle_events():
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit(0)
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
player_one.speed = 10
if event.key == pygame.K_RIGHT:
player_one.angular_speed = 5
if event.key == pygame.K_LEFT:
player_one.angular_speed = -5
if event.type == pygame.KEYUP:
if event.key == pygame.K_UP:
player_one.speed = 0
if event.key == pygame.K_RIGHT:
player_one.angular_speed = 0
if event.key == pygame.K_LEFT:
player_one.angular_speed = 0
python类QUIT的实例源码
def run(self):
while not self.done:
# if user clicks close, then exit
for event in pygame.event.get():
if event.type == pygame.QUIT:
self.done = True
grid = self.grid
self.screen.fill(EMPTY_COLOR)
for row in range(len(grid)):
for col in range(len(grid[0])):
color = grid[row][col]
pygame.draw.rect(self.screen, color,
[(MARGIN + WIDTH) * col + MARGIN,
(MARGIN + HEIGHT) * row + MARGIN,
WIDTH, HEIGHT])
# Limit to 30 frames per second
self.clock.tick(30)
pygame.display.flip()
pygame.quit()
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 runMainLoop(frameFunc):
while True:
blit(globalscreen)
frameFunc()
for event in pygame.event.get():
if event.type == pygame.QUIT:
if runQuitCallback():
# runQuitCallback would run the function
# given to setQuitCallback, and return its result
pygame.quit()
sys.exit()
else:
if event.type == pygame.KEYDOWN:
keysPressed.append(pygame.key.name(event.key))
elif event.type == pygame.KEYUP:
keysPressed.remove(pygame.key.name(event.key))
eventCallbacks[event.type](event)
# eventCallbacks would be a dictionary mapping
# event types to handler functions.
pygame.display.flip() # Always flip at the end
clock.tick(projectFPS) # Run at however many FPS the user specifies
def main(to_render):
clock = pygame.time.Clock()
crashed = False
slideDisplay.fill((255, 255, 255))
while not crashed:
for event in pygame.event.get():
if event.type == pygame.QUIT:
crashed = True
# print(event)
draw_slide(to_render[0])
# draw_90s_bullet_points("This is a title", ["FOO", "BAR", "BAZ"])
pygame.display.update()
time.sleep(0.1)
# clock.tick(60)
pygame.quit()
def process_events(self):
for event in pygame.event.get():
if event.type == VIDEORESIZE:
self.screen = pygame.display.set_mode(event.dict['size'], HWSURFACE | DOUBLEBUF | RESIZABLE)
print(event.dict['size'])
self.width = event.dict['size'][0]
self.height = event.dict['size'][1]
if event.type == pygame.QUIT:
return True
if event.type == pygame.MOUSEBUTTONUP:
if self.b1.rect.collidepoint(pygame.mouse.get_pos()):
self.M0 = 1
self.M1 = 0
if self.Menu1.b1.rect.collidepoint(pygame.mouse.get_pos()):
self.M0 = 0
self.M1 = 1
if self.Menu1.b4.rect.collidepoint(pygame.mouse.get_pos()):
return True
self.b1 = Button(self.width * 0.85, self.height * 0.05, self.width * 0.1, self.height * 0.05, "Menu")
self.Menu1 = MainMenu(self.width, self.height)
return False
def run(self, quitAllowed=True):
"Disable pygame QUIT event while running the dialog"
set_blocked(QUIT)
val = self.dialog(*self.args, **self.options)
if quitAllowed: set_allowed(QUIT)
return val
def vPlayer( fName ):
global ovl
f= open( fName, 'rb' )
fmt= f.readline().strip()
res= f.readline().strip()
col= f.readline().strip()
if fmt!= "P5":
print ('Unknown format( len %d ). Exiting...' % len( fmt ))
return
w,h= [ int(x) for x in res.split( ' ' ) ]
h= ( h* 2 )/ 3
# Read into strings
y= f.read( w*h )
u= []
v= []
for i in xrange_( 0, h/2 ):
u.append( f.read( w/2 ))
v.append( f.read( w/2 ))
u= ''.join(u)
v= ''.join(v)
# Open overlay with the resolution specified
ovl= pygame.Overlay(pygame.YV12_OVERLAY, (w,h))
ovl.set_location(0, 0, w, h)
ovl.display((y,u,v))
while 1:
pygame.time.wait(10)
for ev in pygame.event.get():
if ev.type in (pygame.KEYDOWN, pygame.QUIT):
return
def show (image):
screen = pygame.display.get_surface()
screen.fill ((255, 255, 255))
screen.blit (image, (0, 0))
pygame.display.flip ()
while 1:
event = pygame.event.wait ()
if event.type == pygame.QUIT:
raise SystemExit
if event.type == pygame.MOUSEBUTTONDOWN:
break
def process_events(self):
""" Processes mouse events and quit event """
for event in pygame.event.get():
if event.type == pygame.QUIT:
self.stopped = True
self.render_thread.join()
self.game_controller.cleanup()
sys.exit()
elif event.type == pygame.MOUSEBUTTONUP:
self.process_mouse_event(False, self.is_double_click())
elif event.type == pygame.MOUSEBUTTONDOWN:
self.process_mouse_event(True)
def check_events(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets):
"""?????????"""
for event in pygame.event.get():
if event.type == pygame.QUIT:
stats.save_high_score()
sys.exit()
elif event.type == pygame.KEYDOWN:
check_keydown_events(event, ai_settings, screen, stats,sb, ship, aliens, bullets)
elif event.type == pygame.KEYUP:
check_keyup_events(event, ship)
elif event.type == pygame.MOUSEBUTTONDOWN:
mouse_x, mouse_y = pygame.mouse.get_pos()
check_play_button(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets, mouse_x, mouse_y)
def Update(self):
events = pygame.event.get()
for event in events:
if event.type == pygame.QUIT:
sys.exit()
for button in self.Buttons:
res = button.Update(events)
if (res != button):
return res
return self
def Update(self):
events = pygame.event.get()
for event in events:
if event.type == pygame.QUIT:
sys.exit()
for button in self.Buttons:
res = button.Update(events)
if (res != button):
return res
return self
def __init__(self, width, height):
self.Width = width
self.Height = height
self.Image = pygame.image.load(os.path.join('project2/euromast_illustratie_02.jpg'))
self.Buttons = [Button("PLAY", 250, 40, lambda : game.Game().program_loop()),
#Button("LOAD SAVE GAME", 250, 80, lambda: [game.Game().program_loop(), other.SaveGame.load()]),
Button("INSTRUCTIONS", 250, 110, lambda : InstructionMenu(width, height)),
Button("HIGH SCORE", 250, 180, lambda : HighScoreMenu(width, height)),
Button("QUIT", 250, 250, lambda : sys.exit())]
def Update(self):
events = pygame.event.get()
for event in events:
if event.type == pygame.QUIT:
sys.exit()
for button in self.Buttons:
res = button.Update(events)
if (res != button):
return res
return self
def process_events():
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
return False
# Main game logic
def _quit_cb(self, data=None):
self.__stopped = True
pygame.event.post(pygame.event.Event(pygame.QUIT))
def check_events(settings, screen, tile_map):
"""Watch for keyboard and mouse events"""
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
check_keydown_events(settings, event, screen, tile_map)
elif event.type == pygame.KEYUP:
check_keyup_events(settings, event, screen, tile_map)
def main_loop(self, callback=None, run_once=False):
while True:
for e in pg.event.get():
if e.type == pg.QUIT:
sys.exit()
if callback:
self.data = callback()
self.update()
if run_once:
sys.exit()
def keyboard_loop(self):
while not rospy.is_shutdown():
acc = 0
yaw = 0
keys = pygame.key.get_pressed()
for event in pygame.event.get():
if event.type==pygame.QUIT:sys.exit()
if(keys[pygame.K_s]):
self.send_highway_start(1)
if(keys[pygame.K_t]):
self.send_highway_start(2)
if(keys[pygame.K_UP]):
acc = self.acc
elif(keys[pygame.K_DOWN]):
acc = -self.acc
if(keys[pygame.K_LEFT]):
yaw = self.yaw
elif(keys[pygame.K_RIGHT]):
yaw = -self.yaw
if(keys[pygame.K_r]):
state = 1
self.send_record_state(state)
elif(keys[pygame.K_q]):
state = 2
self.send_record_state(state)
elif(keys[pygame.K_p]):
state = 0
self.send_record_state(state)
self.send_control(acc, yaw)
self.rate.sleep()