1、理解事件
import pygame
pygame.init()
SCREEN_SIZE = (640, 480)
screen = pygame.display.set_mode(SCREEN_SIZE, 0, 32)
font = pygame.font.SysFont("arial", 16);
font_height = font.get_linesize()
event_text = []
while True:
event = pygame.event.wait()
event_text.append(str(event))
#获得时间的名称
event_text = event_text[-SCREEN_SIZE[1]//font_height:]
#这个切片操作保证了event_text里面只保留一个屏幕的文字
if event.type == pygame.QUIT:
pygame.quit()
break
screen.fill((255, 255, 255))
y = SCREEN_SIZE[1]-font_height
#找一个合适的起笔位置,最下面开始但是要留一行的空
for text in reversed(event_text):
screen.blit( font.render(text, True, (0, 0, 0)), (0, y) )
#以后会讲
y-=font_height
#把笔提一行
pygame.display.update()
background_image_filename = 'sushiplate.jpg'
close = False
import pygame
#from pygame.locals import *
from sys import exit
pygame.init()
screen = pygame.display.set_mode((640, 480), 0, 32)
background = pygame.image.load(background_image_filename).convert()
x, y = 0, 0
#move = {pygame.K_LEFT:0, pygame.K_RIGHT:0, pygame.K_UP:0, pygame.K_DOWN:0}
move_x, move_y = 0, 0
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit
close = True
elif event.type == pygame.KEYDOWN:
#键盘有按下?
if event.key == pygame.K_LEFT:
#按下的是左方向键的话,把x坐标减一
move_x = -1
elif event.key == pygame.K_RIGHT:
#右方向键则加一
move_x = 1
elif event.key == pygame.K_UP:
#类似了
move_y = -1
elif event.key == pygame.K_DOWN:
move_y = 1
elif event.type == pygame.KEYUP:
# #如果用户放开了键盘,图就不要动了
move_x = 0
move_y = 0
# 如果不break系统会报error: display Surface quit
if close == True:
break
#计算出新的坐标
x+= move_x
y+= move_y
screen.fill((0,0,0))
screen.blit(background, (x,y))
#在新的位置上画图
pygame.display.update()
"""
while True:
for event in pygame.event.get():
# if event.type == QUIT:
# exit()
if event.type == pygame.KEYDOWN:
if event.key in move:
move[event.key] = 1
elif event.type == pygame.KEYUP:
if event.key in move:
move[event.key] = 0
x -= move[pygame.K_LEFT]
x += move[pygame.K_RIGHT]
y -= move[pygame.K_UP]
y += move[pygame.K_DOWN]
screen.fill((0,0,0))
screen.blit(background, (x,y))
pygame.display.update()
"""
# 会导致系统卡顿
# event_quit = pygame.event.poll()
# if event_quit.type == pygame.QUIT:
# pygame.quit()
# exit
# break