我为我的游戏编写了一个白天和黑夜系统,但我遇到了其中一种方法的问题。除了一种方法之外,我已将其编码得很好。下面是完整的代码:白天黑夜系统,即使不亮时也检查灯光?
using Plus.Utilities;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Plus.Roleplay.GameEnvironment
{
class GameEnvironmentHandler
{
private List<TimeSpan> _darkTimes;
private List<TimeSpan> _lightTimes;
public GameEnvironmentHandler()
{
_darkTimes = new List<TimeSpan>
{
new TimeSpan(19, 0, 0),
new TimeSpan(19, 30, 0),
new TimeSpan(20, 0, 0),
new TimeSpan(20, 30, 0),
new TimeSpan (21, 0, 0)
};
_lightTimes = new List<TimeSpan>
{
new TimeSpan(06, 0, 0),
new TimeSpan(06, 30, 0),
new TimeSpan(07, 0, 0),
new TimeSpan(07, 30, 0),
new TimeSpan (08, 0, 0)
};
}
public bool IsGettingDark()
{
return RoleplayHelper.IsTimeOfDayBetween(DateTime.Now,
_darkTimes.First(), _darkTimes.Last());
}
public bool IsGettingLight()
{
return RoleplayHelper.IsTimeOfDayBetween(DateTime.Now,
_lightTimes.First(), _lightTimes.Last())
|| RoleplayHelper.IsTimeOfDayBetween(DateTime.Now,
_lightTimes.First(), _darkTimes.Last());
}
}
}
我有是IsGettingLight()问题的方法,我已经编写它来检查的时间是插图中的第一个和最后光时间,但如果它的最后一次后,时间开始变浅,在第一次变黑之前,我如何检查它是否变暗,变黑或变亮?我知道它是在第一次黑暗时间消除一点时间后做的事情,但是我究竟要删除什么,以及如何?
止跌” t在'_lightTimes.Last()'和'_darkTimes.First()'之间?不知道我理解的问题,或者你为什么不问类似的问题有关_darkTimes.Last()'和'_lightTimes.First之间'时代()' –
另外,不知道'TimeSpan'是使用合适的对象......它应该代表一段时间,而不是特定的时间。对于一个特定的时间,你应该使用'DateTime'对象的那个小时,分钟和秒部分与'DateTime.Now.TimeOfDay' –
@RufusL比较,我不能使用的TimeOfDay,因为这两个时间可能在午夜后重叠成另一天。我所说的(在_lightTimes.Last()和_darkTimes.First()之间)我的意思是说,它总是不亮,它不会变暗或变亮。我正试图让每一天的每一分钟都会变得轻松。 –