【问题标题】:experience system for a game [closed]游戏体验系统[关闭]
【发布时间】:2013-09-12 20:53:45
【问题描述】:

我有一个问题要问任何制作游戏文本库或任何关于计算角色 exp 的系统的问题。 exp系统需要大量代码吗?

我对它进行了一些试验,并发布了代码,在我做了一点点之后(顺便说一句,并不多),似乎编写一个调平系统需要很多代码。

请任何人解释一下(不是一步一步地),但请告诉我需要什么,或者提供一个调平系统的代码示例。因为我仍然是编程新手,所以我的代码仍然写得很长。

import random

exp=0

a=1
while a==1:
    print" you are fighting you kill you get xp"
    xp=random.randint(20, 30)
    exp+=xp
    print"you got, "+str(exp)+" xp"
    if exp>=300:
        print"congradulations you are level 2"
        break

【问题讨论】:

  • 这取决于你想要什么样的调平系统。一个复杂的调平系统可能比一个非常简单的系统需要更多的代码。这完全取决于您所说的“大量代码”是什么意思。您上面的方法可以推广到大约 15 或 20 行中的 n 个级别。
  • 在提出更具体的问题后,您可能想在gamedev.stackexchange.com 提问。
  • @rogaos-我对 python 还是很陌生,几天前才重新开始。经过长时间的休息。我不想要一个复杂的 exp 系统,但例如。如果我有 3 种不同的技能(采矿、攻击、召唤)并且等级上限为 60。我是否需要为每个等级编写代码。例如如果 level==2: random.randint(30, 60) 然后再为 3 等每个级别?

标签: python python-2.7 python-3.x pygame


【解决方案1】:

我不确定 Python 究竟是如何工作的,但我确信您可以为每个“怪物”提供一个 XP 属性来表示 XP 增益。 MONSTER CLASS :O(也许您可以在值之间随机化它以增加一点深度。) xp=random.randint(20, 30)

就级别获得而言,您不需要很长的 if 语句,您可能可以创建一个算法来达到下一个级别。

if(currentXP*currentlevel*.65 > currentXP) level up();

跟踪currentXP 和您的currentLevel 并相应地使用它。

.65 是一个相当随意的比例,但是,这就是需要测试的部分。人们升级太快了吗?我们是否需要更难进入下一个级别?等等。继续玩弄它,直到你满意为止。这是非常基本的,你可以做一些不那么线性的东西。

【讨论】:

  • @progenhard-im 对我在此处发布的基于 txt 的游戏进行编程仍然是新手,这是我制作的第一个实际游戏。所以请耐心等待,哈哈。练级的速度当然会被测试,但现在我只是想弄清楚为一项技能编写一个 exp 系统需要多少代码..或时间量(球场平均值)。如果你曾经玩过 runescape 或类似的游戏,他们如何计算每级的经验值和每件物品的经验值。
  • @user2423223 老实说,我认为“调平”系统本身不会占用那么多代码,如果您想要简单的话,您可能可以将其压缩为 3 行代码。昂贵的部分是你想如何定义你的怪物、物品、法术等。这些都是对象,需要您分配的属性。例如,一个怪物troll[health = 10, attack = 2-3, xp = 30-40] 然后你需要为你创建的每个怪物定义一个不同的。
  • 除非我遗漏了一些特别的东西...给定的升级公式可以简化为currentlevel*.65 > 1,如果等级高于@,这将使您每次获得经验时都会升级987654329@ :)
猜你喜欢
  • 2014-10-15
  • 1970-01-01
  • 2017-12-04
  • 2020-07-17
  • 2012-05-11
  • 2011-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多