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协议获得 ...
随机推荐
- 关于WinSCP如何通过Tunnel隧道进行远程连接-进行文件的传输
对于公司业务相关的重要的Linux服务器,一般都会限制源IP登录,一般就会使用到jumper server(跳板机) 这样一来,我们的Client就无法直接ssh/scp/sftp到目标服务器了,这样 ...
- pgsql 的问题
pgsql 怎么插入inet类型的数据?insert into table (remote_addr) values ( ?::INET); pgsql如何截取时间的精度 select create ...
- selenium4-定位单个页面元素
在操作各项页面元素之前,先介绍下如何通过Python代码来找到这些元素.WebDriver提供了18种元素定位方法,共分为两类(定位当个元素.定位组元素),本节先举例详细介绍下selenium4-定位 ...
- Ubuntu 环境下安装 Docker
系统要求 Docker目前只能运行在64位平台上,并且要求内核版本不低于3.10,实际上内核越新越好,过低的内核版本容易造成功能不稳定. 用户可以通过如下命令检查自己的内核版本详细信息: $ unam ...
- 一键上手时下最火AI作画工具
摘要:在华为云ModelArts上, 无需考虑计算资源.环境的搭建,就算不懂代码,也能按照教程案例,通过Stable Diffusion成为艺术大师. 本文分享自华为云社区<跟着华为云Model ...
- HTML+CSS基础知识(4)简单的广告界面
文章目录 1.网页实例 1.1 代码 1.2 测试效果 1.网页实例 1.1 代码 css样式 /* 清除页面样式 */ *{ margin:0; padding: 0; } /* 统一页面的样式 * ...
- python关于Django搭建简单博客项目 详解二-setting.py
这一篇我们来讲解setting.py,具体内容以注释形式写入到下面的setting.py代码中,篇幅所限已把官方所给英文注释删除. 全部源代码和详解请参看http://github.com/Cheng ...
- XAF新手入门 - 模块(Module)
模块概述 谈到模块大家应该都不会感到陌生,不管是前端还是后端都有模块的概念,XAF中的模块概念与大多数框架中的模块概念是相通的.XAF模块首先是一个.NET类库,同时它还包含一个继承自ModuleBa ...
- 浅谈--ETCD的基本概念及用法
1. 简介 ETCD 是一个高可用的分布式键值数据库,可用于服务发现.ETCD 采用 raft 一致性算法,基于 Go 语言实现. raft是一个强一致的集群日志同步算法. ETCD使用gRPC,网络 ...
- linux-web基础
web基础 [TOC] 网上冲浪 网上冲浪:在Internet互联网上获取各种信息,进行工作.娱乐,在英文中上网是" surfing the internet",因"su ...