各位戳进来看看这是我用豆包创作的一个代码。

7 大凡清净 1年前 796次点击

这个是我用豆包创作的一个盲人类射击游戏,仅次于和平精英,我打算到时候再让他完善一下。你们觉得这个代码能做成吗?用一些软件。

我是代码一点也不懂,只会玩手机的人。大家有这个意思跟我一起来玩一玩吗?

以下是一个简单的基于Python和Pygame库的盲人类射击游戏示例代码框架,该框架可以让玩家控制一个角色进行射击,并且会有一些简单的敌人出现。要实现类似《和平精英》那样复杂的游戏,需要非常庞大的开发工作,这只是一个基础雏形,你可以根据需求进一步完善和扩展。

python

import pygame

import random

import math

# 初始化Pygame

pygame.init()

# 游戏窗口尺寸

WIDTH, HEIGHT = 800, 600

screen = pygame.display.set_mode((WIDTH, HEIGHT))

pygame.display.set_caption('盲人射击游戏')

# 颜色定义

WHITE = (255, 255, 255)

BLACK = (0, 0, 0)

RED = (255, 0, 0)

# 加载字体用于显示提示信息(这里假设为盲人设计的提示音等功能后续完善,先以文字显示为例)

font = pygame.font.Font(None, 36)

# 角色类

class Player:

def __init__(self):

self.x = WIDTH // 2

self.y = HEIGHT - 50

self.radius = 20

self.speed = 5

self.bullets = []

def move_left(self):

if self.x - self.radius - self.speed >= 0:

self.x -= self.speed

def move_right(self):

if self.x + self.radius + self.speed <= WIDTH:

self.x += self.speed

def shoot(self):

self.bullets.append(Bullet(self.x, self.y))

# 子弹类

class Bullet:

def __init__(self, x, y):

self.x = x

self.y = y

self.speed = 10

def update(self):

self.y -= self.speed

# 敌人类

class Enemy:

def __init__(self):

self.x = random.randint(0, WIDTH)

self.y = random.randint(-100, -50)

self.radius = 15

self.speed = random.randint(2, 4)

def update(self):

self.y += self.speed

# 创建玩家

player = Player()

# 创建敌人列表

enemies = []

# 创建一个定时器事件来定期生成敌人

ADD_ENEMY = pygame.USEREVENT + 1

pygame.time.set_timer(ADD_ENEMY, 1500)

# 游戏主循环

running = True

clock = pygame.time.Clock()

while running:

for event in pygame.event.get():

if event.type == pygame.QUIT:

running = False

elif event.type == ADD_ENEMY:

enemies.append(Enemy())

elif event.type == pygame.KEYDOWN:

if event.key == pygame.K_LEFT:

player.move_left()

elif event.key == pygame.K_RIGHT:

player.move_right()

elif event.key == pygame.K_SPACE:

player.shoot()

# 更新子弹

for bullet in player.bullets:

bullet.update()

if bullet.y < 0:

player.bullets.remove(bullet)

# 更新敌人

for enemy in enemies:

enemy.update()

if enemy.y > HEIGHT:

enemies.remove(enemy)

# 检测子弹与敌人的碰撞

for bullet in player.bullets:

for enemy in enemies:

distance = math.sqrt((bullet.x - enemy.x) ** 2 + (bullet.y - enemy.y) ** 2)

if distance < player.radius + enemy.radius:

player.bullets.remove(bullet)

enemies.remove(enemy)

screen.fill(BLACK)

# 绘制玩家

pygame.draw.circle(screen, WHITE, (player.x, player.y), player.radius)

# 绘制子弹

for bullet in player.bullets:

pygame.draw.circle(screen, WHITE, (bullet.x, bullet.y), 5)

# 绘制敌人

for enemy in enemies:

pygame.draw.circle(screen, RED, (enemy.x, enemy.y), enemy.radius)

# 显示提示信息

text = font.render('使用左右箭头移动,空格射击', True, WHITE)

screen.blit(text, (10, 10))

pygame.display.flip()

clock.tick(60)

pygame.quit()

 

代码说明

初始化部分:初始化Pygame,设置游戏窗口尺寸和标题,定义颜色和字体。

类定义:

 Player 类:包含玩家的位置、半径、移动速度和子弹列表,提供移动和射击方法。

 Bullet 类:包含子弹的位置和速度,提供更新方法。

 Enemy 类:包含敌人的位置、半径和速度,提供更新方法。

游戏主循环:处理事件,如退出、按键操作、生成敌人等。更新子弹和敌人的状态,检测子弹与敌人的碰撞,并在屏幕上绘制玩家、子弹和敌人,同时显示一些简单的提示信息。

对于盲人类射击游戏,更重要的是加入语音提示功能,比如在玩家移动、射击、击中敌人等操作时给出语音反馈,这可能需要结合 playsound 库等进行声音播放功能的添加。例如:

python

from playsound import playsound

# 在玩家射击时添加声音

def play_shoot_sound():

playsound('shoot_sound.mp3')

# 在玩家击中敌人时添加声音

def play_hit_sound():

playsound('hit_sound.mp3')

# 修改玩家类的shoot方法

class Player:

def __init__(self):

self.x = WIDTH // 2

self.y = HEIGHT - 50

self.radius = 20

self.speed = 5

self.bullets = []

def move_left(self):

if self.x - self.radius - self.speed >= 0:

self.x -= self.speed

def move_right(self):

if self.x + self.radius + self.speed <= WIDTH:

self.x += self.speed

def shoot(self):

self.bullets.append(Bullet(self.x, self.y))

play_shoot_sound()

# 修改检测碰撞部分

for bullet in player.bullets:

for enemy in enemies:

distance = math.sqrt((bullet.x - enemy.x) ** 2 + (bullet.y - enemy.y) ** 2)

if distance < player.radius + enemy.radius:

player.bullets.remove(bullet)

enemies.remove(enemy)

play_hit_sound()

 

以上代码需要你准备好相应的声音文件( shoot_sound.mp3 和 hit_sound.mp3 )放在与代码相同的目录下。同时,对于真正为盲人设计的游戏,还可以考虑使用更专业的屏幕阅读器集成等技术来提供更友好的交互体验。

就这样

共 14 条评论
应该不能吧!

自信点,把应该去掉

我没试过呀,所以只能应该。
大凡清净 [楼主] 1年前

好吧

波斯猫 1年前

不用应该,那就是白做了

我把你的代码发给DeepSeek检查了一下,这是他找到的问题。1.

绘制敌人部分的循环不完整,导致语法错误。

2.

碰撞检测使用了错误的半径值。

3.

缺少pygame.display.update(),导致画面不刷新。

4.

可能缺少clock.tick(60)调用来控制帧率。

5.

在遍历列表时直接删除元素可能导致运行时错误。

lable 1年前

嗯,建议自己学这东西,豆包写的东西都是逻辑错误,缩进错误等等

lable 1年前

哦,对了,那个什么他需要的Python环境,还有一个电脑,还有一个pygame库,你安装了没

lable 1年前

还有一些别的我没看,还有就是让它增加pyttsx3,用语文本转语音

lable 1年前

然后窗口嘛,你用wx Python那个无障碍特别好

清欢 1年前

哪个修正了运行一下

云烟 1年前
聊天室 , 浏览器打开, http://lt.huayv.xyz
千月 1年前

代码这东西咱是一点都不懂。正愁上哪儿学学去。

AI写的只能做参考。

99.999999999999999%的情况下,AI写的都无法运行。