Pygame模块

pygame模块
这个是python的一个模块,属于第三方的 所以需要导入
1.步骤: 首先win+r 回车 在命令窗口输入pip install pygame 等待下载就行了
2.这个模块是写像 坦克大战 植物大战僵尸的这类游戏的
3.学习这个主要知道他里面有什么方法 和 精灵

1.初始化模块
	pygame.init() #导入并初始化所有的pygame模块 必须调用init方法
	pygame.quit() #卸载所有Pygame模块 ,在游戏前调用
2.坐标系
	原点在左上角的
	x轴水平方向向右,逐渐增加
	y轴水平方向向下,逐渐增加
 3.pygame的矩形类
	在游戏中,所有有可见的元素 都是以 矩形区域来描述位置的  比如游戏英雄
	要描述一个位置有四个元素:(x,y)(width,height)
	方法:_rect=pygane.Rect(x,y,width,height)
 4.创捷一个不会消失的窗口
		#screen=pygame.display.srt_mode((500,600)) 
		#创建窗口
		#有三个参数  
		#第一个:是一个元组 ,确定窗口的大小 默认与窗口大小一直
		#第二个:参数指定的屏幕的附加选项,列如是否全屏等等
		#第三个:参数表示颜色的位数,默认自动匹配
import sys, pygame
pygame.init()	#初始化

screen=pygame.display.srt_mode((500,600))  
pygame.display.update() #刷新屏幕内容显示

while True:
	for event in pygame.event.get():
			if event.type == pygame.QUIT:
				pygame.quit()   #卸载
				exit()   #终止程序的执行
	 5.理解 图像 并绘制
		*在游戏中, 看到的元素大多数都是图象
		a:使用pygane.amage.load() 加载图像数据
		b:使用屏幕对象,调用blit方法 将图像绘制到指定位置
		c:再使用pygame.display.update()刷新
bg=pygame.image.load("路径")
pygame.Surface.blit(bg,(0.0))
pygame.display.update()
	 6.透明图像
	 	png格式的图像是支持透明的
	 	在绘制时透明区域不会显示任何内容
	 	但如果下方已经有内容,会通过透明区域显示出来
	 7.update()的用法
		 可以在screen对象完成所有的blit方法之后,统一调用一次 display.updata方法
		 同样可以看到绘制结果
	 8.游戏循环
		 设置刷新帧率
		 检测用户的交互
		 更新所有的图片位置
		 更新显示
	 9.游戏时钟
		 pygame专门提供了一个时钟类pygame.time.Clock可以方便的设置屏幕的绘制速度——刷新帧率
		 使用时钟对象
		 a:在游戏初始化创建一个时钟对象
		 b:在游戏循环中调用tick(帧率)方法
		 tict方法会根据上次调用的时间 自动设置游戏循环中的延迟
pygame.init()
#创建时钟对象
clock =pygame.time.Clock()

while True:
	clock.tick(6)	
	10.角色的绘制
		1.在游戏初始化定义一个pygame.Rect 的变量记录英雄的初始位置
		2.在游戏循环中变换坐标位置让英雄移动
		3.y<=0将英雄移动到底部
			提示:每调用update()方法之前,需要把 所有游戏的图像重新绘制一遍
					   而且每次最先重新绘制背景图像
#定义rect记录位置
#修改英雄的位置
#调用blit方法绘制图像
#调用update更新显示
hero_rect=pygame.Rect(英雄的坐标值(x,y) 高度,宽度)

while True:
	hero_rect.y-=50
	screen.blit(hero,hero_rect)
#解决残影
#重新绘制背景
	screen.blit(bg,(0,0))
	pygame.display.update()

	11. 在循环中 监听 事件
			监听:在循环中,判断用户的操作 做出相应
			代码实现:
							pygame中通过pygame.event.get()可以获取用户动作所对应的  事件列表 ***用户同一时间可以做很多事
							提示:这段代码非常固定 几乎所有Pygame游戏 大同小异  返回的是一个列表
							官网:http://www.pygame.org/docs/  里面有事件的列表
	12.事件的用法  上代码
while True:
	for event in pygame.event.get(): #遍历pygame.event.get():
		if event == "对应的事件""执行的操作"
			
	13.精灵  精灵组
		1.为了简化开发步骤,pygame提供了两个类
				pygame.sprite.Sprite ---储存 图像数据 image 和 位置 rect 的对象
				pygame.sprite.Group

在这里插入图片描述
14.游戏精灵的开法

import pygame


class GameSprite(pygame.sprite.Sprite):  #让 GameSprite 继承精灵类
    
    
    def __init__(self,image_name,speed=1):
        #调用父类的初始化方法
        super().__init__()
        #定义对象的属性
        self.image=pygame.image.load(image_name)
        self.rect=self.image.get_rect()
        self.speed=speed
        
    def update(self, *args):
        #在屏幕的垂直方向移动
        self.rect.y+=self.speed

		15.	创建精灵对象和精灵组对象
#创建玉米精灵
import pygame
from plane_sprites import *  #完全继承精灵

#创建玉米的精灵
yumi=CameSprite("玉米图片路径")
yumi1=CameSprite("",2)  #第二个玉米精灵
#创建玉米的精灵组
yumi_group=pygame.sprite.Group(yumi)
while True:
    #调用精灵方法 update  draw
    yumi_group.update()
    yumi_group.draw(screen) #在screen绘制所有的精灵
    
17.游戏音乐
1.背景音乐
py)game.mixer.init()  #初始化背景音乐
pygame.mixer.music.load("素材/bg.mp3")	#添加路径
pygame.mixer.music.set_volume(0.4)		#音乐的音量
pygame.mixer.music.play() #播放载入的音乐。该函数立即返回,音乐播放在后台进行。
play方法还可以使用两个参数
pygame.mixer.music.play(loops=0, start=0.0)
loops和start分别代表重复的次数和开始播放的位置。			#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值