1.导入Pygame模块

(1) 模块并初始化

① Import pygame

② Pygame.init()

(2) 创建窗体

① Window_size = (800,600)  长宽

② Screen= pygame.disply.set_mode(Window_size)

③ pygame.disply.set_caption(“My First Pygame Window”)  设置窗体标题

(3) 主循环

① Running = True   主循环标志

② while running:

for event in pygame.event.get():      事件遍历

if event.type == pygame.QUIT:

Running =False

Pygame.quit()    退出

2.绘制图形

(1) 设置颜色

① WHITE = (255,255,255)

② BLACK = (0,0,0)

③ RED = (255,0,0)

④ GREEN = (0,255,0)

⑤ BLUE = (0,0,255)

(2) 绘制矩形

① pygame.draw.rect(screen,RED,(100,100,50,50))

② pygame.draw.circle(screen,BLUE,(200,200),30)

(3) 更新屏幕

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

② Pygame.display.update()  更新部分内容显示到屏幕上,如果没有参数,则与flip功能相同

3.加载图像和显示图形

(1) Player_image = pygame.image.load(‘play.png’)  加载图形

① Pygame.image.load(‘’).convert_alpha   # convert_alpha相对于convert,保留了图像的Alpha 通道信息,可以认为是保留了透明的部分,实现了透明转换,相比较直接使用load提高了blit的速度

(2) Screen.blit(Player_image,(100,100))  #显示图形(图片,位置)

4.处理键盘输入

(1) 检测键盘事件

① For event in pygame.event.get():

  If event.type == pygame.KEYDOWN:    键盘按下事件

    if event.key == pygame.K_LEFT:   按下Left

      Pass

(2) 鼠标输入

  ① For event in pygame.event.get():

    If event.type ==pygame.MOUSEBUTTONDOWN: 鼠标按下

      Pass

5.背景音乐和音效的添加

(1) 初始化混音器

  ① Pygame.mixer.init()

(2) 加载和播放背景音乐

  ① Pygame.mixer.music.load(‘xxxx.mp3’)   加载

  ② Pygame.mixer.msic.play(-1) -1 表示循环播放

(3) 加载和播放音效

  ① Collision_sound = pygame.mixer.Sound(‘collision.wav’)

  ② Collision_sound.play()

6.动画与帧率的控制值

(1) 控制帧率

  ① Clock = pygame.time.clock()  创建时钟对象

     Clock.tick(60)      设置帧率为60FPS

 1 import  pygame
2 pygame.init()
3
4 window_size = (800, 600)
5 screen = pygame.display.set_mode(window_size)
6 pygame.display.set_caption("窗体名称")
7 running = True # 主循环标志
8 clock = pygame.time.Clock() # 创建时钟对象
9 player_image = [pygame.image.load(r'xxx\Peashooter_{:02d}.png'.format(i)).convert_alpha() for i in range(0, 25)] # 加载图片
10 index = 0
11 while running: # 主循环
12
13 screen.fill((255,255,255)) #背景纯白
14 screen.blit(player_image[index % len(player_image)], (2, 2)) #图片显示
15 pygame.display.update() #参数是个矩形样式或矩形样式的序列
16 # pygame.display.flip()
17 for event in pygame.event.get(): # 事件遍历
18 if event.type == pygame.QUIT:
19 running = False
20 if event.type == pygame.MOUSEBUTTONDOWN:
21 index +=1 #点击更新图片
22
23
24 clock.tick(60) # 设置帧率为60FPS

pygame基础功能总结的更多相关文章

  1. 可在广域网部署运行的QQ高仿版 -- GG叽叽V3.0,完善基础功能(源码)

    (前段时间封闭式开发完了一个项目,最近才有时间继续更新GG的后续版本,对那些关注GG的朋友来说,真的是很抱歉.)GG的前面几个版本开发了一些比较高级的功能,像视频聊天.远程桌面.文件传送.远程磁盘等, ...

  2. 谷歌Chrome浏览器开发者工具的基础功能

    上一篇我们学习了谷歌Chrome浏览器开发者工具的基础功能,下面介绍的是Chrome开发工具中最有用的面板Sources.Sources面板几乎是最常用到的Chrome功能面板,也是解决一般问题的主要 ...

  3. Netsharp快速入门(之16) Netsharp基础功能(权限管理)

    第5章     Netsharp基础功能 5.1     权限配置 5.1.1  功能权限 1.配置权限功能点,打开平台工具-基础业务-操作管理 2.选择资源节点为销售订单,点添加常用操作,添加完成后 ...

  4. 李洪强iOS开发之-环信03_集成 SDK 基础功能

    李洪强iOS开发之-环信03_集成 SDK 基础功能 集成 SDK 基础功能 在您阅读此文档时,我们假定您已经具备了基础的 iOS 应用开发经验,并能够理解相关基础概念. SDK 同步/异步方法区分 ...

  5. wc基础功能

    第一次作业 项目地址 https://gitee.com/xxlznb/WordCount PSP WordCount 预估耗时(分钟) 实际耗时 计划 20 30 预估任务需要时间 20 30 开发 ...

  6. Keepalived详解(三):Keepalived基础功能应用实例【转】

    Keepalived基础功能应用实例: 1.Keepalived基础HA功能演示: 在默认情况下,Keepalived可以实现对系统死机.网络异常及Keepalived本身进行监控,也就是说当系统出现 ...

  7. jmeter 基础功能详解

    jmeter 基础功能详解 thread group:包含一组线程,每个线程独立地执行测试计划. sampler:采样器,有多种不同的sample实现,用来发起各种请求,如http请求,jdbc请求, ...

  8. (转)Chrome开发者工具不完全指南(一、基础功能篇)

    本篇转载自卖烧烤夫斯基,并做了小部分的修改. 原文地址:Chrome开发者工具不完全指南(一.基础功能篇) 原作者:卖烧烤夫斯基 就算你不是一名前端开发工程师,相信你也不会对Chrome浏览器感到陌生 ...

  9. 六、EnterpriseFrameWork框架基础功能之权限管理

    回<[开源]EnterpriseFrameWork框架系列文章索引> 从本章开始进入框架的第二块内容“EnterpriseFrameWork框架的基础功能”,包括:权限管理.字典数据管理. ...

  10. 项目开发-->基础功能汇总

    祭奠曾经逝去的青春…… 1.基础功能汇总-->身份认证及用户登录模块 2.基础功能汇总-->一键登录功能汇总 3.堆和栈 4.变量

随机推荐

  1. 21 如何写出一篇高质量的sci水文

    博客配套视频链接: https://www.bilibili.com/video/BV1fW4y1W7dS/ b 站直接看 模型确定, 结果正在跑(或已结束), 目标期刊已定,一般可以定顶刊 从目标期 ...

  2. vue3 使用swiper轮播组件

    本地环境信息 node版本: nodejs : v18.20.4 npm : 10.7.0 vue版本 "dependencies": { "vue": &qu ...

  3. Docker-compose 常用命令和模板

    docker-compose logs -f ##查看该容器的启动的日志打印(日志从头打印 docker logs -f container_id ##查看某一容器的启动的日志打印(日志从头打印) d ...

  4. Next.js 与 React 全栈开发:整合 TypeScript、Redux 和 Ant Design

    在上一集,我们编写完毕导航页面,并且非常的美观,但是我们发现编写网站是存静态的,在现代的网站当中一般都是动静结合,也就是说部分数据是从数据库读取的,部分静态数据是写在网页上面的,因此这章讲述如何搭建一 ...

  5. 基于Java+SpringBoot心理测评心理测试系统功能实现八

    一.前言介绍: 1.1 项目摘要 心理测评和心理测试系统在当代社会中扮演着越来越重要的角色.随着心理健康问题日益受到重视,心理测评和心理测试系统作为评估个体心理状态.诊断心理问题.制定心理治疗方案的工 ...

  6. 鸿蒙NEXT开发案例:抛硬币

    [1]引言(完整代码在最后面) 本项目旨在实现一个简单的"抛硬币"功能,用户可以通过点击屏幕上的地鼠图标来模拟抛硬币的过程.应用会记录并显示硬币正面(地鼠面)和反面(数字100面) ...

  7. 一文讲透 FPGA CDC 多bit跨时钟域同步-hand-shanking机制

    一.背景 数据的跨时钟域处理是FPGA开发过程中的常见问题,存在两种情况 慢时钟向快时钟同步:只需在快时钟域打两拍即可.其RTL如下: 打拍同步的原理:大家在初学FPGA时,经常听过FPGA中对信号打 ...

  8. MySQL无开通SQL全审计下的故障分析方法

    几年前MySQL数据库出现突然的从库延迟故障和CPU爆高时,如何排查具体原因,可能说已在腾讯云的MySQL库里开启了SQL全审计,记录了全部执行的SQL,再通过下面的方法就可以很容易找到原因: 1,实 ...

  9. 浅析REGEXP_SUBSTR,PRIOR,CONNECT BY

    业务场景 teacher表中的tech_class字段存储的是每个老师所教授的课程,课程之间以英文逗号分隔.现在要用语句统计每个课程对应的教师数量.语句及效果如下: 语句其实很简单,各种博客或者gpt ...

  10. 我对Java内存模型的理解

    所有的编程语言中都有内存模型这个概念,区别于微架构的内存模型,高级语言的内存模型包括了编译器和微架构两部分.我试图了解了Java.C#和Go语言的内存模型,发现内容基本大同小异,只是这些语言在具体实现 ...