[英]C# - I need to figure out how to make GUI that listens for buttons being pressed in a IF statement
因此,当前,我正在用C#编写一个小型的文字冒险游戏,并且正在使用Visual Studio Express2013。在Forms方法中,我有一个按钮“ buttonContinue”方法,当我按下该按钮时会调用它; 很简单 我还有一个按钮“ buttonA”,“ buttonB”,“ buttonC”,它们是游戏的控件。
现在。 当前游戏的运行方式是您按下按钮继续游戏的进行,当您按下继续按钮时,您会随机遇到一个事件,例如遇到怪物,找到NPC或遇到“事件”(当前事件不重要)。 截至目前,buttonA和buttonB已用于吃游戏中可能会捡起的苹果或喝水。
这是问题所在:我想让buttonA和buttonB在战斗或事件中发挥不同的作用。 我希望buttonA是与怪物战斗的按钮,buttonB是试图躲避怪物的按钮,buttonC是尝试运行的按钮。 到目前为止,我想出的唯一解决方案是创建一个LOOP,以检查遇到怪兽时是否按下了buttonA,B或C-但是,GUI不会暂停或监听按钮A,B或C C作为IF语句被按下。
这是我的游戏代码的一小部分:
Attributes.monsterDead = false;
while (Attributes.monsterDead == false)
{
if (buttonAClicked == true)
{
Goblin.GoblinAttack();
buttonAClicked = false;
}
if (buttonBClicked == true)
{
}
if (buttonCClicked == true)
{
}
}
现在调用WHILE语句的地方,由于没有任何等待和监听这些if语句为true的情况,因此它会无限循环,没有时间限制,导致程序完全冻结。
我还不太熟练C#,因为我仍在学习和上C#。 此外,这是我在本网站上的第一篇文章。 请帮助我解决此问题,如果需要,我可以为您提供更多信息! 谢谢!
编辑:我决定包括源代码,以便可以更快地解决此问题。
Form1.cs-pastebin(DOT)com / idJaR20V
Goblin.cs-pastebin(DOT)com / Ti1L4XzN
Attrivutes.cs-pastebin(DOT)com / GfJAJ1u5
我对C#编程及其功能仍然缺乏经验,但是可以同时运行buttonContinue和buttonA方法吗? 使其在遇到怪物时被禁用buttonContinue,并且在buttonContinue仍在运行时只有按钮A,B,C具有功能吗? :/
如果我要在运行其他方法时启动另一个方法,该方法中的一个不会停止工作并弹出其中的所有数据/进程吗? 我不太确定
创建3个不同的按钮X, Y, Z
。 在OnClick
功能的这3个按钮中放置所需的战斗功能。
当您处于事件A, B, C
可见。 在这种情况下, X, Y, Z
不可见。
当您在战斗中时, X, Y, Z
可见。 在这种情况下, A, B, C
不是。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.