(pygame)(pygame有必要学吗)

1.初始化pygame,让其回归原点

pygame.init()

2.游戏窗口尺寸可以连续赋值,别的语言做不到,可是python就可以

size = width, height = 320, 240

3.光定义尺寸还不行,还得把窗口给显示出来,所以使用了pygame.display下面的set_mode()方法

screen = pygame.display.set_mode(size)

4.为了确保游戏运行窗口不至于一闪而过,所以要使用

while True

5.pygame中有专门的事件处理方法,比如键盘事件、鼠标事件等,用for...in...提取出来

for event in pygame.event.get()

6.如果事件类型是关闭游戏运行窗口,则系统退出

if event.type == pygame.QUIT:

sys.exit()

7.游戏结尾要弄个pygame退出的方法,否则就陷入死循环出不来了

pygame.quit()

8.更新内容到屏幕上,可以整体更新,也可以部分更新

pygame.display.flip() 整体更新

pygame.display.update() 部分更新

9.加载图片

pygame.image.load('ball.png')

10.加载好图片就完事了吗?才不是,你还要告诉pygame返回的是什么对象

ballrect = ball.get_rect()

11.既然图片加载了,也返回对象了,接下来就是把图片画到窗口上

screen.blit(ball, ballrect)

12.虽然画出来图片了,可是我们却没有看到,为什么?因为还没有显示出来呢

pygame.display.flip() 整体更新

pygame.display.update() 部分更新

13.碰撞检测

ball = pygame.image.load('ball.png')

ballrect = ball.get_rect()

ballrect = ballrect.move(speed)

# 碰到左右边缘

if ballrect.left < 0 or ballrect.right > width:

speed[0] = -speed[0]

# 碰到上下边缘

if ballrect.top < 0 or ballrect.bottom > height:

speed[1] = -speed[1]

14.游戏运行太快没得玩?我们有time模块控制

clock = pygame.time.Clock()

clock.tick(60)

一般每秒大于24帧的画面我们就认为是连贯的动画了,而60帧则是比较合理的数值,大于75帧基本没有太大的需求了

15.一个模块可以包含多个class类,一个类class可以包含多个def方法

比如在一个FlappyBird游戏中,同时有两个类:

class Bird(object)

class Pipeline(object)

然后各自有两个方法:

def __init__(self)

def birdUpdate(self)

def __init__(self)

def updatePipeline(self)

16.如果要在其他地方使用一个变量,就需要加上global标签,然后跨函数也能使用了

global score

17.播放声音有两种:短声音和长声音

sound = pygame.mixer.Sound('resources/bounce.ogg')

sound.play()

pygame.mixer.music.load('resources/bgmusic.mp3')

pygame.mixer.music.play(-1, 0.0)

18.不要一上来就纠结每个细节

你所能用到的只是其中的一个子集,就是一小部分,其他地方等用到了再说

19.rect是你的好朋友

要多熟悉,因为我们操作的时候就在rect这个区域内了

20.使用python的方法去干活

学会从整体考虑,布置好所需要的无聊,挖浅坑做了解,而不是钻细节

声明:我要去上班所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者三度编程所有,原文出处。若您的权利被侵害,请联系删除。

本文标题:(pygame)(pygame有必要学吗)
本文链接:https://www.51qsb.cn/article/m9g3l.html

(0)
打赏微信扫一扫微信扫一扫QQ扫一扫QQ扫一扫
上一篇2023-07-14
下一篇2023-07-14

你可能还想知道

发表回复

登录后才能评论