pygame用户自定义事件

事件相关函数

  • pygame.event,get()
    从事件队列中获取事件列表,即获得所有被队列的事件
    增加参数,获得某类或某些类事件
    pygame.event.get(type)
    pygame.event.get(typelist)
  • pygame.event,poll()
    从事件队列中获得一个事件
    时间获取将从事件队列中删除,如果事件队列为空,则返回event.NOEVENT
  • pygame.event,post(Event)
    产生一个事件,并将其放入事件队列
    一般用于放置用户自定义事件(pygame.USEREVENT)
    也可以用于放置系统定义事件(如鼠标键盘等),给定参数
  • pygame.event,Event(type, dict)
    创建一个给定类型的事件
    其中,事件的属性和值采用字典类型复制,属性名采用字符串形式
    如果创建已有事件,属性需要一致

自定义方法

确定触发条件

首先,要确定什么时候触发,当达到触发条件,将事件加入事件队列

增加事件

新建事件

使用到的方法pygame.event,Event(type, dict)

  • 参数说明
    • type:参数的类型,所有的事件类型都是个整数类型
    • dict:一个字典,这个事件的一些参数

将事件加入事件队列

使用方法pygame.event,post(Event)
在新建事件中,会返回一个Event对象,使用这个方法将这个对象加入事件队列

事件获取

使用pygame.event,get()方法获取事件队列的列表,

for event in pygame.event.get():
        if event.type == pygame.USEREVENT:
            sys.exit()

简易代码

import pygame
from sys import exit

pygame.init()
size = (600, 400)
screen = pygame.display.set_mode(size)
pygame.display.set_caption("用户自定义事件")
while True:
    mouse_pos = pygame.mouse.get_pos()
    #设置事件触发类型
    MY_EVENT = pygame.USEREVENT + 1
    #设置事件触发条件:鼠标移动到指定区域
    if 225 < mouse_pos[0] < 375 and 150 < mouse_pos[1] < 250:
        #增加一个事件
        my_event = pygame.event.Event(MY_EVENT, {"message": "事件触发"})
        #将这个事件加入到事件队列
        pygame.event.post(my_event)
    for event in pygame.event.get():
        #查看事件类型
        if event.type == MY_EVENT:
            #打印
            print(event.message)
        if event.type == pygame.QUIT:
            exit()

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
玩法 1)不设过关卡的设置,砖块是一层层压下来的,随着时间或者分数的推移,压的速度变快,每一层生成的砖的均衡的生命值在不断的提高,记录玩家所获得的最高分。 2)两边的墙会随着玩家分数的提高,逐步的变软,最终消失。消失的时候两边的墙会变成两块挡板,也需要玩家的控制,当球在左右两边没有接住的时候,损失生命值。 3)挡板也是有生命的,随着球的不断的打击,挡板的生命值也在不断的减少,需要补充道具掉下来的生命值,不然也会死亡。(现在不处理) 4)球有三种能量类型,火球,冰球,电球,相对应,挡板也有三种类型。每种类型对砖和挡板造成的伤害会不同,例如火球是一种范围伤害,冰球可以降低挡板移动的速度。(还是设想) 挡板三种能量类型有不同的性质,挡板可以吃道具变形(或者特定分数强制变形)。 火球能量类型的挡板的速度,加速度,摩擦力都比较适中,容易控制,但是生命最大值比较小。 冰球能量类型的挡板的加速度,摩擦力,最大的速度都很大,虽然不容易控制,但是生命值最大。 电球能量类型的挡板的加速度,和最大速度都是最大的,摩擦力比较小,很容易达到非常快的速度,适合与喜欢高速的玩家。 挡板吃到掉落的物品能够改变能量类型,球落到挡板上的时候改变成同样的能量类型。 6)物品能够改变生命值,加速度和能量类型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值