美文网首页
Python笔记 - Pygame常用设置及变量 2020.03

Python笔记 - Pygame常用设置及变量 2020.03

作者: 我开心0536 | 来源:发表于2020-03-03 19:04 被阅读0次

    Pygame 常用的一些规则和设置

    #Pygame 常用的一些规则和设置
    #Pygame 常用的一些规则和设置
    import pygame
    from pygame.locals import *
    import sys
    import time
    
    # 游戏的初始化
    pygame.init()
    
    fpsClock = pygame.time.Clock()  #控制屏幕刷新频率,或者说游戏运行速度
    FPS = 5   # 窗口刷新频率,也就是游戏运行速度,代表每秒刷新多少次, 数字越大,运行越快
    
    windows_w = 1024  #设定窗口宽度,像素数,默认1024
    windows_h = 600    #设定窗口高度,像素数,默认600
    screen = pygame.display.set_mode((windows_w,windows_h),0,32)   #创建游戏设置窗口大小
    pygame.display.set_caption('我的Pygame笔记 Ver20200303.03')  #窗口标题
    
    myfont = pygame.font.Font(None,60)  #使用pygame.font将文打印到窗口。要打印文本的话首先需要创建一个文字对象。使用默认字体,不能显示中文
    myfont20 = pygame.font.SysFont("kaiti" , 20)  #显示中文的设置和字体及大小  'fangsong', 'simhei', 'kaiti','simsunnsimsun' 仿宋、黑体、楷体、宋体
    myfont60 = pygame.font.SysFont("simhei", 60)  #显示中文的设置和字体及大小  'fangsong', 'simhei', 'kaiti','simsunnsimsun' 仿宋、黑体、楷体、宋体
    
    
    # 定义几个字体颜色
    BLACK = (0,0,0)  #黑色
    BLACK100 = (100,100,100)  #灰色
    WHITE = (255,255,255) #白色
    RED = (255,0,0)  #大红色
    GREEN = (0,255,0)  #绿色
    BLUE = (0,0,255) #蓝色
    YELLOW = (255,255,0) #黄色
    RED2 = (255,0,255) #粉红色
    
    #显示图片相关
    img_w = 150  #设定图片宽度
    img_h = 200  #设定图片高度
    Img_back = pygame.transform.smoothscale(  pygame.image.load('images/back.jpg'  ).convert_alpha(), (windows_w,windows_h) ) #设置背景图像,并平滑缩放宽高与窗口宽高相同
    Img_1    = pygame.transform.smoothscale(  pygame.image.load('images/ren_01.png').convert_alpha(), (img_w,img_h) )         #设置普通图片,并平滑缩放宽高为指定数值
    
    
    # ================================================
    # Pygame主程序开始
    # ================================================
    cishu=1
    x=0
    y=100
    while True:
        # 检测是否要关闭窗口
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()
    
        # 检测键盘,并检测是否按下Esc键
        # Esc键 K_ESCAPE  空格键 K_SPACE  回车键K_RETURN  上K_UP 下K_DOWN 左K_LEFT 右K_RIGHT
        keys = pygame.key.get_pressed()
        if keys[K_ESCAPE]:
            sys.exit()
    
        # 窗口背景(用指定颜色填充 或 用图片背景)
        screen.fill(WHITE)  #用颜色填充当背景
        screen.blit( Img_back , (0, 0))    #用图片当背景,坐标为 0,0
    
        #在屏幕上显示图片(固定位置)
        screen.blit( Img_1 , ( 0,0 ))   #显示某个图片,指定坐标
    
        #扩展演示1:在屏幕上显示图片(位置x,y可变)
        screen.blit( Img_1 , ( x,y ))   #显示某个图片,指定坐标
        #让这个图片动起来
        x = x + 50
        if x > windows_w :
            x = 0
    
        #扩展演示2:如果需要将某个图片放在正中间,可以用下面功能实现,先获取图片尺寸大小,然后再计算应该显示的位置
        img_x, img_y = pygame.image.load('images/ren_01.png').convert_alpha().get_size()  # get_size()表示获取当时图片的长度和宽度
        screen.blit( Img_1 , ( windows_w/2-img_x/2, windows_h/2-img_y/2 ))  #窗口高度的一半 减去 图片高度的一半,就是左上角X位置
    
    
    
        #在屏幕上显示纯文本
        text_image1 = myfont60.render( "固定位置显示纯文本",  True,  BLACK )  # render函数第一个参数是文本,第二个参数是抗锯齿字体,第三个参数是一个颜色值(RGB值)
        screen.blit(text_image1, (400,20) )   #文字显示位置
    
        #扩展演示1:在屏幕上显示带变量的文本
        text_image2 = myfont60.render( "FPS:"+str(FPS)+"  刷新次数"+str(cishu),  True,  BLACK )  # render函数第一个参数是文本,第二个参数是抗锯齿字体,第三个参数是一个颜色值(RGB值)
        screen.blit(text_image2, (300,400) )   #文字显示位置
    
        #扩展演示2:在屏幕上显示文本 , render函数第一个参数是文本,第二个参数是否抗锯齿显示,第三个参数是一个颜色值(RGB值)
        text_image_time = myfont60.render("北京时间:"+str(  time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())  ),  True,  RED )
        screen.blit(text_image_time, (100,500) )  # 在指定位置显示上面字符中的内容
    
        #扩展演示3:在屏幕上显示文本 , render函数第一个参数是文本,第二个参数是否抗锯齿显示,第三个参数是一个颜色值(RGB值)
        text_image_xy = myfont20.render("当前窗口宽度:"+str(windows_w)+"  高度:"+str(windows_h)
                                        +"    图片宽度:"+str(img_x)+"  高度:"+str(img_y)
                                        +"    居中图片的X坐标:"+str(windows_w/2 - img_x/2)+"  Y坐标:"+str(windows_h/2 - img_y/2),
                                        True,  WHITE )
        screen.blit(text_image_xy, (20,570) )   # 在指定位置显示上面字符中的内容
    
    
    
        #开始更新屏幕画面
        pygame.display.update()
        #控制游戏速度, 一般放在结尾pygame.display.update()后
        fpsClock.tick(FPS)
        cishu=cishu+1
    

    常用按键值

    KeyASCII      ASCII   Common Name
    K_BACKSPACE    \b      backspace
    K_TAB         \t      tab
    K_CLEAR               clear
    K_RETURN      \r      return    
    K_PAUSE               pause
    K_ESCAPE      ^[      escape
    K_SPACE               space
    K_EXCLAIM     !       exclaim
    K_QUOTEDBL    "       quotedbl
    K_HASH        #       hash
    K_DOLLAR      $       dollar
    K_AMPERSAND   &       ampersand
    K_QUOTE               quote
    K_LEFTPAREN   (       left parenthesis
    K_RIGHTPAREN  )       right parenthesis
    K_ASTERISK    *       asterisk
    K_PLUS        +       plus sign
    K_COMMA       ,       comma
    K_MINUS       -       minus sign
    K_PERIOD      .       period
    K_SLASH       /       forward slash
    K_0           0       0
    K_1           1       1
    K_2           2       2
    K_3           3       3
    K_4           4       4
    K_5           5       5
    K_6           6       6
    K_7           7       7
    K_8           8       8
    K_9           9       9
    K_COLON       :       colon
    K_SEMICOLON   ;       semicolon
    K_LESS        <       less-than sign
    K_EQUALS      =       equals sign
    K_GREATER     >       greater-than sign
    K_QUESTION    ?       question mark
    K_AT          @       at
    K_LEFTBRACKET [       left bracket
    K_BACKSLASH   \       backslash
    K_RIGHTBRACKET ]      right bracket
    K_CARET       ^       caret
    K_UNDERSCORE  _       underscore
    K_BACKQUOTE   `       grave
    K_a           a       a
    K_b           b       b
    K_c           c       c
    K_d           d       d
    K_e           e       e
    K_f           f       f
    K_g           g       g
    K_h           h       h
    K_i           i       i
    K_j           j       j
    K_k           k       k
    K_l           l       l
    K_m           m       m
    K_n           n       n
    K_o           o       o
    K_p           p       p
    K_q           q       q
    K_r           r       r
    K_s           s       s
    K_t           t       t
    K_u           u       u
    K_v           v       v
    K_w           w       w
    K_x           x       x
    K_y           y       y
    K_z           z       z
    K_DELETE              delete
    K_KP0                 keypad 0
    K_KP1                 keypad 1
    K_KP2                 keypad 2
    K_KP3                 keypad 3
    K_KP4                 keypad 4
    K_KP5                 keypad 5
    K_KP6                 keypad 6
    K_KP7                 keypad 7
    K_KP8                 keypad 8
    K_KP9                 keypad 9
    K_KP_PERIOD   .       keypad period
    K_KP_DIVIDE   /       keypad divide
    K_KP_MULTIPLY *       keypad multiply
    K_KP_MINUS    -       keypad minus
    K_KP_PLUS     +       keypad plus
    K_KP_ENTER    \r      keypad enter
    K_KP_EQUALS   =       keypad equals
    K_UP                  up arrow
    K_DOWN                down arrow
    K_RIGHT               right arrow
    K_LEFT                left arrow
    K_INSERT              insert
    K_HOME                home
    K_END                 end
    K_PAGEUP              page up
    K_PAGEDOWN            page down
    K_F1                  F1
    K_F2                  F2
    K_F3                  F3
    K_F4                  F4
    K_F5                  F5
    K_F6                  F6
    K_F7                  F7
    K_F8                  F8
    K_F9                  F9
    K_F10                 F10
    K_F11                 F11
    K_F12                 F12
    K_F13                 F13
    K_F14                 F14
    K_F15                 F15
    K_NUMLOCK             numlock
    K_CAPSLOCK            capslock
    K_SCROLLOCK           scrollock
    K_RSHIFT              right shift
    K_LSHIFT              left shift
    K_RCTRL               right control
    K_LCTRL               left control
    K_RALT                right alt
    K_LALT                left alt
    K_RMETA               right meta
    K_LMETA               left meta
    K_LSUPER              left Windows key
    K_RSUPER              right Windows key
    K_MODE                mode shift
    K_HELP                help
    K_PRINT               print screen
    K_SYSREQ              sysrq
    K_BREAK               break
    K_MENU                menu
    K_POWER               power
    K_EURO                Euro
    

    相关文章

      网友评论

          本文标题:Python笔记 - Pygame常用设置及变量 2020.03

          本文链接:https://www.haomeiwen.com/subject/dfyklhtx.html