我无法在标题中充分描述问题。如果somone具有编辑权限并且可以更好地表达它,请随意。
所以我有一个漂亮的小地形,它是可毁坏的,但是如果somone,比如打破一棵树,我怎么能让它在他们的库存中添加一棵树?
我不是在寻找代码,只是一种方法。
每个块都有自己的类,所有类都继承自基类Block,当块被破坏时,它会丢弃一种可拾取的婴儿块。
我能够做到这一点,但我很困惑,因为你的想法是你可以打破积木并将它们放在其他地方(是的,有点像Minecraft),那么我将如何使这个库存系统工作?我已经思考了两天而我一无所获。
答案 0 :(得分:4)
项目需要某种ID代码。你显然已经有一个存储世界。
当你切碎它时,该块有一种“树”。
“Tree”+ Chop => “切碎的树”
当它被拾取时,你从世界中删除切碎的树形图形,并将一个砍树项目放在玩家的库存中。
答案 1 :(得分:1)
而不是用文字解释它,我认为用一些伪代码会更容易:
public enum MaterialType
{
Wood,
Stone,
Count // this should always be the last one
}
public class Block
{
MaterialType m_type;
}
public class Player
{
MaterialType m_inventory[MaterialType.Count];
}
// call this when you break a block
public class World
{
public void OnBlockDestroyed()
{
player.m_inventory[block.m_type]++;
}
}