学习小甲鱼的第81个视频---pygame事件

简介: 学习小甲鱼的第81个视频---pygame事件

代码


功能: 实现记录鼠标和键盘事件,并写入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)



推荐阅读博客


博客一

目录
相关文章
|
7月前
|
Python
python小项目之利用pygame实现代码雨动画效果(附源码 可供学习)
python小项目之利用pygame实现代码雨动画效果(附源码 可供学习)
206 1
|
安全 Shell Python
14天学习训练营之 初识Pygame
14天学习训练营之 初识Pygame
180 1
14天学习训练营之 初识Pygame
|
Python
python pygame 愤怒的小鸟 (学习阶段-感谢支持)
python pygame 愤怒的小鸟 (学习阶段-感谢支持)
256 0
python pygame 愤怒的小鸟 (学习阶段-感谢支持)
|
编解码 Python
14天学习训练营之 入门Pygame
14天学习训练营之 入门Pygame
118 0
14天学习训练营之 入门Pygame
|
Python
学习小甲鱼的第79个,第80个视频----pygame初见
学习小甲鱼的第79个,第80个视频----pygame初见
100 0
学习小甲鱼的第79个,第80个视频----pygame初见
|
Python 容器
【pygame学习+实战】第二篇:怀旧——飞机大战
我第一次见到飞机大战是在我小学五年级下半学期的时候(2020年),这个游戏中可以说包含了几乎所有我目前可接触到的pygame知识。
|
25天前
|
JSON 开发工具 git
基于Python和pygame的植物大战僵尸游戏设计源码
本项目是基于Python和pygame开发的植物大战僵尸游戏,包含125个文件,如PNG图像、Python源码等,提供丰富的游戏开发学习素材。游戏设计源码可从提供的链接下载。关键词:Python游戏开发、pygame、植物大战僵尸、源码分享。
|
4月前
|
定位技术 Python
【python】python基于pygame坦克大战游戏设计(源码+图像+操作说明)【独一无二】
【python】python基于pygame坦克大战游戏设计(源码+图像+操作说明)【独一无二】
|
4月前
|
Linux iOS开发 MacOS
【Python】Python基于Pygame疯狂赛车游戏设计(源码+报告)【独一无二】
【Python】Python基于Pygame疯狂赛车游戏设计(源码+报告)【独一无二】
106 1
|
4月前
|
Python
【python】python基于pygame弹珠游戏设计(源码)【独一无二】
【python】python基于pygame弹珠游戏设计(源码)【独一无二】