代码
功能: 实现记录鼠标和键盘事件,并写入record.txt文件中
import pygame import sys pygame.init() # 初始化Pygame size = width, height = 800, 600 screen = pygame.display.set_mode(size) # 创建窗口 pygame.display.set_caption("初次见面,请大家多多关照!") # 创建窗口名字 f = open("record.txt", "w") # 创建文件,写入形式 while True: for event in pygame.event.get(): # 迭代每一个事件 f.write(str(event) + "\n") # 将每一个事件写入文件,以换行符隔开 if event.type == pygame.QUIT: # ×掉窗口 f.close() # 关闭文件 sys.exit() # 退出
生成的文件:
事件
功能: 现在把事件在屏幕上显示
import pygame import sys pygame.init() # 初始化Pygame size = width, height = 800, 600 # 窗口大小 screen = pygame.display.set_mode(size) # 画出窗口 pygame.display.set_caption("窗口名字") # 创建窗口名字 bg = (0, 0, 0) # 背景颜色,黑色 position = 0 # 初始化,第0行 # 实例化font对象,None为字体即默认字体,20位字号 font = pygame.font.Font(None, 20) screen.fill(bg) # 填充背景颜色,刷成黑色 line_height = font.get_linesize() # 获取行高 while True: for event in pygame.event.get(): # 迭代每一个事件 if event.type == pygame.QUIT: sys.exit() # 退出 """render方法渲染对象,第一个参数为要渲染的文本,第二个True为是否消除锯齿, 第三个为颜色,绿色, (0, position)为位置""" screen.blit(font.render(str(event), True, (0, 255, 0)), (0, position)) position += line_height if position > height: # 如果大于整个屏幕的宽度 position = 0 # 清零 screen.fill(bg) # 清屏 pygame.display.flip() # 更新界面
**功能:**让表情包受控制,即不止一个事件
让图像受到上下左右键控制
import pygame import sys pygame.init() # 初始化Pygame size = width, height = 800, 600 speed = [-2, 1] bg = (255, 255, 255) # RGB # 实例化Pygame 的time 模块的 Clock 对象 clock = pygame.time.Clock() # 设置帧率的话需要这个 # 创建指定大小的窗口 Surface screen = pygame.display.set_mode(size) # 设置窗口标题 pygame.display.set_caption("初次见面,请大家多多关照!") # 加载图片 turtle = pygame.image.load("18.gif") # 获得图像的位置矩形 position = turtle.get_rect() l_head = turtle # 原图像 r_head = pygame.transform.flip(turtle, True, False) # 翻转后图像 while True: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() if event.type == pygame.KEYDOWN: # 所有按下的键 if event.key == pygame.K_LEFT: # 按下方向键左键 turtle = l_head # 向左掉头,翻转图像 speed = [-1, 0] # X减1 if event.key == pygame.K_RIGHT: # 按下方向键右键 turtle = r_head # 向右调头 speed = [1, 0] # X加1 if event.key == pygame.K_UP: # 按下方向键上键 speed = [0, -1] # Y减1 if event.key == pygame.K_DOWN: # 按下方向键下键 speed = [0, 1] # Y加1 # 移动图像 position = position.move(speed) if position.left < 0 or position.right > width: # 翻转图像 turtle = pygame.transform.flip(turtle, True, False) # 水平翻转,垂直不翻转 # 反方向移动 speed[0] = -speed[0] if position.top < 0 or position.bottom > height: speed[1] = -speed[1] # 填充背景 screen.fill(bg) # 更新图像 screen.blit(turtle, position) # 更新界面 pygame.display.flip() # 延迟10毫秒 pygame.time.delay(10) # 设置帧率 #clock.tick(200)