pygame中的事件

import pygame
from color import Color
from random import randint

游戏中的事件:

1.鼠标相关的事件

MOUSEBUTTONDOWN - 鼠标按下
MOUSEBUTTONUP - 鼠标弹起
MOUSEMOTION - 鼠标移动

鼠标事件要关注事件发生的位置: event.pos - 鼠标的坐标,元祖

2.键盘事件

KEYDOWN
KEYUP

键盘事件要关注哪个键被按了:event.key - 按键对应的字符的编码, 数字

def main():
    pygame.init()
    window = pygame.display.set_mode((400, 600))
    pygame.display.set_caption('事件')
    window.fill(Color.white)

    pygame.display.flip()
    is_move = False
    while True:

        # 不断检测是否有事件产生,如果有事件产生才会进入for循环
        for event in pygame.event.get():
            # 这儿的event是事件对象,我们可以通过事件对象的type值来判断事件的类型
            #==================鼠标事件===================
            if event.type == pygame.QUIT:
                exit()
            elif event.type == pygame.MOUSEBUTTONDOWN:
                # 鼠标按下要做什么,就将代码写这个if语句中
                print('鼠标按下', event.pos)
                # pygame.draw.circle(window, Color.random_color(), event.pos, randint(10, 20))
                # pygame.display.update()
                is_move = True
            elif event.type == pygame.MOUSEBUTTONUP:
                # 鼠标弹起要做什么,就将代码写这个if语句中
                print('鼠标弹起')
                is_move = False
            elif event.type == pygame.MOUSEMOTION:
                # 鼠标移动要做什么, 就将代码写这个if语句中
                if is_move:
                    pygame.draw.circle(window, Color.random_color(), event.pos, 20)
                    pygame.display.update()
                    print('鼠标移动')

            # ================键盘事件=================
            if event.type == pygame.KEYDOWN:
                print('按键被按下')
                print(event.key, chr(event.key))
            elif event.type == pygame.KEYUP:
                print('按键弹起!')
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1recode 1.json数据json数据的要求:a.一个json对应一个数据b.json中的数据一定是json...
    大漠判官1阅读 2,999评论 0 0
  • 复习: 1.json数据 json数据的要求:a.一个json对应一个数据b.json中的数据一定是json支持的...
    大黄蜂人工智能阅读 2,972评论 0 1
  • 1.抽象类和抽象方法 抽象类:只能被继承,不能实例化(不能创建对象)抽象方法:声明的时候不用实现。在子类中必须去重...
    hfudhu阅读 1,261评论 0 0
  • 1.recode 1.json数据json数据的要求:a.一个json对应一个数据b.json中的数据一定是jso...
    芽菜包66阅读 1,684评论 0 0
  • 叶落知秋浓,乾乾意其中 一秋一捆扎,三季无落空 秋黄更白首,春夏替隆冬 余生不解落,何来二月红
    枫林醉晚阅读 3,138评论 0 3

友情链接更多精彩内容