Home >  > Pygame学习记录(一)起航

Pygame学习记录(一)起航

0

一、图像
要在屏幕上 看到某一个图像的内容,需要按照三个步骤

1.使用 pygame.image.load() 加载图像的数据
2.使用 游戏屏幕 对象,调用 blit 方法 将图像绘制到指定位置
3.调用 pygame.display.update() 方法更新整个屏幕的显示

二、声音
pygame.mixer是一个用来处理声音的模块,其含义为“混音器”。
参考:https://www.jb51.net/article/64110.htm
播放MP3使用。

pygame.mixer.music.load("filename.mp3")

三、时钟
要使用 时钟对象 需要两步:
1)在 游戏初始化 创建一个 时钟对象
2)在 游戏循环 中让时钟对象调用 tick(帧率) 方法
tick 方法会根据 上次被调用的时间,自动设置 游戏循环 中的延时。

四、精灵和精灵组
在游戏开发中,通常把显示图像的对象叫做精灵Sprite。为了简化开发步骤,pygame提供了两个类。

pygame.sprite.Sprite —— 存储 图像数据 image 和 位置 rect 的 对象
pygame.sprite.Group

一个 精灵组 可以包含多个 精灵 对象

五、撞球代码:

import pygame
import sys

pygame.init()  # 初始化pygame
pygame.mixer.init()  #mixer的初始化
size = width, height = 640, 480  # 设置窗口大小
screen = pygame.display.set_mode(size)  # 显示窗口
color = (0, 0, 0)  # 设置颜色
ball = pygame.image.load('ball.png')  # 加载图片
ballrect = ball.get_rect()  # 获取矩形区域

speed = [1,1]                              #设置移动的X轴、Y轴距离
clock = pygame.time.Clock()       #设置时钟


soundwav=pygame.mixer.Sound("shenyin.wav") #filename.wav文件名


# 死循环确保窗口一直显示
while True:  
	clock.tick(240) #每秒执行60次
	for event in pygame.event.get():  # 遍历所有事件
		if event.type == pygame.QUIT:  # 如果单击关闭窗口,则退出
			sys.exit()

	ballrect = ballrect.move(speed) #移动小球
    #碰到左右边缘
	if ballrect.left < 0 or ballrect.right > width:
		speed[0] = -speed[0]
    #碰到上下边缘
	if ballrect.top < 0 or ballrect.right > height:
		speed[1] = -speed[1]

	screen.fill(color)  # 填充颜色(设置为0,执不执行这行代码都一样)
	screen.blit(ball, ballrect)  # 将图片画到窗口上
	pygame.display.flip()  # 更新全部显示
	soundwav.play()

pygame.quit()  # 退出pygame



成果展示:

参考:https://www.jianshu.com/p/cb146af64f05

暧昧帖

本文暂无标签

发表评论

*

*