程序制作自己的类实例的概念

时间:2017-12-24 21:13:39

标签: conceptual

这可能是一个简单答案的基本问题,但我似乎无法理解它背后的逻辑。

我将从一个着名的Java游戏Minecraft的一个简单例子开始。玩家被放入一个世界,并被允许与不同的对象进行交互。说玩家想要木头。他看到一棵树,走过去,把它砍下来。他看到另一棵树,走过去,也做同样的事。他可以按照自己的意愿多次执行此操作,如果玩家探索得足够多,游戏将加载更多的树木。但这是怎么做到的?换句话说,一个程序如何制作一个基本上无穷无尽的树,玩家将永远能够与之交互?

我想在代码中有一个树类。但显然,程序员没有编写不同的类实例,例如tree1,tree2等,因为他不知道游戏中需要加载多少棵树。那么程序如何做到这一点却没有被告知会有多少树?

换句话说,我不明白程序如何自己决定制作x个类实例而不是程序员必须手动编写他/她自己的类实例。游戏开发者和其他程序员如何做到这一点?

谢谢。

2 个答案:

答案 0 :(得分:0)

考虑我们如何生成随机游戏地图。假设地图的环境将在森林中。什么样的物体是森林的一部分?

  1. 小动物(即松鼠,兔子)
  2. 森林地面纹理(即草或落叶)
  3. 我们从基本的100x100单位游戏地图开始。我们将让程序生成10到30之间的多个树,并且还生成树的X和Y坐标,条件是没有树可以具有相同的X和Y坐标。我们对其他对象也这样做。

    现在我们告诉程序加载包含所有这些对象的游戏地图。完成。

答案 1 :(得分:0)

考虑一个简单的网格,网格上的每个位置都可以被占用 一个对象。物体可以是树,岩石或生物。 在这个世界上,我将地图上的区域定义为“可增长”。 在这些领域,如果没有某些东西,就会有所增长。 游戏将有一组转弯。在每个回合中,我运行一个例程 找到所有可生长的斑点,如果那里没有生长的东西 随机确定是否应该发芽。这种方式如果有人 砍下一棵树,那个地方可以在游戏后期发芽一棵新树。

也许游戏更复杂,简单的网格也不够好。 无论如何,游戏必须以某种方式跟踪所有对象。