首页 > 编程语言 >2022/12/3 Python实验报告

2022/12/3 Python实验报告

时间:2022-12-03 11:45:52浏览次数:43  
标签:12 窗口 ballrect Python 小球 pygame 2022 speed event

  实验报告

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

相关文章

  • 零基础学python 第七章
    实例1:创建大雁类并定义飞行方法classGeese:'''大雁类'''def__init__(self,beak,wing,claw):print("我是大雁类!我有以下特征:")print(be......
  • PythonWeb开发:90分钟用Flask搭建博客
    来自https://www.bilibili.com/video/BV1gh411q7xo?p=2&vd_source=54aa98683b2f8392aec4499961f896ce1.环境准备1.1搭建虚拟环境在项目文件夹下打开控制台,输入pytho......
  • python游戏编程
     一,实验目的Pygame是跨平台Python模块,专为电子游戏设计(包含图像、声音),创建在SDL基础上,允许实时电子游戏研发而不被低级语言舒服。基于这一设想,所有需要的游戏功能和理......
  • 2022年Kubernetes CKA 认证真题解析完整版
    第一题RBAC授权问题权重:4%设置配置环境:[student@node-1]$kubectlconfiguse-contextk8sContext为部署管道创建一个新的ClusterRole并将其绑定到范围为特定的name......
  • 2022-2023-1 20221318 《计算机基础和程序设计》第十四周学习总结
    这个作业属于那个班级https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求https://www.cnblogs.com/rocedu/p/9577842.html#WEEK14作业目标学习《C语言程......
  • 互联网最全cka真题解析-2022
    1、CKA真题解析kubectl自动补全及帮助信息1、配置kubectl自动补全aptinstallbash-completionsource<(kubectlcompletionbash)2、kubectlexplans帮助信息3、kubec......
  • 最新 2022 年 Kubernetes 面试题高级面试题及附答案解析
    题1:KubernetesService都有哪些类型?通过创建Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并且将请求负载分发到后端的各个容器应用上。其主要类型......
  • 运行python报错 此系统上禁止运行脚本
    无法加载文件D:\PycharmProjects\jingdong_app\venv\Scripts\activate.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅https:/go.microsoft.com/fwlink/?LinkID=135......
  • python | 一个简单的icmp shell实现(不完善)
    python|一个简单的icmpshell实现(不完善)一个是server端,一个是cilent端,其实问题还是很多的,尤其是在真实网络中的时候,这个shell只适用于直连的情况,并且data不能太大(因为ic......
  • python:一个pygame篮球自动弹跳
    一个pygame篮球自动弹跳代码:importsysimportpygamepygame.init()size=width,height=640,480screen=pygame.display.set_mode(size)color=(0,0,0)bal......