用Python趣味小游戏开发!

liftword1个月前 (04-10)技术文章13

我们已经成功搭建了贪吃蛇游戏的基本框架,并且让蛇能够在屏幕上移动起来。现在,我们将进入第二步:为游戏添加第二个指令,让玩家能够通过键盘输入来控制蛇的移动方向。

一、回顾上一步的代码

在开始之前,让我们先回顾一下上一步的代码。我们使用了Pygame库来创建游戏窗口,并且定义了一个蛇类(`Snake`),它包含了蛇的初始位置、移动速度等属性。以下是上一步代码的核心部分:

```python

import pygame

import sys

# 初始化Pygame

pygame.init()

# 设置屏幕大小

screen_width = 800

screen_height = 600

screen = pygame.display.set_mode((screen_width, screen_height))

# 设置颜色

black = (0, 0, 0)

white = (255, 255, 255)

green = (0, 255, 0)

# 蛇类

class Snake:

def __init__(self):

self.position = [100, 50] # 初始位置

self.body = [[100, 50], [90, 50], [80, 50]] # 蛇的身体

self.direction = "RIGHT" # 初始方向

def change_direction(self, new_direction):

if new_direction == "RIGHT" and not self.direction == "LEFT":

self.direction = "RIGHT"

if new_direction == "LEFT" and not self.direction == "RIGHT":

self.direction = "LEFT"

if new_direction == "UP" and not self.direction == "DOWN":

self.direction = "UP"

if new_direction == "DOWN" and not self.direction == "UP":

self.direction = "DOWN"

def move(self):

if self.direction == "RIGHT":

self.position[0] += 10

if self.direction == "LEFT":

self.position[0] -= 10

if self.direction == "UP":

self.position[1] -= 10

if self.direction == "DOWN":

self.position[1] += 10

self.body.insert(0, list(self.position))

# 游戏主循环

snake = Snake()

clock = pygame.time.Clock()

while True:

for event in pygame.event.get():

if event.type == pygame.QUIT:

pygame.quit()

sys.exit()

screen.fill(black)

for pos in snake.body:

pygame.draw.rect(screen, green, pygame.Rect(pos[0], pos[1], 10, 10))

snake.move()

pygame.display.flip()

clock.tick(10)

```

这段代码实现了蛇的自动移动,并且在屏幕上绘制了蛇的身体。现在,我们需要让玩家能够通过键盘输入来控制蛇的方向。

二、添加键盘输入控制

在Pygame中,我们可以使用`pygame.event.get()`来获取用户的输入事件。当用户按下键盘时,会触发一个`KEYDOWN`事件,我们可以通过监听这个事件来获取用户按下的是哪个键。接下来,我们将修改代码,让蛇能够根据用户的输入改变方向。

1.修改`Snake`类的`change_direction`方法

首先,我们需要确保蛇的方向能够根据用户的输入进行改变。在`Snake`类中,我们已经定义了一个`change_direction`方法,它可以根据传入的新方向来更新蛇的当前方向。这个方法已经足够使用,我们不需要对其进行修改。

2.在游戏主循环中添加键盘输入监听

接下来,我们需要在游戏主循环中添加对键盘输入的监听。当用户按下键盘时,我们调用`Snake`类的`change_direction`方法来改变蛇的方向。以下是修改后的代码:

```python

while True:

for event in pygame.event.get():

if event.type == pygame.QUIT:

pygame.quit()

sys.exit()

elif event.type == pygame.KEYDOWN: # 监听键盘按下事件

if event.key == pygame.K_UP:

snake.change_direction("UP")

if event.key == pygame.K_DOWN:

snake.change_direction("DOWN")

if event.key == pygame.K_LEFT:

snake.change_direction("LEFT")

if event.key == pygame.K_RIGHT:

snake.change_direction("RIGHT")

screen.fill(black)

for pos in snake.body:

pygame.draw.rect(screen, green, pygame.Rect(pos[0], pos[1], 10, 10))

snake.move()

pygame.display.flip()

clock.tick(10)

```

在这段代码中,我们添加了一个`elif event.type == pygame.KEYDOWN:`的判断条件,用来监听键盘按下事件。当用户按下键盘时,我们通过`event.key`来判断用户按下的是哪个键。如果用户按下的是上箭头键(`pygame.K_UP`),我们就调用`snake.change_direction("UP")`来改变蛇的方向为向上;同理,对于下箭头键、左箭头键和右箭头键,我们也分别调用`snake.change_direction`方法来改变蛇的方向。

三、测试游戏

现在,我们已经完成了第二步的代码修改。运行程序后,你可以通过键盘上的箭头键来控制蛇的移动方向。蛇会根据你的输入实时改变方向,并且在屏幕上移动。

四、总结与展望

在这一部分中,我们为贪吃蛇游戏添加了键盘输入控制功能,让玩家能够通过键盘上的箭头键来控制蛇的移动方向。这是游戏开发中的一个关键步骤,它让玩家能够与游戏进行交互。

在接下来的步骤中,我们将继续完善贪吃蛇游戏。我们可以为游戏添加食物,当蛇吃到食物时,它的身体会变长;我们还可以添加碰撞检测,当蛇撞到自己或者屏幕边缘时,游戏结束。此外,我们还可以为游戏添加计分系统,记录玩家的得分。

通过一步步的学习和实践,你将能够掌握Python游戏开发的基本技巧,并且能够独立开发出更加复杂和有趣的游戏。希望你在这个过程中能够收获乐趣,并且不断提升自己的编程能力。

相关文章

用Python做一个贪吃蛇小游戏:零基础保姆级教程(附完整代码)

导语:只要你会用电脑打字,就能跟着这篇教程做出经典贪吃蛇游戏!从安装软件到代码调试,每个步骤都有详细截图和解释,遇到问题看文末解决方案,现在就开始你的第一个游戏开发吧!一、准备开发环境(10分钟)1....

使用Python+OpenCV代码制作贪吃蛇小游戏,你也可以打造自己的AI

前言今天和大家分享一下如何使用 mediapipe+opencv 自制贪吃蛇小游戏。先放张图看效果。规则:食指指尖控制蛇头,指尖每接触到黄色方块,计数加一,蛇身变长,方块随机切换位置。如果指尖停止移动...

别玩手机了!用 Python 写个贪吃蛇小游戏吧!

大家好呀!今天给大家带来一个经典又有趣的Python小项目——贪吃蛇游戏!这可是小时候必备的街机游戏之一,现在我们用Python完全可以自己做出来!通过键盘控制方向,让小蛇吃到食物变长,看看你能达到什...

使用字节跳动的TRAE编写贪吃蛇音乐版简直太轻松了

字节跳动的国内版发行不久就开始下载来试试,还是老本行,先试试贪吃蛇游戏,当然这次改用python编写,我没编过python程序,可以说是小白,不过介于python程序功能强大,编写难度不大,因此决定...

零基础学习编程:用Python和Pygame实现贪吃蛇游戏

预计阅读时间:15分钟介绍编程是一门有趣且有用的技能,它可以帮助我们解决问题、创造新的东西,并提升我们的逻辑思维能力。本教程将带你从零开始学习编程,使用Python语言和Pygame库来实现经典的贪吃...

游戏代码如何应用?

游戏代码的应用涉及从开发到运行的完整流程,需要结合游戏引擎、编程语言和开发工具来实现。以下是分步骤的详细说明和示例:### 一、游戏代码应用的核心步骤1. **选择开发工具** - 游戏引擎:Unit...