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