抱歉,如果这个问题看起来很明显,我最近开始使用 C#,我正在尝试创建一个简单的农场游戏。
我有一个播种的“种子”功能(这很好用)。 为了让作物生长,我想我可以创建一个属性为播种时间的对象,然后我可以将其与总时间进行比较,然后改变阶段。
为此,在“Seed”函数中,它调用另一个函数(“CreateObjectSeeded”)传递参数“position”和“timeWhenSeeded”
然后我想到我可以创建一个具有属性“TimeInClass”和“PositionInClass”的类,函数“CreateObjectSeeded”可以创建一个具有这些属性的对象。
最后,“CheckTimeCrops”函数会将“CropsPlanted”类中所有对象的时间属性与当前时间进行比较,并根据时间属性调用生长过程的不同阶段。 (我也通过了这个位置,因为它将被用来改变作物的阶段) 阶段的决定还没有完成,因为我不断收到错误,10000 只是一个任意值来测试它。 有人可以帮我吗? 非常感谢你,如果这个问题看起来很愚蠢,我很抱歉。
理想情况下,“CheckTimeCrops”函数应该检查从“CropsPlanted”类创建的所有对象的时间属性,并在给定特定条件(例如,如果 currentTime - timeWhenPlanted > 10000,则 Stage2)阶段应该改变。
您的问题是 CropsPlanted 是一种类型(如错误所述)。您应该在 CropsGrowth 类中创建一个列表
List<CropsPlanted> crops = new List<CropsPlanted>()
,它保留对 CropsPlanted 对象的引用,并在CreateObjectSeeded()
中创建对象后,将其添加到列表中,以便在CheckTimeCrops()
中您可以 foreach crops
列出并做你需要做的事情