飞机大战项目知识点补充

  1. pygame效能很好,有很多是C语言写的;但是支持的声音格式很少,一般用.ogg的格式做背景音乐,用无压缩的.wav做音效(现在的版本好像也支持mp3等格式了)。

  2. 修改图像位置 (rect是位置,get_rect得到的)
    speed=[-2,1]
    rect.move(speed)

  3. 图像翻转(图像对象,水平翻转,垂直翻转)
    pygame.transform.flip(turtle,True,False)

  4. pygame.time.delay(10) # 延迟10毫秒

  5. 鼠标移动事件 buttons(左键,中间键,右键) rel(距离上一个点的位置)
    MouseMotion('pos':(x,y),'buttons':(0,0,0),'rel':(x,y))

  6. KeyUP 释放键盘按键
    KeyDown 按下键盘按键


    飞机大战项目知识点补充_第1张图片
    pygame中的所有事件.png
  7. if event.type == MOUSEBUTTONDOWN: # 鼠标点击
    if event.button == 1:
    print('1表示鼠标左键')
    if event.button == 2:
    print('1表示鼠标中间键')
    if event.button == 3:
    print('3表示鼠标右键')
    if event.button == 4: # 4和5不确定
    print('4表示鼠标滑轮向上')
    if event.button == 5:
    print('5表示鼠标滑轮向下')

  8. 获取行高 (font是对象)
    font.get_linesize()

  9. screen.fill(背景色) 可以这样操作用来清屏

  10. 导入所有的常量名(例如需要输入pygame.KEYDOWN时可以直接输入KEYDOWN了)
    from pygame.locals import *

  11. set_mode第二个参数(有图片介绍),用|连接多个


    飞机大战项目知识点补充_第2张图片
    set_mode第二个参数.png

screen = pygame.display.set_mode((1024,768),FULLSCREEN|HWSURFACE)

  1. pygame.display.list_modes()打印当前显示器所有支持的分辨率
    例如[(1366,768),(1280,768),(1280,720),...]
    若要取得用户全屏时的分辨率可以用这种方法,取返回列表的第一个

  2. transform用法(有图片介绍)


    飞机大战项目知识点补充_第3张图片
    transform的方法.png
  3. get_rect()其实是获取位置
    pygame.mouse.get_pos()获取鼠标当前位置

  4. png和gif格式的可以透明化,jpg的不能透明化,所以导入png可以用convert_alpha,导入jpg只能用convert

  5. turtle.get_at(位置)可以获取此位置像素的颜色(turtle是对象)(0,0,0,透明度(0-255))
    turtle.set_at((i,j),颜色) 设置此位置像素颜色

  6. convert的图片可以用set_alpha(0-255)设置透明度,但是它是把整个图像加背景透明化。

  7. pygame.draw.rect(surface,color,rect,width=0) width=0表示用颜色填充
    绘制多边形 pygame.draw.ploygon(surface,color,pointlist,width=0) pointlist是各个顶点坐标
    绘制圆形 pygame.draw.circle(surface,color,pos,radius,width=0) pos是圆心
    绘制椭圆形 pygame.draw.ellipise(surface,color,rect,width=0) rect是限定矩形
    绘制弧线 arc(surface,color,rect,startangle,stop_angle,width=1) ep:pygame.draw.arc(screen,BLACK,(220,50,200,200),math.pi,math.pi*2,1)
    绘制一条线段 line(surface,color,start_pos,end_pos,width=1)
    绘制多条线段 lins(surface,color,closed,pointlist,width=1) closed为1的话表示画出的线段是首尾相连的 # 注意:width=0时线段也不能填充,因为是线段
    绘制抗锯齿线段 aaline(surface,color,startpos,endpos,blend=1) blend是指定是否混合阴影抗锯齿(一般使用)
    绘制多条抗锯齿线段 aalines(surface,color,closed,pointlist,blend=1)

  8. 播放音效用pygame.mixer.Sound()
    播放背景音乐用pygame.mixer.music

  9. Sound对象的方法(有图片介绍)


    飞机大战项目知识点补充_第4张图片
    Sound对象的方法.png
  10. music的一些方法(有图片介绍)


    飞机大战项目知识点补充_第5张图片
    music的一些方法.png
  11. pygame.mouse.set_visible(False) 设为False表示鼠标不可见

  12. pygame.time.set_timer(自定义事件,毫秒)设置自定义事件类型,每隔多少毫秒出现在事件队列中

  13. 要设置是否重复响应按下某个按键可以用pygame.key.set_repeat(delay,interval)
    其中delay参数指定第一次发送事件的延迟时间,interval参数指定重复发送事件的时间间隔,如果不带任何参数,表示取消重复发送事件

  14. Pyinstaller(python打包为exe文件):
    pip install pyinstaller
    在要打包的python文件的目录下执行如下命令:
    pyinstaller -F -i res\app.ico 你的python文件名.py
    其中res目录为你的项目文件下的资源目录,项目中用到的图片均放置在里面,其中app.ico是生成你的可执行文件的图标。
    拷贝资源文件目录res到生成目录下的dist目录下
    执行dist目录下的exe文件,打包完成。

  15. self.mask=pygame.mask.from_surface(self.image)
    并且在检测碰撞那里加上参数pygame.sprite.spritecollide(me,enemies,False,pygame.sprite.collide_mask)
    可以设置后碰撞检测的是非透明部分
    pygame.sprite.collide_mask(powerup,me)#检测两个精灵是否碰撞,若碰撞会返回True,否则返回False

  16. paused_rect.collidepoint(event.pos)可以检测pos是否在这个矩形范围内

另:
dns服务器是域名解析服务器
tcp和udp区别(面试可能问):tcp可靠udp不可靠(udp容易丢包,可以用于音频)

你可能感兴趣的:(飞机大战项目知识点补充)