zoukankan      html  css  js  c++  java
  • Pygame

    pygame.init()   #初始化pygame,为使用硬件做准备
    screen=pygame.display.set_mode((640,480),0,32)   #创建了一个窗口,set_mode会返回一个Surface对象,代表了在桌面上出现的那个窗口,三个参数第一个为元祖,代表分 辨率(必须);第二个是一个标志位,如果不用什么特性,就指定0;第三个为色深。当我们把第二个参数设置为FULLSCREEN时,就能得到一个全屏窗口了
    pygame.display.set_caption("Hello, World!")   #设置窗口标题
    background=pygame.image.load(background_image_filename).convert()   #加载并转换图像
    mouse_cursor=pygame.image.load(mouse_image_filename).convert_alpha()   #加载并转换图像,图像要有有Alpha通道,保留了Alpha 通道信息(可以简单理解为透明的部分)
    screen.blit(background,(0,0))     #将背景图画上去,blit是个重要函数,第一个参数为一个Surface对象,第二个为左上角位置。
    x,y=pygame.mouse.get_pos()    #获得鼠标位置
    ygame.display.update()    #刷新一下画面,画完以后一定记得用update更新一下,否则画面一片漆黑。
     
    event=pygame.event.wait()    #等待事件发生,获得事件的名称

    处理鼠标事件

    MOUSEMOTION事件会在鼠标动作的时候发生,它有三个参数:

    • buttons – 一个含有三个数字的元组,三个值分别代表左键、中键和右键,1就是按下了。
    • pos – 就是位置了……
    • rel – 代表了现在距离上次产生鼠标事件时的距离

    和MOUSEMOTION类似的,我们还有MOUSEBUTTONDOWNMOUSEBUTTONUP两个事件,看名字就明白是什么意思了。很多时候,你只需要知道鼠标点下就可以了,那就可以不用上面那个比较强大(也比较复杂)的事件了。它们的参数为:

    • button – 看清楚少了个s,这个值代表了哪个按键被操作
    • pos – 和上面一样

    处理键盘事件

    键盘和游戏手柄的事件比较类似,为KEYDOWNKEYUP,下面有一个例子来演示使用方向键移动一些东西。

    KEYDOWN和KEYUP的参数描述如下:

    • key – 按下或者放开的键值,是一个数字,估计地球上很少有人可以记住,所以Pygame中你可以使用K_xxx来表示,比如字母a就是K_a,还有K_SPACEK_RETURN等。
    • mod – 包含了组合键信息,如果mod & KMOD_CTRL是真的话,表示用户同时按下了Ctrl键。类似的还有KMOD_SHIFTKMOD_ALT
    • unicode – 代表了按下键的Unicode值,这个有点不好理解,真正说清楚又太麻烦,游戏中也不太常用,说明暂时省略,什么时候需要再讲吧。

    过滤掉一些我们不感兴趣的事件:pygame.event.set_blocked(事件名)

    与之相对的,我们使用pygame.event.set_allowed()来设定允许的事件。

    产生时间

    my_event=pygame.event.Event(KEYDOWN,key=K_SPACE,mod=0,unicode=u' ')
    #你也可以像下面这样写,看起来比较清晰(但字变多了……)
    my_event=pygame.event.Event(KEYDOWN,{"key":K_SPACE,"mod":0,"unicode":u' '})
    pygame.event.post(my_event)
    pygame.display.update()是将数据画到前面显示,而pygame.display.flip()是交替显示的意思。
  • 相关阅读:
    在Repeater的FooterTemplate显示某列总计
    对数据库数据操作,工厂方法设计模式(Factory Method)
    网页(aspx)与用户控件(ascx)交互与逻辑处理
    使用反射把用户控件(ASCX)传至网页(ASPX)
    软件研发公司,外观设计模式(Facade)
    看菜谱点餐,迭代设计模式(Iterator)
    There is not enough space on the disk.
    站点某些网页想显示母版页内的用户控件,某些网页不想显示,怎样实现
    C#反射(Reflection)对类的属性get或set值
    MS access 数据定时导入MS SQL Server
  • 原文地址:https://www.cnblogs.com/chengxuyuandashu/p/3751822.html
Copyright © 2011-2022 走看看