zoukankan      html  css  js  c++  java
  • pygame模块参数汇总(python游戏编程)

    一、Helloworld

    1 pygame.init()     #初始函数,使用pygame的第一步;
    2 pygame.display.set_mod((600,500),0,32)     #生成主屏幕screen;第一个参数是屏幕大小,第二个0表示不使用特性,可用FULLSCREEN,RESIZEBLE,NOFRAME,DOUBLEBUF(双缓冲,使用时需用pygame.display.flip()来刷新屏幕)等替换,32表示色深;
    3 pygame.display.set_caption("string")     #命名
    4 pygame.display.update()        #刷新
    5 pygame.display.list_modes()        #查看本地显示器支持的分辨率;
    6 screen.fill(0,0,0)        #填充

    二、绘图

    pygame.draw.rect(surface,color,Rect,width=0) 画一个矩形,Rect为两个坐标元组的元组

    (一)rect(矩形)参数属性

     1 r.left         左边x坐标的整数值
     2 r.right        右边x坐标的整数值
     3 r.top         顶部y坐标的整数值
     4 r.bottom      底部y坐标的整数值
     5 r.centerx      中央x坐标整数值
     6 r.centery      中央y坐标整数值
     7 r.width        宽度
     8 r.height       高度
     9 r.size         即元组(width,height)
    10 r.topleft      (left,top)
    11 r.topright     (right,top)
    12 r.bottomleft   (left,bottom)
    13 r.bottomright  (right,bottom)
    14 r.midleft      (left,centery)
    15 r.midright     (right,centery)
    16 r.midtop       (centerx,top)
    17 r.midbottom    (centerx,bottom)

    (二)其他形状

    1 pygame.draw.polygon(surface,color,pointlist,width=0)    多边形
    2 pygame.draw.circle(surface,color,pos,radius,width=0)      圆
    3 pygame.draw.ellipse(surface,color,Rect,width=0)         椭圆
    4 pygame.draw.arc(surface,color,Rect,start_angle,stop_angle,width=1) 圆弧
    5 pygame.draw.line(surface,color,start_pos,end_pos,width=1)    直线;
    6 pygame.draw.lines(surface,color,closed,pointlist,width=1)     closed为一bool值,表示是否封闭;
    7 pygame.draw.aaline(surface,color,start_pos,end_pos,width=1)    一根平滑的线;
    8 pygame.draw.aalines(surface,color,closed,pointlist,width=1)    一系列平滑的线;

    (三)font(以图形模式输出文本)

    1 pygame.font.Font("字体","字号",*)
    2 my_font.render(text,True,(255,255,255))        使用已有的文本创建一个位图image,返回值为一个image;对于位图可用get_height(),get_width()的方法获得高与宽;True表示是否抗锯齿,第三个为字体颜色,还可以有第四个为背景色,没有时就为默认的透明;
    3 Font()       使用的是字体文件,要使用系统中的字体需用SysFont(),但一些中文扩展的字体不是很好用。
    4 screen.blit(image,(100,100))             将位图绘制到屏幕上,screen为建立的主屏;
    5 pygame.font.get_fonts()           查看当前系统所有可使用的字体

    三、图片处理

    pygame支持的图片格式有:JPEG,PNG,GIF,BMP,PCX,TGA,TIF,LBM,PBM,XPM

     1 pygame.image.load("图片路径").conver()        将图片处理为surface对象,如果使用conver_alpha()则保留了Alpha通道信息(可透明),使用时用blit()函数来添加到显示屏
     2 pygame.Surface((250,250),flags,depth)        创建一个surface对象,如果不指定尺寸则会创建和屏幕一样大小;flags为可选,有SRCALPHA(保留Alpha通道)、HWSURFACE(优化)两个选择,depth为色深;
     3 screen.subsurface((0,0),(80,80))           子表面对象;
     4 screen.set_at(pos,color)                   设置一个像素的色彩;
     5 screen.get_at(pos)                        获取某一像素的色彩,不过此操作的反应比较慢;
     6 pygame.transform.scale(surface,(width//2,height//2)    缩放图片
     7 pygame.transform.smoothscale(surface,(width,height)    缩放图片,比scale慢,但效果更好;
     8 pygame.sprite.Group()           精灵组,一个简单的实体容器;
     9 pygame.sprite.add(sprite)        添加精灵对象;
    10 pygame.sprite.update(ticks)        
    11 pygame.sprite.draw(screen)
    12 pygame.sprite.collide_rect(arrow,dragon)    冲突
    13 screen.set_clip(0,400,200,600)    设定裁剪区域;
    14 screen.get_clip()              获得裁剪区域

    四、事件event

    1 pygame.event.get()    获取事件的返回值,使用event.type == 进行区分
    2 pygame.event.wait()    等待发生一个事件才会继续下去;
    3 pygame.event.poll()    会根据现在的情形返回一个真实的事件
    4 pygame.event.set_blocked(事件名)    过滤
    5 pygame.event.set_allowed() 允许事件

     自定义事件

    1 my_event = pygame.event.Event(KEYDOWN,key=K_SPACE,mod=0,unicode=u' ')
    2 pygame.event.post(my_event)

    pygame所有事件type

     1 QUIT             退出;
     2 ACTIVEEVENT     pygame被激活或隐藏;
     3 KEYDOWN         区分不同键 event.key == pygame.K_a,pygame使用keys=pygame.key.get_pressed()来轮询键盘接口,返回的是所有按下键值的元组;用keys[K_b]方式来核对键值;K_b也可以是键值Unicode码;如果mod & KMOD_CTRL为真的话表示同时按下Ctrl键;key.get_mods()组合键,key.set_repeat()重复事件;key.name()接受键值返回键名;
     4 KEYUP            按键放开
     5 MOUSEMOTION     含event.pos,event.rel,event.buttons属性,用mouse_x,mouse_y = event.pos进行确认,pygame.mouse.get_pos()返回鼠标的当前位置,pygame.mouse.get_rel()获取鼠标相对移动,pygame.mouse.get_pressed()返回按钮状态数组(鼠标三个键的状态)
     6 mouse.set_visible(False) 使鼠标不可见;
     7 event.set_grab(True)     使鼠标不会跑出窗口
     8 mouse.set_pos()          设置鼠标位置
     9 mouse.get_focused()      如果鼠标在pygame窗口内有效,返回True
    10 mouse.set_cursor()       设置鼠标默认光标式样;
    11 mouse.get_cursor()       获取鼠标默认光标式样;
    12 MOUSEBUTTONUP      鼠标放开
    13 MOUSEBUTTONDOWN    鼠标按下
    14 JOYAXISMOTION      x手柄移动
    15 JOYBALLMOTION      所有手机移动
    16 JOYHATMOTION       hat手柄移动
    17 JOYBUTTONUP        手柄按键放开
    18 JOYBUTTONDOWN      手柄按键按下
    19 VIDEORESIZE        窗口缩放;
    20 VIDEOEXPOSE        窗口部分公开;
    21 USEREVENT          触发了一个用户事件;

    五、异常捕捉

    1 try:
    2     screen = pygame.display.set_mode(SCREEN_SIZE)
    3 except pygame.error,e:
    4     print("Can't create the display :-(")
    5     print(e)
    6     exit()

     六、时间

    1 clock = pygame.time.Clock()    初始化一个clock对象
    2 clock.tick()     返回一个上次调用的时间,以毫秒为单位
    3 clock.tick(30)    控制游戏绘制的最大帧率为30

     七、声音

    (一)sound对象

    pygame.mixer.Sound("文件")  读取声音对象sound,格式只有wav和ogg两种;

    对象方法:

     1 fadeout()               淡出时间,可用参数为毫秒;
     2 get_lengh()            获得声音文件长度,以秒为单位;
     3 get_num_channels()        声音要播放的次数;
     4 play(loop,maxtime)        对读取的声音对象可执行播放操作,loop为-1表示无限循环,1表示重复两次,maxtime表示多少毫秒后结束;返回一个Channel对象,失败则返回None;
     5 set_volum()            设置音量;
     6 stop()                 停止播放;
     7 pygame.mixer.music          背景音乐处理方法
     8 pygame.mixer.music.load()    加载文件可为mp3和ogg格式;
     9 pygame.mixer.music.play()    播放
    10 pygame.mixer.music.stop()    停止,还有pause()和unpause()方法

    (二)Channels对象

    pygame.mixer.get_num_channels()    获取当前系统可同时播放的声道数;pygame中默认为8;

    对象方法:

     1 fadeout()        设置淡出时间
     2 get_busy()       如果正在播放,返回True;
     3 set_endevent()    设置播放完毕时要做的event;
     4 get_endevent()    获取播放完毕时要做的event,如果没有则返回None;
     5 get_queue()      获得队列中的声音,如果没有则返回None;
     6 set_volume()      设置音量;
     7 get_volume()      获得音量;
     8 pause()          暂停播放;
     9 unpause()        继续播放;
    10 play()           播放;
    11 stop()           停止播放;
    12 queue()          将一个Sound对象加入队列,在当前声音播放完毕后播放;
    13 set_num_channels() 自定义声道数;

    (三)music对象

    pygame.mixer.pre_init(frequency,size,stereo,buffer) 声音系统初始化,第一个为采样率,第二个为量化精度,第三为立体声效果,第四为缓冲;

    对象方法:

    1 fadeout()        设置淡出时间
    2 set_endevent()    设置播放完毕后事件
    3 get_endevent()    获取播放完毕后进行的事件;
    4 set_volume()      设置音量;
    5 get_volume()      获取音量;
    6 load()           加载音乐文件;
    7 rewind()         从头开始播放;
    8 get_pos()         获得当前播放的位置,以毫秒为单位;
  • 相关阅读:
    [LintCode] Flatten Nested List Iterator 压平嵌套链表迭代器
    [LintCode] Reverse Pairs 翻转对
    [CareerCup] 17.9 Word Frequency in a Book 书中单词频率
    [CareerCup] 17.8 Contiguous Sequence with Largest Sum 连续子序列之和最大
    [CareerCup] 17.7 English Phrase Describe Integer 英文单词表示数字
    [LeetCode] Reverse Vowels of a String 翻转字符串中的元音字母
    [CareerCup] 17.6 Sort Array 排列数组
    [LeetCode] 344. Reverse String 翻转字符串
    [CareerCup] 17.5 Game of Master Mind 猜字游戏
    [CareerCup] 17.4 Maximum of Two Numbers 两数中的较大值
  • 原文地址:https://www.cnblogs.com/hilnx/p/12419981.html
Copyright © 2011-2022 走看看