Python|pygame基础之壁球游戏

简介: Python|pygame基础之壁球游戏

1前言

在学习编程的时候,由于算法训练的题目比较枯燥乏味,容易引起视觉疲惫,所以在这之余可以用编程写一些可视化的程序,比如今天小编给大家带来的pygame基础。其中会用一个壁球小游戏的实例来帮助大家记忆。


2准备

由于本文所使用的pygame是专为python打造的一个游戏库,所以需要python环境是必然的。这里小编就不讲了,自己到python官网下载安装。然后有了python环境后,还需要pip安装pygame,可以打开命令行输入以下代码即可安装。

pip install pygame


3步骤详解

配置好环境后,就可以跟着小编一起完成以下步骤。

3.1导入模块以及初始化

import pygame

import random

pygame.init() #初始化pygame中的类

3.2设置窗口

窗口的参数也与前面小编讲过的其他库类似,标题、大小、颜色等。

fpsClock = pygame.time.Clock()

fps = 500 #设置频率(可选)

screen = pygame.display.set_mode((700,700))

pygame.display.set_caption('壁球游戏')

3.3主循环

如果就这样运行会发现屏幕闪一下就没了,是因为pygame的工作原理是一遍一遍的将所有元素重新绘制在屏幕中,所以还需要设置主循环。设置了主循环还需要设置退出的条件,这里就设计到pygame的事件处理了。首先需要在pygame时间列表中循环时间,找到所产生的时间,因为要退出,所以时间类型为QUIT,然后直接用exit()函数退出程序。

while True:

    for event in pygame.event.get():

        if event.type == pygame.QUIT:

            exit()

    fpsClock.tick(fps)

    pygame.display.update()

其中update()函数就是不停的更新屏幕中的内容。这里可以运行看一下。

图3.1主窗口

3.4加载壁球

有了窗口后,就需要在上面加载壁球,其可选参数也是图片名称,位置。除此基本参数外,还可以自己设置壁球移动的速度和距离。

ball = pygame.image.load('resource/壁球.png')

b_x = 0

b_y = 250

distance_x = 1

distance_y = 1

speed = 2

screen.fill((r,g,b))

screen.blit(ball,(b_x,b_y))

与以往一样,所有的资源文件都放在与代码文件同目录下的resource文件中。做到这一步,此时的运行结果是:

图3.2加载壁球

3.5控制壁球

有了壁球后,对其坐标进行改变,再通过每次的刷新就可以实现壁球的移动了。为了代码的可读性,这里可以定义一个函数来实现这个功能。

def b_move():

    r, g, b = random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)

    global b_x,b_y,distance_x,distance_y,speed

    b_x += distance_x*speed

    b_y += distance_y*speed

    screen.fill((r,g,b))

    screen.blit(ball,(b_x,b_y))

    if b_x>=500 or b_x<=0:

        distance_x *= -1

    if b_y>=500 or b_y<=0:

        distance_y *= -1

    for event in pygame.event.get():

        if event.type == pygame.KEYDOWN:

            if event.key == pygame.K_RIGHT:

                speed = 4

            if event.key == pygame.K_LEFT:

                speed = 1

        if event.type == pygame.KEYUP:

            speed = 2

在壁球运动过程中,要注意壁球与边界的关系,可以自己在纸上画一画它们的对应坐标,从而更改壁球移动的方向,以防止壁球出界。还有可以通过事件处理,来对壁球移动速度的控制,上面的控制方式为当按下键盘上的右方向键(right)时为加速,速度变为4,松开变回原来的2,按下左键(left)时,速度变为1,即为减速,同样松开变回2。为了给自己带来一个视觉冲击,引入一个随机库,rgb颜色的三原色rgb分别通过随机库在0~255中产生一个整数。这样,屏幕的背景颜色就能一直随机变换。


4完整代码及运行效果

import pygame

import random

pygame.init() #初始化pygame中的类

fpsClock = pygame.time.Clock()

fps = 500 #设置频率(可选)

ball = pygame.image.load('resource/壁球.png')

screen = pygame.display.set_mode((700,700))

pygame.display.set_caption('壁球游戏')

b_x = 0

b_y = 250

distance_x = 1

distance_y = 1

speed = 2

def b_move():

    r, g, b = random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)

    global b_x,b_y,distance_x,distance_y,speed

    b_x += distance_x*speed

    b_y += distance_y*speed

    screen.fill((r,g,b))

    screen.blit(ball,(b_x,b_y))

    if b_x>=500 or b_x<=0:

        distance_x *= -1

    if b_y>=500 or b_y<=0:

        distance_y *= -1

    for event in pygame.event.get():

        if event.type == pygame.KEYDOWN:

            if event.key == pygame.K_RIGHT:

                speed = 4

            if event.key == pygame.K_LEFT:

                speed = 1

        if event.type == pygame.KEYUP:

            speed = 2

while True:

    for event in pygame.event.get():

        if event.type == pygame.QUIT:

            exit()

    b_move()

    fpsClock.tick(fps)

    pygame.display.update()

图4.1运行效果1

图4.2运行效果2


5总结

通过以上步骤,实现了一个壁球小游戏,虽然操作简单,但是这一个基础,用pygame编写游戏的基本框架就是如此,先设主窗口,然后定义主循环,最后布置所有的元素。

在学习算法时感到了枯燥,就可以自己写一些可视化高的程序,比如这些简单的小游戏和其他的小应用。当然,如果对这个比较感兴趣,还可以自己去深入研究,写点更好玩更复杂的游戏。具体内容,小编也会给大家通过实战展示,希望大家持续关注下周同一时间再见。


目录
相关文章
|
1月前
|
存储 Java C语言
【python】——使用嵌套列表实现游戏角色管理
【python】——使用嵌套列表实现游戏角色管理
35 0
|
4天前
|
算法 Python
Python 一步一步教你用pyglet制作汉诺塔游戏
Python 一步一步教你用pyglet制作汉诺塔游戏
16 0
|
18天前
|
存储 Python
如何使用Python实现“猜数字”游戏
本文介绍了使用Python实现“猜数字”游戏的过程。游戏规则是玩家在给定范围内猜一个由计算机随机生成的整数,猜对则获胜。代码中,首先导入random模块生成随机数,然后在循环中获取玩家输入并判断大小,提供猜小、猜大提示。通过增加猜测次数限制、难度选择、优化输入提示和图形化界面等方式可优化游戏。这篇文章旨在帮助初学者通过实际操作学习Python编程。
31 2
|
20天前
|
存储 定位技术 数据库
【python毕业设计】python基于Pygame的吃金币游戏设计与实现(源码+毕业论文)【独一无二】
【python毕业设计】python基于Pygame的吃金币游戏设计与实现(源码+毕业论文)【独一无二】
|
1月前
|
Python
利用python+pygame重现《黑客帝国》场景
利用python+pygame重现《黑客帝国》场景
16 0
|
1月前
|
存储 Python Windows
10分钟学会用python写游戏,实例教程
10分钟学会用python写游戏,实例教程
36 0
|
2月前
|
Python
Python猜字游戏是一种常见的编程练习
Python猜字游戏是一种常见的编程练习
24 2
|
2月前
|
Python
用 Python 写一个猜数字游戏并运行它
用 Python 写一个猜数字游戏并运行它
15 0
|
2月前
|
UED 开发者 Python
制作你的第一个 Python 游戏
想要制作一个 Python 游戏?这是一个令人兴奋的项目!在这篇文章中,我将引导你完成制作第一个 Python 游戏的步骤。即使你没有编程经验,也不用担心,我们将从基础开始,一起探索游戏开发的乐趣。
|
2月前
|
计算机视觉 Python
用 Python 开发简单的游戏
游戏开发是一个充满乐趣和挑战的领域,而 Python 作为一种强大的编程语言,为游戏开发提供了丰富的工具和可能性。在本文中,我们将探讨如何使用 Python 开发简单的游戏,并提供一些基本的示例和指导。