实验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. 一篇文章带你掌握主流服务层框架——SpringMVC

    一篇文章带你掌握主流服务层框架--SpringMVC 在之前的文章中我们已经学习了Spring的基本内容,SpringMVC隶属于Spring的一部分内容 但由于SpringMVC完全针对于服务层使用 ...

  2. 关于在Linux上安装aws cli版本1的记录

    AWS Command Line Interface (AWS CLI) 是一种开源工具,让您能够在命令行 Shell 中使用命令与 AWS 服务进行交互. 因公司项目要求,要在Linux服务器安装a ...

  3. FluentValidation 验证(一):WebApi 中使用 基本使用

    FluentValidation.AspNetCore 引入包 public class Login2RequestValidator : AbstractValidator<Login2Req ...

  4. KMP模式匹配 学习笔记

    功能 能在线性时间内判断字符串\(A[1~N]\)是否为字符串\(B[1~M]\)的子串,并求出字符串\(A\)在字符串\(B\)中各次出现的位置. 实现 1.对字符串\(A\)进行自我"匹 ...

  5. 利用Hutool-(Java工具类)实现验证码校验

    目录 Hutool工具类介绍 Hutool实现验证码生成 测试验证码生成 其他样式的验证码 第一篇是纯利用现有JDK提供的绘图类(ImageIO)类制作,这个过程比较复杂且需要了解ImageIO类. ...

  6. 一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)

    这里是参考B站上的大佬做的面试题笔记.大家也可以去看视频讲解!!! 文章目录 1.分布式架构下,Session共享有什么方案 2.简述你对RPC.RMI的理解 3.分布式id生成方案 4.分布式锁解决 ...

  7. Vue3 SFC 和 TSX 方式自定义组件实现 v-model

    1 v-model 1.1 理解 v-model v-model 是 vue3 中的一个内置指令,很多表单元素都可以使用这个属性,如 input.checkbox 等,咱可以在自定义组件中实现 v-m ...

  8. 如何实现一个SQL解析器

    ​作者:vivo 互联网搜索团队- Deng Jie 一.背景 随着技术的不断的发展,在大数据领域出现了越来越多的技术框架.而为了降低大数据的学习成本和难度,越来越多的大数据技术和应用开始支持SQL进 ...

  9. 《HelloGitHub》第 79 期

    兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. https://github.com/521xueweiha ...

  10. Debian玩红警2

    Debian玩红警2 1. 安装wine sudo apt update sudo apt install wine wine --version wine-5.0.3 (Debian 5.0.3-3 ...