首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Easy Games With Python and Pygame(三)- Pygame Event

只有有按键按下或者鼠标点击都会发生事件,这个事件会存储在队列中等待处理 键盘事件 键盘事件包括KEYUP和KEYDOWN,KEYUP表示松开键盘按键,KEYDOWN表示按下键盘按键,Escape是默认的退出键...() pygame.quit() 这段代码实现了一个外星人可以在窗口中不断的移动反弹 我们可以增加一个键盘事件处理器,当按下上方向键或者下方向键时外星人可以上下移动,也就是说需要检测KEYDOWN事件并且检测按键是上方向键还是下方向键...() 再次重新启动程序,使用上下方向键操作 但是这里还要一个问题,就是当持续按住下方向键时,外星人只会往下移动一次,我们期望的是当连续按下时,外星人可以连续移动,在Pygame中按键一直按下会生成多个...是告诉pygane在开始按键重复之前等待多长事件,interval是告诉pygame以多块的速度重复,也就是说重复的各个KEYDOWN事件之间要间隔多长时间,单位都是毫秒 Pygame Event 处理...QUIT KEYDOWN KEYUP MOUSEMOTION MOUSEBUTTONUP MOUSEBUTTONGDOWN pygame还给键盘中的按键做了命名,这些都在pygame.locals中,

1.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    用 Python 制作飞机大战小游戏

    控制小飞机移动 当用户按键时,都会在pygame中注册一个事件,任何一个事件都是通过pygame.event.get()获取的,因此可以在函数体内,为每个按键都注册一个KEYDOWN事件。...# 小飞机往又移动 plane.rect.centerx += 1 现在按一下小飞机移动一个像素,一般的游戏都是通过按下不送则一直移动,Pygame中的pygame.KEYUP...可以检测用户是否松开按键 现在结合KEYDOWN和KEYUP来完成一个持续移动 控制小飞机持续移动 来定义一个标志位,来判断用户是否按下按键,默认为Flase一旦检测到用户按下俺家则为True,小飞机就可以持续移动...== pygame.KEYDOWN: check_keydown_events(event, plane) elif event.type == pygame.KEYUP...elif event.type == pygame.KEYUP: check_keyup_events(event, plane) def update_screen(screen

    4.3K20

    pygame-游戏开发学习笔记(三)–event事件捕捉

    上一个程序,会一直运行下去,直到你关闭窗口而产生了一个QUIT事件,Pygame会接受用户的各种操作(比如按键盘,移动鼠标等)产生事件。...下表是一个 常用事件集: 事件 产生途径 参数 QUIT 用户按下关闭按钮 none ATIVEEVENT Pygame被激活或者隐藏 gain, state KEYDOWN 键盘被按下 unicode..., key, mod KEYUP 键盘被放开 key, mod MOUSEMOTION 鼠标移动 pos, rel, buttons MOUSEBUTTONDOWN 鼠标按下 pos, button MOUSEBUTTONUP...处理键盘事件 键盘和游戏手柄的事件比较类似,为KEYDOWN和KEYUP,下面有一个例子来演示使用方向键移动一些东西。...== QUIT: exit() if event.type == KEYDOWN: #开始检测,是否按键下面的很直观就是表现移动值

    1.6K10

    手把手教你用python写游戏「建议收藏」

    安装pygame并创建能左右移动的飞船 安装pygame 本人电脑是windows 10、python3.6,pygame下载地址:传送门 请自行下载对应python版本的pygame 运行以下命令...响应按键 因为在pygame中,每次按键都被注册为KEYDOWN事件,在check_events()中,我们通过event.type检测到KEYDOWN事件后还需进一步判断是哪个按键。...= pygame.KEYUP: if event.key = pygame.K_RIGHT: ship.moving_right = False 最后在alien_invasion中调用update...重构 这里我们主要讲check_events()函数进行重构,将其中部分代码分成两部分,一部分处理KEYDOWN事件,一部分处理KEYUP事件。...() elif event.type == pygame.KEYDOWN: check_keydown_events(event,ship) elif event.type == pygame.KEYUP

    1.7K21

    手把手教你用python写游戏

    安装pygame并创建能左右移动的飞船  安装pygame  本人电脑是windows 10、python3.6,pygame下载地址:传送门  请自行下载对应python版本的pygame  运行以下命令...响应按键  因为在pygame中,每次按键都被注册为KEYDOWN事件,在check_events()中,我们通过event.type检测到KEYDOWN事件后还需进一步判断是哪个按键。...= True         elif event.type == pygame.KEYUP:             if event.key = pygame.K_RIGHT:                ...重构  这里我们主要讲check_events()函数进行重构,将其中部分代码分成两部分,一部分处理KEYDOWN事件,一部分处理KEYUP事件。 ...:             check_keydown_events(event,ship)         elif event.type == pygame.KEYUP:             check_keyup_events

    1.1K20

    手把手教你使用Pygame制作飞机大战小游戏,4万字超详细讲解!

    # 小飞机往又移动 plane.rect.centerx += 1 现在按一下小飞机移动一个像素,一般的游戏都是通过按下不送则一直移动,Pygame中的pygame.KEYUP...可以检测用户是否松开按键 现在结合KEYDOWN和KEYUP来完成一个持续移动 控制小飞机持续移动 来定义一个标志位,来判断用户是否按下按键,默认为Flase一旦检测到用户按下俺家则为True,小飞机就可以持续移动...check_keydown_events(event, plane) elif event.type == pygame.KEYUP: check_keyup_events...elif event.type == pygame.KEYUP: check_keyup_events(event, plane) def update_screen(screen...elif event.type == pygame.KEYUP: check_keyup_events(event, plane) elif event.type

    6.1K10

    手把手教你使用Pygame制作飞机大战小游戏,4万字超详细讲解!

    # 小飞机往又移动 plane.rect.centerx += 1 现在按一下小飞机移动一个像素,一般的游戏都是通过按下不送则一直移动,Pygame中的pygame.KEYUP...可以检测用户是否松开按键 现在结合KEYDOWN和KEYUP来完成一个持续移动 控制小飞机持续移动 来定义一个标志位,来判断用户是否按下按键,默认为Flase一旦检测到用户按下俺家则为True,小飞机就可以持续移动...check_keydown_events(event, plane) elif event.type == pygame.KEYUP: check_keyup_events...elif event.type == pygame.KEYUP: check_keyup_events(event, plane) def update_screen(screen...elif event.type == pygame.KEYUP: check_keyup_events(event, plane) elif event.type

    12K30

    Python之pygame学习键盘事件操作(9)

    pygame键盘事件操作 ✕ 什么是事件呢?按下键盘某个按键,鼠标移动,包括点击关闭按钮都可以算是事件操作。 ?...我们来说下键盘操作 elif event.type == pygame.KEYDOWN : if event.key == pygame.K_UP: y -= 1 在事件中判断类型是否是...pygame.KEYDOWN 判断键位是否是我们需要的那个键位 执行对应的操作 但是上面这中操作有个问题就是,我们每次按下这个键之后只能执行一次操作; 我们要移动对象的时候想要按下后连续移动,...按下和释放键盘按钮时,事件队列获取pygame.KEYDOWN和pygame.KEYUP事件。两个事件都有一个键属性,它是表示键盘上每个键的整数ID。...pygame.KEYDOWN。该属性text包含输入。 有许多键盘常量,它们用于表示键盘上的键。

    16.2K30

    关于“Python”的核心知识点整理大全33

    注意 如果在循环内部创建这样的编组,游戏运行时将创建数千个子弹编组,导致游戏慢得像 蜗牛。如果游戏停滞不前,请仔细查看主while循环中发生的情况。...我们无需修改check_keyup_events(),因为玩家松开空格键时什么都不会发生。我们 还需修改update_screen(),确保在调用flip()前在屏幕上重绘每颗子弹。...(): --snip-- elif event.type == pygame.KEYDOWN: check_keydown_events(event, ai_settings, screen, ship...如果此时运行alien_invasion.py,将能够左右移动飞船,并发射任意数量的子弹。子弹在屏 幕上向上穿行,抵达屏幕顶部后消失,如图12-3所示。...;如何在屏幕上绘制图像, 以及如何让玩家控制游戏元素的移动;如何创建自动移动的元素,如在屏幕中向上飞驰的子弹, 以及如何删除不再需要的对象;如何定期重构项目的代码,为后续开发提供便利。

    14410
    领券