Python实验报告(第13章)
实验13:Pygame游戏编程
一、实验目的和要求
学会Pygame的基本应用
二、Pygame的优点及应用
使用Python进行游戏开发的首选模块就是Pygame,专为电子游戏设计(包括图像、声音),创建在SDL基础上,允许实时电子游戏研发而不被低级语言(如汇编语言)束缚。基于这一设想,所有需要的游戏功能和理念(主要是图像方面)都完全简化为游戏逻辑本身,所有的资源结构都可以由高级语言(如Python)提供。
三、实验环境
1、安装Pygame:在桌面的搜索栏中输入“cmd”找到命令提示符,然后输入“pip install pygame”,然后按回车键,自行开始安装Pygame。如出现问题,会自动弹出还需安装的插件,或请上官网查询相关信息:https://www.pygame.org/wiki/GettingStarted
2、检查Pygame是否安装成功:在桌面的搜索栏中输入“IDLE”找到python代码实现界面,输入“import pygame\n pygame.ver”(\n为换行符,请按回车键),然后再按回车键:若显示版本信息,即为安装成功。
2、操作步骤如下:




四、实验过程
1、实例1:制作一个Pygame窗口
1 # -*- coding:utf-8 -*-
2 import pygame
3 import sys
4
5 pygame.init() #初始化pygame
6 size = width, height = 320,240 #设置窗口
7 screen = pygame.display.set_mode(size)#显示窗口
8
9 #执行死循环,确保窗口一直显示
10 while True:
11 #检查事件
12 for event in pygame.event.get(): #遍历所有事件
13 if event.type == pygame.QUIT: #如果单击关闭窗口,则退出
14 sys.exit()
15
16 pygame.quit() #退出pygame
运行效果:(一直不知道哪里出了问题,窗口就是关不了)

2、制作一个跳跃的小球游戏
创建一个游戏窗口,然后再窗口内创建一个小球。以一定的速度移动小球,当小球碰到窗口的边缘时,小球弹回,继续移动。代码如下:
1 import pygame #导入pygame模块
2 import sys #导入sys模块
3
4 pygame.init() #初始化pygame
5 size = width,height = (1040,750) #设置窗口 (根据自己的电脑显示器进行调整)
6 screen = pygame.display.set_mode(size)#显示窗口
7 color = (0,0,0) #设置颜色
8
9 ball = pygame.image.load("ball.jpeg") #加载图片
10 ballrect = ball.get_rect() #获取矩形区域
11
12 speed = [1,1] #设置移动的x轴,y轴距离(数值越大越快)
13 while True: #执行死循环,确保窗口一直显示,并检查事件
14 for event in pygame.event.get():
15 if event.type == pygame.QUIT: #如果单击关闭窗口,则退出
16 sys.exit()
17
18 ballrect = ballrect.move(speed) #移动小球
19 if ballrect.left <0 or ballrect.right > width:
20 speed[0] = -speed[0]
21 if ballrect.top <0 or ballrect.bottom >height:
22 speed[1] = -speed[1]
23
24 screen.fill(color) #填充颜色
25 screen.blit(ball,ballrect) #将图片画到窗口上
26 pygame.display.flip() #更新全部显示
27
28 pygame.quit()
运行效果:

五、函数积累
pygame.init() --初始化pygame
pygame.display.set_mode(size) --显示窗口
pygame.display.flip() --更新全部显示
pygame.image.load("图片名+格式") --加载图片
pygame.event.get() --获取事件队列
pygame.QUIT --退出pygame
event.type --单击操作
sys.exit()
Python实验报告(第13章)的更多相关文章
- Python实验报告——第4章 序列的应用
实验报告 [实验目的] 1.掌握python中序列及序列的常用操作. 2.根据实际需要选择使用合适的序列类型. [实验条件] 1.PC机或者远程编程环境. [实验内容] 1.完成第四章 序列的应用 实 ...
- Python实验报告——第3章 流程控制语句
实验报告 [实验目的] 1.掌握python中流程控制语句的使用,并能够应用到实际开发中. [实验条件] 1.PC机或者远程编程环境 [实验内容] 1.完成第三章流程控制语句实例01-09,实战一到实 ...
- Python实验报告——第2章 Python语言基础
实验报告 [实验目的] 1.熟悉在线编程平台. 2.掌握基本的 python 程序编写.编译与运行程序的方法. [实验条件] 1.PC机或者远程编程环境 [实验内容] 1.完成第二章实例01-07,实 ...
- #Python学习笔记:1-3章 (基于《python编程,从入门到实践)
第1-3章 这个文档是记录我学习python时一些学习笔记以及一些想法也可以称作复习笔记 第一章:起步这一章主要是从第一个"hello world"程序到python环境的搭建与配 ...
- python实验报告(第五周)
一.实验目的和要求 学会使用字符串的常用操作方法和正确应用正则表达式. 二.实验环境 软件版本:Python 3.10 64_bit 三.实验过程 1.实例1:使用字符串拼接输出一个关于程序员的笑话 ...
- Python实验报告(第四周
一.实验目的和要求 学会应用列表.元组.字典等序列: 二.实验环境 软件版本:Python 3.10 64_bit 三.实验过程 1.实例1:输出每日一贴 (1)在IDLE中创建一个名称为tips.p ...
- Python for Infomatics 第13章 网页服务四(译)
这几天因为其他事务,打断了自己的学习计划,今天继续我的翻译,避免又中途而废. 注:文章原文为Dr. Charles Severance 的 <Python for Informatics> ...
- Python for Infomatics 第13章 网页服务三(译)
注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 13.6 应用程序接口API 现 ...
- Python for Infomatics 第13章 网页服务二(译)
注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 13.4 JavaScript ...
- Python for Infomatics 第13章 网页服务一(译)
注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 一旦利用程序通过HTTP协议获得 ...
随机推荐
- 一篇文章带你掌握主流办公框架——SpringBoot
一篇文章带你掌握主流办公框架--SpringBoot 在之前的文章中我们已经学习了SSM的全部内容以及相关整合 SSM是Spring的产品,主要用来简化开发,但我们现在所介绍的这款框架--Spring ...
- SSM框架整合图书管理项目
SSM框架整合 1.建立简单的maven项目 2.导入依赖 <?xml version="1.0" encoding="UTF-8"?> <p ...
- 后端框架的学习----mybatis框架(7、使用注解开发)
7.使用注解开发 1.注解在接口上实现 /** * 查询用户 */ @Select("select * from user") public List<User> ge ...
- [Oracle]复习笔记-SQL部分内容
Oracle笔记--SQL部分 整体框架 语句的执行顺序:from →where →group by→having→select→order by select * from * where * gr ...
- 七、docker镜像私有仓库
在Docker中,当我们执行 docker pull xxx 的时候 ,它实际上是从 hub.docker.com 这个地址去查找,这就是 Docker 公司为我们提供的公共仓库.在工作中,我们不可能 ...
- C. 连锁商店(状压dp)
C. 连锁商店 time limit per test 1 second memory limit per test 512 megabytes input standard input output ...
- 4.drf-版本管理
根据RESTful规范,后端API中需要体现出版本,DRF中支持5种版本的设置,常见的三种如下 1. URL的GET中传递参数 在视图类中定义 from rest_framework.versioni ...
- C#使用不安全指针来操作bitmap
C#允许通过不安全指针实现像C++一样操作指针,这个速度是最快的.下面这个例子是修改一幅RGB图像的每个像素值,速度很快,测试一张2592*1944的彩色图像,只需要几ms就能够全部遍历. /// & ...
- 基于python的数学建模---Fuzzy C-Means(模糊C均值聚类)
簇数的确定: 要用到k-means里面的轮廓系数 基于python的数学建模---轮廓系数的确定 - 坤丶 - 博客园 (cnblogs.com) 模糊c的代码 import copy import ...
- cJson 学习笔记
cJson 学习笔记 一.前言 思考这么一个问题:对于不同的设备如何进行数据交换?可以考虑使用轻量级别的 JSON 格式. 那么需要我们手写一个 JSON 解析器吗?这大可不必,因为已经有前辈提供了开 ...