我遇到的问题是,我的图像出现在同一本书的两页上。
我希望我的程序仅在遇到新图像时才做出反应(触发副作用),而忽略重复图像。一旦完成,我希望将其重置,以便重复该过程。
namespace testpad
{
class Interaction: Scene
{
public override string Name => "Interaction";
public static RectMap imageone = new RectMap()
{
X = 239,
Y = 199,
Width = 125,
Height = 18
};
public static RectMap imagetwo = new RectMap()
{
X = 217,
Y = 317,
Width = 428,
Height = 12
public override bool Match(ScriptBase script)
{
return script.Match(imageone, 90),
|| script.Match(imagetwo, 90);
}
public override void OnMatched(ScriptBase script)
{
if (script.Match(imageone, 90))
{
script.PressKey() { A = true });
Thread.Sleep(100);
}
else if (script.Match(imagetwo, 90))
{
script.Press() { B = true });
Thread.Sleep(1000);
}
}
}
答案 0 :(得分:0)
如果您希望收集对象,并且希望根据对象的出现频率进行操作,则最好的解决方案是Dictionary<[Key],int>
,其中Key
是标识符(在您的情况下为{{ 1}}(带有图片的名称),该值代表按键的频率。每当遇到给定String
的对象(在您的情况下,将其称为image
),您就可以增加值存储在该键上。之后,您可以根据产生的频率做出决定。
但是,在您遇到的情况下,您只需要在第一次遇到新图像时只对Key
做出反应,那么once
将是您的最佳选择。
所以您的代码如下:
HashSet<String>