pygame

pygame 事件处理机制

事件处理需求:响应用户键盘、鼠标等外设操作、响应屏幕尺寸和模式变化、响应游戏情节的特定触发条件等等
键盘事件
event.type有pygame.KEYDOWN和pygame.UP事件
一旦事件发生就会返回event.unicode event.key event.mod这三个值,分别是键盘的unicode码,对应的按键值,和pygame.K_ALT | pygame.K_SHIFT的值

import pygame
import sys
pygame.init()       # 第一部分 游戏包导入 及 游戏初始化
pygame.display.set_mode((600,400))
pygame.display.set_caption("Pygame 事件处理")

while True:         #第二部分 进去消息循环、事件监听、 及 界面刷新
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
        elif event.type == pygame.KEYDOWN:
            if event.unicode == '':
                print('[KEYDOWN]:','#',event.key,event.mod)
            else:
                print('[KEYDOWN]:',event.unicode,event.key,event.mod)


    pygame.display.update()

鼠标事件
一下事件返回这些参数
MOUSEBUTTONUP:event.pos,event.button)
MOUSEBUTTONDOWN:event.pos, event.button)
MOUSEMOTION:event.pos, event.rel,event.buttons)

其中pos是绝对位置 就是笛卡尔坐标系的位置 ,
button是鼠标状态,1表示左键按下,2表示右键按下,3表示滚轮键按下,
rel 是现在事件的位置减上一个事件的位置的坐标的差值,
buttons也是鼠标状态,返回的是元组(1,0,0)表示左键按下(0,0,1)表示右键按下(0,1,0)表示滚轮键按下.

import pygame
import sys
pygame.init()       # 第一部分 游戏包导入 及 游戏初始化
pygame.display.set_mode((600,400))
pygame.display.set_caption("Pygame 事件处理")

while True:         #第二部分 进去消息循环、事件监听、 及 界面刷新
    for event in pygame.event.get():

        if event.type == pygame.QUIT:
            sys.exit()
        elif event.type == pygame.KEYDOWN:
            if event.unicode == '':
                print('[KEYDOWN]:','#',event.key,event.mod)
            else:
                print('[KEYDOWN]:',event.unicode,event.key,event.mod)

        if event.type == pygame.MOUSEBUTTONUP:
            print('[MOUSEBUTTONUP]:',event.pos,event.button)
        if event.type == pygame.MOUSEBUTTONDOWN:
            print('[MOUSEBUTTONDOWN]:',event.pos, event.button)
        if event.type == pygame.MOUSEMOTION:
            print('[MOUSEMOTION]:', event.pos, event.rel,event.buttons)
    pygame.display.update()

;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值