实验报告
1、实验目的和要求
了解并掌握Pygame的基本应用
2、实验环境
笔记本与Python书本
3、实验过程
实例01 制作一个跳跃的小球游戏
创建一个游戏窗口,然后在游戏窗口内创建一个小球。以一定速度移动小球,当小球碰到游戏窗口的边缘时,小球弹回,继续移动。
步骤:(1)创建一个游戏窗口,宽和高设置为640*480.
# -*- coding:utf-8 -*- import pygame import sys pygame.init() #初始化pygame size = width, height = 320,240 #设置窗口 screen = pygame.display.set_mode(size)#显示窗口 #执行死循环,确保窗口一直显示 while True: #检查事件 for event in pygame.event.get(): #遍历所有事件 if event.type == pygame.QUIT: #如果单击关闭窗口,则退出 sys.exit() pygame.quit() #退出pygame
(2)运行上述代码,会出现一个一闪而过的黑色窗口,这是因为程序执行完成后,会自动关闭。如果让窗口一直显示,需要使用while True让程序一直执行,此外,还需要设置关闭按钮。
(3)在窗口添加小球。让我们先准备好ball.png图片,然后加载该图片,最后将图片显示在窗口中
(4)下面该让小球动起来了。ball.get_rect()方法返回值ballrect是一个Rect对象,该对象有一个move()方法可以用于移动矩形。move(x,y)函数有两个参数,第一个参数是X轴移动的距离,第二个参数是Y轴移动的距离。窗体左上角坐标为(0,0),如果设置move(100,50),小球移动后的坐标位置改变
(5)小球在屏幕中一闪而过,没有真正消失,而是移动到窗体外,此时需要添加碰撞检测的功能。当小球与窗体任一边发生碰撞,则更改小球的移动方向。
(6)由于小球在飞速运转,需要添加“时钟”来控制程序运行的时间。这时就需要使用Pygame的time模块。必须先创建Clock对象,然后在while循环中设置多长时间循环一次
import pygame #导入pygame模块 import sys #导入sys模块 pygame.init() #初始化pygame size = width,height = (1040,750) #设置窗口 (根据自己的电脑显示器进行调整) screen = pygame.display.set_mode(size)#显示窗口 color = (0,0,0) #设置颜色 ball = pygame.image.load("ball.jpeg") #加载图片 ballrect = ball.get_rect() #获取矩形区域 speed = [1,1] #设置移动的x轴,y轴距离(数值越大越快) while True: #执行死循环,确保窗口一直显示,并检查事件 for event in pygame.event.get(): if event.type == pygame.QUIT: #如果单击关闭窗口,则退出 sys.exit() ballrect = ballrect.move(speed) #移动小球 if ballrect.left <0 or ballrect.right > width: speed[0] = -speed[0] if ballrect.top <0 or ballrect.bottom >height: speed[1] = -speed[1] screen.fill(color) #填充颜色 screen.blit(ball,ballrect) #将图片画到窗口上 pygame.display.flip() #更新全部显示 pygame.quit()
4、实验结果分析
实例与实战的编程结果都正确,但是编码相比比较混杂,可以更简洁些,而且实战有参考网上答案,希望之后可以自己编码。
标签:12,窗口,ballrect,Python,小球,pygame,2022,speed,event From: https://www.cnblogs.com/huziying13/p/16947242.html