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