python学习之 pygame模块

以第一篇文章为主干,其他文章拓展和深入进行学习
参考文章:用Python和Pygame写游戏-从入门到精通
python----pygame图形接口(太全了,收了)
Python游戏开发入门:pygame事件处理机制-3
python之pygame基本事件
Pygame详解(二):display 模块
Pygame详解(五):font 模块
这里有大部分模块的详细解释
事件大全

在这里插入图片描述
set_mode(分辨率,标志位,色深)
标志位可选项
在这里插入图片描述
一个图像复制到另一个上面,这是游戏中最常用的操作,由blit函数来实现

Surface.blit(source, dest, area=None, special_flags = 0): return Rect

画的位置可以由dest参数指定。dest可以是一对坐标值,表示源Surface的左上角在这个Surface上的坐标。dest也可以是一个矩形,矩形的左上角作为blit的位置,而矩形的大小不影响blit。

pygame.display.flip()
更新整个待显示的 Surface 对象到屏幕上。

flip() -> None

这个函数将更新整个显示界面的内容。如果你的显示模式使用了 pygame.HWSURFACE(硬件加速)和 pygame.DOUBLEBUF(双缓冲)标志,那么将等待垂直会扫并切换显示界面。如果你使用不同类型的显示模式,那么它将简单的更新整个显示界面的内容。

当使用 pygame.OPENGL(使用 OPENGL 渲染)显示模式时,将创建一个 gl 缓冲切换区。

温馨提示:垂直回扫是与视频显示相关的时间测量,它代表了一个帧的结束和下一帧的开始时间之间的时间间隔。

pygame.display.update()
更新部分软件界面显示。

update(rectangle=None) -> None

update(rectangle_list) -> None

这个函数可以看作是 pygame.display.flip() 函数在软件界面显示的优化版。它允许更新屏幕的部分内容,而不必完全更新。如果没有传入任何参数,那么该函数就像 pygame.display.flip() 那样更新整个界面。

你可以传递一个或多个矩形区域给该函数。一次性传递多个矩形区域比多次传递更有效率。如果传入的是一个空列表或者 None,那么将忽略参数。

该函数不能在 pygame.OPENGL 显示模式下调用,否则会抛出异常。

import sys
import pygame
pygame.init()

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

screen=pygame.display.set_mode(size)

turtle=pygame.image.load(r"   图片路径  ")

position=turtle.get_rect()

while True:
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            sys.exit()

    position=position.move(speed)

    if position.left<0 or position.right>width:
        turtle=pygame.transform.flip(turtle,True,False)

        speed[0]=-speed[0]
    
    if position.top<0 or position.bottom>height:
        turtle=pygame.transform.flip(turtle,False,True)
        speed[1]=-speed[1]

    screen.fill(bg)
    screen.blit(turtle,position)
    pygame.display.flip()
    pygame.time.delay(7)

我们用一种叫做“线性插值(linear interpolation)”的方法来做这件事情。为了找到两种颜色的中间色,我们将这第二种颜色与第一种颜色的差乘以一个0~1之间的小数,然后再加上第一种颜色就行了。如果这个数为0,结果就完全是第一种颜色;是1,结果就只剩下第二种颜色;中间的小数则会皆有两者的特色。
在这里插入图片描述
鸽了鸽了
写不下去了

学业繁忙告辞
第一篇文章,有点古老,到后面,有些内容不支持
看了十来篇,学到了很多2d游戏开发需要注意的点
最后是看的 b站小甲鱼的 pygame 模块的教学,跟着打了一个 飞机大战游戏‘,算是这20几天学习python ,代码量最大的一次练习
飞机大战下载地址
游戏挺不错,很有很多可以优化的内容:
1.敌方中飞机可以,发射子弹
2.打飞机血量增加,停留在原地,按照一定规律发射子弹
3.己方buff,可以累加
4.加入生命补给等

还有挺多好玩的想法
但没时间(懒)

猜你喜欢

转载自blog.csdn.net/m0_52521883/article/details/113867613