返回顶部
首页 > 资讯 > 后端开发 > Python >教你利用pygame模块制作跳跃小球小游戏
  • 328
分享到

教你利用pygame模块制作跳跃小球小游戏

2024-04-02 19:04:59 328人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

前言 pygame是用来开发游戏的一套基于SDL的模板,它可以是python创建完全界面化的游戏和多媒体程序,而且它基本上可以在任何系统上运行。本文将详细介绍你利用pygame模块制

前言

pygame是用来开发游戏的一套基于SDL的模板,它可以是python创建完全界面化的游戏和多媒体程序,而且它基本上可以在任何系统上运行。本文将详细介绍你利用pygame模块制作跳跃小球小游戏的相关内容,下面来一起看看吧

实现方法

首先创建一个游戏窗口,然后再窗口内创建一个小球。以一定的速度移动小球,当小球碰到游戏窗口的边缘时,小球弹回,继续移动。可以按照如下步骤实现该功能。

(1)首先来创建一个游戏窗口,宽和高设置为640×480.代码如下:


import sys                               #导入sys模块
import pygame                            #导入pygame模块
pygame.init()                            #初始化pygame
size=with,height=640,480                 #设置窗口大小
screen=pygame.display.set_model(size)    #显示窗口

上述代码中,首先导入pygame模块,该模块在上一篇文章中介绍过,直接用pip命令安装即可。然后调用init()方法初始化pygame模块。接下来,设置窗口的宽和高,最后使用display模块显示窗体。display模块的常用方法如下: 

方法名 功能
pygame.display.init 初始化init模块
pygame.display.quit 结束display模块
pygame.display.get_init 如果display模块已经被初始化,则返回true
pygame.display.set_mode 初始化一个准备显示的界面
pygame.display.get_surface 获取当前的surface对象
pygame.display.flip 更新整个待显示的surface对象到屏幕上
pygame.display.update 更新部分内容显示到屏幕上,如果没有参数则与flip功能相同

(2)当我们运行上述代码时,会出现一个一闪而过的窗口,这是因为程序执行完毕后会自动关闭。如果让窗口一直显示,需要使用while true循环让程序一直执行,此外,还需要设置关闭按钮。如果不设置关闭按钮,虽然在界面会显示红叉关闭按钮,但点击后就会出现程序无响应的错误,然后强制关闭了程序。

PyCharm演示如下

代码:

运行:

点击红叉就会关闭窗口。

上述代码中,添加了轮询时间监测。pygame.event.get()能够获取事件队列,使用for  in遍历事件,然后根据type属性判断事件类型。这里的事件处理方式与GUI类似,如event.type等于pygame.QUIT表示检测到关闭pygame窗口事件,pygame.KEYDOWN表示键盘按下事件,pygame.MOUSEBUTTONDOWN表示鼠标按下事件等。

(3)在窗口中添加小球。我们先准备一张ball.png图片,然后加载图片,最后将图片显示在窗口中,在pycharm中演示如下。

代码:

运行:

上述代码中,使用image模块的load方法加载图片,返回值ball是一个surface对象。surface是用来代表图片的pygame对象,可以对一个surface对象进行涂画、变形、复制等各种操作。事实上,屏幕也只是一个surface,pygame.display.set_mode就返回了一个屏幕surface对象。如果将ball这个surface对象画到screen surface对象,需要使用blit()方法,最后使用display方法更新整个待显示的surface对象到屏幕上。surface对象常用方法如下:

方法名 功能
pygame.Surface.blit 将一个图像画到另一个图像上
pygame.Surface.convert 转换图像的像素格式
pygame.Surface.convert_alpha 转换图像的像素格式,包含alpha通道的转换
pygame.Surface.fill 使用颜色填充surface
pygame.Surface.get_rect 获取surface的矩形区域

 (4)上面的小球是静止的,下面我们该让小球动起来了。ball.get_rect()方法返回值ballrect是一个rec对象,该对象有一个move()方法可以用于移动矩形。move(x,y)函数有两个参数,第一个参数是x轴移动的距离,第二个参数是y轴移动的距离。窗体左上角坐标为(0,0)。

为了实现小球不停地移动,将move()函数添加到while循环内,具体代码如下:

我们在原代码的基础上加上了这两行代码。运行后却发现小球一闪而过,但小球并没有真正的笑死,而是移动到窗体之外,此时需要添加碰撞监测的功能。当小球与窗体的任意边缘发生碰撞,则更改小球的移动方向。

代码如下:

在原有代码中添加上面的碰撞判断代码,运行如下

小球在界面飞速运动。然后我们需要控制小球移动的速度。首先介绍一下上面的代码,上面代码中,添加了碰撞监测功能。如果碰到左右边缘,这则更改x轴数据为负数;如果碰到上下边缘,则更改y轴数据为负数。

那么我们怎样控制小球移动的速度呢?这时我们需要添加一个“时钟”来控制程序运行的时间。这时就需要使用pygame的time模块。使用pygame时钟之前,必须先创建clock对象的一个实例,然后再while循环中设置多长时间运行一次。代码如下【也就是最终代码,由于运动效果无法展示,各位还是自行运行查看效果^_^】:


# -*- coding:utf-8 -*-
import sys  # 导入sys模块
import pygame  # 导入pygame模块
 
pygame.init()  # 初始化pygame
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]  # 设置移动的X轴、Y轴距离
clock = pygame.time.Clock()  # 设置时钟
# 执行死循环,确保窗口一直显示
while True:
    clock.tick(60)  # 每秒执行60次
    # 检查事件
    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()  # 退出pygame

上述代码中在上面代码中添加了:

clock=pygame.time.Clock()      #设置时钟

以及循环中的

clock.tick(60)           #每秒执行60次

这样我们再次运行就会出现小球缓慢移动并碰撞边缘改变方向的效果了。

总结

到此这篇关于pygame模块制作跳跃小球小游戏的文章就介绍到这了,更多相关pygame跳跃小球小游戏内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 教你利用pygame模块制作跳跃小球小游戏

本文链接: https://www.lsjlt.com/news/132805.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 教你利用pygame模块制作跳跃小球小游戏
    前言 pygame是用来开发游戏的一套基于SDL的模板,它可以是python创建完全界面化的游戏和多媒体程序,而且它基本上可以在任何系统上运行。本文将详细介绍你利用pygame模块制...
    99+
    2024-04-02
  • 教你用Matlab制作黄金矿工小游戏
    目录效果步骤图片准备背景构建绘制爪子让爪子转起来绘制石块点击下箭头移动爪子爪子与石头和边缘碰触判断抓取石块和显示金钱完整代码效果 步骤 图片准备 本文所使用图片在这 背景构建 f...
    99+
    2024-04-02
  • 教你使用Python的pygame模块实现拼图游戏
    目录pygame介绍安装pygamepygame常用模块pygame入门案例pygame实现拼图游戏总结pygame介绍 Python Pygame 是一款专门为开发和设计 2D 电...
    99+
    2024-04-02
  • 教你使用python做一个“罚点球”小游戏
    在学习了一点 Python 基础之后,我们可以做一个罚点球的小游戏,大概流程是这样: 每一轮,你先输入一个方向射门,然后电脑随机判断一个方向扑救。方向不同则算进球得分,方向相同算扑救...
    99+
    2024-04-02
  • 教你用Pygame制作简单的贪吃蛇游戏
    目录1.序言2.安装与导入3.定义后续需要的参数4.绘制蛇与食物5.游戏规则与运行6.成品展示7.完整代码总结1.序言 目前基本上软测会用到的工具或者第三方库都已经被写完,本着不要逮...
    99+
    2024-04-02
  • 怎么用Python+Pygame制作简易版2048小游戏
    这篇文章主要介绍了怎么用Python+Pygame制作简易版2048小游戏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用Python+Pygame制作简易版2048小游戏文章都会有所收获,下面我们一起来看...
    99+
    2023-06-29
  • 使用pygame制作一个贪吃蛇的小游戏
    之前我们已经学习了如果使用pygame创建一个窗口,现在我们来学习使用pygame来制作一个经典的小游戏—贪吃蛇。首先我们需要导入待使用的模块:import pygame, sys, randomfrom pygame.locals imp...
    99+
    2023-06-02
  • 利用Matlab制作一款3D版2048小游戏
    其实逻辑和2维版本完全一样,就不进行详细解说了,直接看效果: 效果: 目前界面还不咋好看,期待大家的优化 还是键盘↑↓←→操作嗷 完整代...
    99+
    2024-04-02
  • 利用java制作一个猜数字小游戏
    今天就跟大家聊聊有关利用java制作一个猜数字小游戏,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。具体方法如下:package com.swift;import java.util....
    99+
    2023-05-31
    java ava
  • 利用pixi.js制作简单的跑酷小游戏
    目录前言项目地址demo地址初始化项目主要逻辑useParkouruseSceneuseHurdlePlayer前言 此项目使用pixi.js和vue实现,部分素材来自爱给网,本项目...
    99+
    2024-04-02
  • 详解如何利用Python制作24点小游戏
    目录先睹为快游戏规则(改编自维基百科)逐步实现Step1:制作24点生成器Step2:定义游戏精灵类Step3:实现游戏主循环先睹为快 24点 游戏规则(改编自维基百科) 从1~10...
    99+
    2024-04-02
  • 利用Matlab制作一款狗头翻牌子小游戏
    目录0游戏效果1fig界面和背景板2狗狗牌子与胜利标志2.1狗狗牌子绘制2.2游戏胜利标签2.3鼠标点击牌子回调3游戏难度按钮组3.1按钮绘制3.2难度选择回调4游戏刷新模块4.1刷...
    99+
    2024-04-02
  • 利用Vue.js制作一个拼图华容道小游戏
    目录游戏介绍核心思路核心代码htmlgames 类生成随机图片数量移动图片键盘事件拼图完成结语游戏介绍 先看看界面 这是一个拼图游戏,可以自选难度和自选闯关图片 游戏开始后根据...
    99+
    2024-04-02
  • 手把手教你用vue3开发一个打砖块小游戏
    前言 用vue3写了几个实例,感觉Vue3的composition Api设计得还是很不错,改变了一下习惯,但写多两个就好了。 这次写一个也是儿时很觉得很好玩的游戏-打砖块, 无聊...
    99+
    2024-04-02
  • 使用python怎么制作一个俄罗斯方块小游戏
    这期内容当中小编将会给大家带来有关使用python怎么制作一个俄罗斯方块小游戏,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Pyth...
    99+
    2023-06-14
  • 如何利用Matlab制作一款真正的拼图小游戏
    效果: 简单原理介绍: 1构造0,1矩阵作为每片拼图的透明度,可以构造出不规则形状的拼图(image函数有alphaData属性可以设置) jigsawMask=zeros...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作