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('按键弹起!')

你可能感兴趣的:(pygame中的事件)