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

2020-03-03  本文已影响0人  我开心0536

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
上一篇下一篇

猜你喜欢

热点阅读