理解pygame.Surface

2021年2月18日 / 35次阅读 / Last Modified 2021年2月18日
pygame

在pygame中,surface这个概念,可以理解为一个image。我们可以通过load一张图片的方式,生成一个surface对象;也可以创建一个surface对象,然后在上面draw一些图形。

用pygame.display.set_mode创建的窗口,得到的就是一个底层的surface,制作动画,就在用别的surface对象,在这个底层的surface上blit。

下面这段测试代码,先创建一个surface,然后draw一个方形,然后再底层surface上,移动这个有方形的surface:

import sys
import time
import pygame
from pygame.color import THECOLORS


size = width, height = 600, 400
speed = [1,1]

pygame.init()
screen = pygame.display.set_mode(size)
pygame.display.set_caption('window title')
clock = pygame.time.Clock()

img = pygame.Surface((20,20))
pygame.draw.rect(img, THECOLORS['white'], (0,0,20,20),1)

pos = pygame.Rect(200,200,20,20)
screen.blit(img, pos)

while True:
    # frame rate per second
    clock.tick(240)
    # event list
    for event in pygame.event.get():
        print(event)
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit(0)
    # adjust speed
    if pos.left<0 or pos.right>width:
        speed[0] = -speed[0]
    if pos.top<0 or pos.bottom>height:
        speed[1] = -speed[1]
    # draw and flip
    pos = pos.move(speed)
    screen.fill(THECOLORS['black'])
    screen.blit(img, pos)
    pygame.display.flip()

上述代码,还直接创建一个Rect对象,用于定位一个矩形区域。

制作游戏,不一定需要load图片,draw出来的图形也可以呀。

-- EOF --

本文链接:https://www.pynote.net/archives/3531

留言区

您的电子邮箱地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top