实验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章)的更多相关文章

  1. Python实验报告——第4章 序列的应用

    实验报告 [实验目的] 1.掌握python中序列及序列的常用操作. 2.根据实际需要选择使用合适的序列类型. [实验条件] 1.PC机或者远程编程环境. [实验内容] 1.完成第四章 序列的应用 实 ...

  2. Python实验报告——第3章 流程控制语句

    实验报告 [实验目的] 1.掌握python中流程控制语句的使用,并能够应用到实际开发中. [实验条件] 1.PC机或者远程编程环境 [实验内容] 1.完成第三章流程控制语句实例01-09,实战一到实 ...

  3. Python实验报告——第2章 Python语言基础

    实验报告 [实验目的] 1.熟悉在线编程平台. 2.掌握基本的 python 程序编写.编译与运行程序的方法. [实验条件] 1.PC机或者远程编程环境 [实验内容] 1.完成第二章实例01-07,实 ...

  4. #Python学习笔记:1-3章 (基于《python编程,从入门到实践)

    第1-3章 这个文档是记录我学习python时一些学习笔记以及一些想法也可以称作复习笔记 第一章:起步这一章主要是从第一个"hello world"程序到python环境的搭建与配 ...

  5. python实验报告(第五周)

    一.实验目的和要求 学会使用字符串的常用操作方法和正确应用正则表达式. 二.实验环境 软件版本:Python 3.10 64_bit 三.实验过程 1.实例1:使用字符串拼接输出一个关于程序员的笑话 ...

  6. Python实验报告(第四周

    一.实验目的和要求 学会应用列表.元组.字典等序列: 二.实验环境 软件版本:Python 3.10 64_bit 三.实验过程 1.实例1:输出每日一贴 (1)在IDLE中创建一个名称为tips.p ...

  7. Python for Infomatics 第13章 网页服务四(译)

    这几天因为其他事务,打断了自己的学习计划,今天继续我的翻译,避免又中途而废. 注:文章原文为Dr. Charles Severance 的 <Python for Informatics> ...

  8. Python for Infomatics 第13章 网页服务三(译)

    注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 13.6 应用程序接口API 现 ...

  9. Python for Infomatics 第13章 网页服务二(译)

    注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 13.4 JavaScript ...

  10. Python for Infomatics 第13章 网页服务一(译)

    注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 一旦利用程序通过HTTP协议获得 ...

随机推荐

  1. Codeforces Round #708 (Div. 2)

    A题被hack,A题很简单,其实题目没看懂,直接看样例做的. B题题意是以为懂了,但是样例一直看不懂. 经验:要两两相加能被一个m整除数组sum最少,利用他们的余数就可以设为a[x], x是余数,如果 ...

  2. P2216 [HAOI2007]理想的正方形 方法记录

    [HAOI2007]理想的正方形 题目描述 有一个 \(a \times b\) 的整数组成的矩阵,现请你从中找出一个 \(n \times n\) 的正方形区域,使得该区域所有数中的最大值和最小值的 ...

  3. JavaScript事件驱动

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  4. 使用MVC的实现登录注册功能

    文章目录 1.视图层(View)页面的编写: 1.1.登录页面 1.2.注册页面 2.控制层(Controller)的编写 2.1. 注册 2.2 .登录 2.3 .实体类 3.Model层(Mode ...

  5. vue3学习记录(新特性)

    总概 1) 性能提升 打包大小减少 41% 初次渲染快 55%,更新渲染快 133% 内存减少 54% 使用 Proxy 代替 defineProperty 实现数据响应式 重写虚拟 DOM 的实现和 ...

  6. centos 7.6镜像_Centos7 配置本地yum源为iso镜像

    创建挂载路径 sudo mkdir /media/iso 挂载ISO镜像到目录 sudo mount -o loop CentOS-7-x86_64-Minimal-1810.iso /media/i ...

  7. Dropout原理分析

    工作流程 dropout用于解决过拟合,通过在每个batch中删除某些节点(cell)进行训练,从而提高模型训练的效果. 通过随机化一个伯努利分布,然后于输入y进行乘法,将对应位置的cell置零.然后 ...

  8. CSS line-break属性与中文标点换行

    关于标点符号把文字带着换行的问题解决方案 出现的问题 最近在弄一个介绍页面的时候遇到一个很巧的问题,在文本换行的时候刚好能够放下文字,但是标点符号把这个文字带着换行了 如下图所示: 如果的在上一行显示 ...

  9. Oracle中查询表结构的六种方法

    首发微信公众号:SQL数据库运维 原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485212&idx=1 ...

  10. Springboot数据库的配置问题

    mysql时区问题 先前的代码如下 spring: datasource: url: jdbc:mysql://localhost:3306/test username: root password: ...