pycharm在python游戏中的实现系统

2024-05-12 15:38:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在我的游戏中使用成就系统。这个游戏就像一个饼干点击器,除了你一次又一次地输入字母“L”,并且可以升级每种类型的效果。我试着让它这样当你得到一定数量的硬币,比如1000,它将显示你已经达到了1000硬币的成就,但是它似乎不起作用。代码如下:

if coins == 1000:
    print("")
    print("You have a new achievement!")
    print("[✔] - Earn 1,000 points")
    print("You have 1/6 coin achievements")
    print("")
if coins == 10000:
    print("")
    print("You have a new achievement!")
    print("[✔] - Earn 10,000 points")
    print("You have 2/6 coin achievements")
    print("")

Tags: you游戏newif系统have硬币points
2条回答

编辑:在OP添加评论之后,我对这个问题更加清楚了。也许您可以尝试以下方法(当然这只是一个示例,因为OP没有提供最低限度的代码运行和平性):

# -*- coding: utf-8 -*-

numCoinAchievements = 0
nextCoinLevel = 1000

for coins in range(0, 100000, 33):
    if coins >= nextCoinLevel:
        numCoinAchievements += 1

        if numCoinAchievements == 1:
            nextCoinLevel = 10000
        elif numCoinAchievements == 2:
            nextCoinLevel = 15000
        else:
            break
    print("")
    print("You have a new achievement!")
    print("[✔] - Earn %d points" % nextCoinLevel)
    print("You have %d/6 coin achievements" % numCoinAchievements)
    print("")

当然,您必须熟练地使用代码来满足您的需要,但它应该可以使问题变得清楚!在

你的具体问题是你用错了比较器。如果使用==。你正在检查值是否完全相等。{2>当你对你的cd2有兴趣的时候。这样,当一个玩家从980点到1001点,1001 >= 1000的计算结果是{}。在

请注意,这将在每次检查时打印文本,即使他们已经获得了成就,所以下面这样的内容可能会有用:

has_1000_achievement = False
has_10000_achievement = False

if coins >= 1000 and not has_1000_achievement:
    has_1000_achievement = True
    print("")
    ...

p i提供的解决方案无疑会奏效,但我相信在你目前的水平上,你还不能流利地理解它。在

相关问题 更多 >