繁体   English   中英

C#-我需要弄清楚如何使GUI监听IF语句中被按下的按钮

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM