Python之pygame

这篇博客介绍了Python的pygame库,通过实例展示了如何进行图形绘制,包括矩形、多边形、圆形、椭圆、弧线和线段的绘制,同时也提到了抗锯齿技术的应用。
摘要由CSDN通过智能技术生成

素材提取
链接:https://pan.baidu.com/s/1Kb9xRrbHTM7yTvLdESI6xg
提取码:dkqi

初识pygame

这是一个可控制的鸭子在画面中移动的例子:

import pygame
import sys
from pygame.locals import *

#初始化pygame
pygame.init()

size = width,height =800,500
speed = [-2 ,1]
bg = (255,255,255)

#创建指定大小的窗口
screen = pygame.display.set_mode(size)
#设置窗口标题
pygame.display.set_caption("这是我pygame的第一个尝试")

#加载图片
cat = pygame.image.load("duck.jpg")
#获取图像的位置矩形
position = cat.get_rect()

l_head = cat
r_head = pygame.transform.flip(cat,True,False)
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                cat =l_head
                speed = [-1,0]
            if event.key == pygame.K_RIGHT:
                cat = r_head
                speed = [1,0]
            if event.key == pygame.K_UP:
                speed = [0,-1]
            if event.key == pygame.K_DOWN:
                speed = [0,1]

    #移动图像
    position = position.move(speed)

    if position.left < 0 or position.right > width:
        #翻转图像
        cat = pygame.transform.flip(cat,True,False)
        #反向移动
        speed[0] = -speed[0]

    if position.top < 0 or position.bottom > height:
        speed[1] = -speed[1]

    #填充背景
    screen.fill(bg)
    #更新图像
    screen.blit(cat,position)
    #更新界面
    pygame.display.flip()
    #延迟10毫秒
    pygame.time.delay(10)

界面显示用户当前操作,并记录在文件中:

import pygame
import sys

#初始化pygame
pygame.init()

size = width,height =800,500
screen = pygame.display.set_mode(size)
pygame.display.set_caption("黑客帝国")
bg = (0,0,0)

position = 0
font = pygame.font.Font(None,20)
line_height = font.get_linesize()
screen.fill(bg)

f = open("record.txt","w")
while True:
    for event in pygame.event.get():
        f.write(str(event) + '\n')
        if event.type == pygame.QUIT:
            f.close()
            sys.exit()

        screen.blit(font.render(str(event),True,(0,255,0)),(0,position))
        position += line_height

        if position > height:
            position = 0
            screen.fill(bg)

    pygame.display.flip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唱戏先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值