基于python的小游戏毕业设计,pygame小游戏实验报告

大家好,本文将围绕关于python小游戏的毕业论文展开说明,基于python的小游戏毕业设计是一个很多人都想弄明白的事情,想搞清楚pygame小游戏实验报告需要先了解以下几个事情。

大家好,本文将围绕关于python小游戏的毕业论文展开说明,基于python的小游戏毕业设计是一个很多人都想弄明白的事情,想搞清楚pygame小游戏实验报告需要先了解以下几个事情。

Source code download: 本文相关源码

20221320 2022-2023-2 《Python程序设计——Python综合实践》实验四报告

课程:《Python程序设计》
班级: 2213
姓名: 冯泰瑞
学号:20221320
实验教师:王志强
实验日期:2022年5月11日
必修/选修: 公选课

1.实验内容

Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等c语言和python哪个吃香
本次结课大作业选择了编写游戏的方向,以学习制作弹球游戏为基础,用python程序实现经典游戏Flappy Bird

2. 实验过程及结果(本模块有3个游戏,弹球游戏版块学习了Pygame常用模块,Flappy Bird游戏版块实现了在弹球游戏中学习的Pygame常用模块的应用,并在书上实现的游戏功能基础上做了一定改进,滑雪大冒险游戏版块实现了对书上Flappy Bird游戏代码讲解的拓展应用,实验分析、设计、实现过程、结果等信息详见以下描述)
首先是学习Flappy Bird的游戏基础:弹球游戏
1.使用pygame中的display模块和event模块创建一个Pygame窗口python自动化运维库。代码如下:
import sys
import pygame

pygame.init()
size = width,height = 320,240
screen = pygame.display.set_mode(size)

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
运行结果如下:

在这里插入图片描述

2.创建一个游戏窗口,宽和高设置为640*480。代码如下:
import sys
import pygame

pygame.init()
size = width,height = 640,480
screen = pygame.display.set_mode(size)
运行结果如下:

在这里插入图片描述

3.运行上述代码,会发现一个闪现的黑色窗口,这是因为程序执行完成后,会自动关闭。如果让窗口一直显示着,需要使用while True 让程序一直执行,此外,还需要设置关闭按钮。代码如下:
import sys
import pygame

pygame.init()
size = width,height = 640,480
screen = pygame.display.set_mode(size)

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
运行结果如下:

在这里插入图片描述

4.在窗口中加载小球。我们先准备好一张ball.png图片,然后加载该图片,最后将图片显示在窗口中,代码如下:
import sys
import pygame

pygame.init()
size = width,height = 640,480
screen = pygame.display.set_mode(size)
color = (0,0,0)

ball = pygame.image.load("ball.png")
ballrect = ball.get_rect()

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    screen.fill(color)
    screen.blit(ball,ballrect)
    pygame.display.flip()

运行结果如下:

在这里插入图片描述

5.下面该让球动起来啦。ball.get_rect()方法返回值ballrect是一个Rect对象,该对象有一个move()方法可以用于移动矩形。move(x,y)函数有两个参数,第一个参数是X轴移动的距离,第二个参数是Y轴移动的距离。为实现小球不停地移动,将move()函数添加while循环内,代码如下:
import sys
import pygame

pygame.init()
size = width,height = 640,480
screen = pygame.display.set_mode(size)
color = (0,0,0)

ball = pygame.image.load("ball.png")
ballrect = ball.get_rect()

speed = [1,1]

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    ballrect = ballrect.move(speed)
    screen.fill(color)
    screen.blit(ball,ballrect)
    pygame.display.flip()

运行结果如下:

在这里插入图片描述

6.运行上述代码,发现小球在屏幕中一闪而过,此时,小球并没有真正消失,而是移动到窗口之外,此时需要添加碰撞检测功能。当小球与窗体任何一边发生碰撞,则更改小球的移动方向。代码如下:
import sys
import pygame

pygame.init()
size = width,height = 640,480
screen = pygame.display.set_mode(size)
color = (0,0,0)

ball = pygame.image.load("ball.png")
ballrect = ball.get_rect()

speed = [5,5]

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            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()

运行结果如下:

实验四运行视频1

6.运行上述代码发现好像有多个小球在飞快移动,这是因为运行上述代码的时间非常短,导致肉眼观察出现错觉,因此需要添加一个“时钟”来控制程序运行的时间。这时就需要使用Pygame的time模块。使用Pygame时钟之前,必须先创建Clock对象的一个实例,然后在while循坏中设置多长时间运行一次。代码如下:
import sys
import pygame

pygame.init()
size = width,height = 640,480
screen = pygame.display.set_mode(size)
color = (0,0,0)

ball = pygame.image.load("ball.png")
ballrect = ball.get_rect()

speed = [5,5]
clock = pygame.time.Clock()

while True:
    clock.tick(60)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            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()

运行结果如下:

实验四运行结果2

7.上传到Gitee:

在这里插入图片描述

学习制作弹球游戏之后,我们就学会了Pygame的基本应用,接下来就可以用这些知识来制作Flappy Bird游戏啦。
Flappy Bird游戏设计:

玩家通过点击鼠标来操控游戏。游戏中小鸟会不断向前飞,玩家点击鼠标后,小鸟会向上飞一段距离。否则,小鸟会因为重力的作用向下降。小鸟每成功飞过一段立柱,游戏得分加一。游戏过程中小鸟如果碰到了上下边缘或者移动的立柱就会死亡,游戏结束。

Flappy Bird游戏分析:

在Flappy Bird小游戏中,主要有两个对象:小鸟和管道,可以创建Bird类和Pipeline类来分别表示这两个对象。小鸟可以通过上下移动来躲避管道,所以在Bird类中创建一个birdUpdate()方法,实现小鸟的上下移动。为了体现小鸟向前飞行的特征,可以让管道一直向左移动,这样因为相对运动,在窗口中看起来就像是小鸟在向前运动一样。所以,在Pipeline类中也创建一个updatePipeline()方法,实现管道向左移动。此外,还创建了3个函数:createMap()函数用于绘制地图:cheekDead函数用于判断小鸟的生命状态:getResult()函数用于计算最终得分,最后在主逻辑中,实例化类并调用相关方法,实现相应功能。

Flappy Bird游戏实现过程:
1.我们先搭建起Flappy Bird游戏的主框架。Flappy Bird游戏有两个对象:小鸟和管道。先来创建这两个类,类中具体方法可以先使用pass语句代替。然后创建一个绘制地图的函数createMap()最后,在主逻辑中绘制背景图片。代码如下:
import pygame
import sys
import random

class Bird(object):
    def __init__(self):
        """定义一个鸟类"""
        pass

    def birdUpdate(self):
        pass
class Pipeline(object):
    def __init__(self):
        """定义一
  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值