我在c#中製作了一個遊戲,有很多關卡,每次丟失的時候,我都想要一個能夠給你許多選擇的表單,包括「重試」。
我知道如何訪問該表單並重新加載失敗的級別,但是我不知道是否有任何方法可以創建該選項表單,並且每次點擊Retry
以重新載入PREVIOUS表單。回到以前的表格很多次
0
A
回答
1
你有很多選擇之一是使用Singleton Pattern。這是一個非常快和過於簡單的例子,但你會做這樣的事情:
public class OptionsForm : Form
{
private static OptionsForm _instance;
public static OptionsForm Options
{
get
{
if (_instance == null) _instance = new OptionsForm();
return _instance;
}
}
private int ActualLevel; //variable to hold the level to "go back to/retry"
public void ShowOptions(int actualLevel)
{
ActualLevel = actualLevel;
//do any processing required
Show(); // or ShowDialog(); depending on your needs
}
}
你會那麼做這樣的事情:
public void OnLevelFailed() //whatever you call when the user loses the level
{
OptionsForm.Options.ShowOptions(thisLevel);
}
1
查找到的對象的範圍在C#中,例如去MSDN。該網頁是古老的,但教好的概念。
您基本上需要將您的選項表單設置爲保持範圍。一種方法是將該表單的對象設置爲靜態。然後,您可以儘可能多地重複使用它。
這增加了很多併發症。你將不得不趕上Form.Closing事件,並取消關閉,而不是表單。完成後,您可能需要手動輸入表格的Dispose
。
如果你只想這樣做,因爲它可以節省每次創建表單的努力,不要這樣做。 .NET非常擅長創建表單,並不介意這樣做。做這一切的唯一好理由是保持用戶在每次打開表單時設置相同的選項,並且有一些方法可以被認爲是更好的編碼實踐,例如模型視圖控制器 - 概念是保持數據(用戶的選項)與數據視圖(顯示這些選項的表單)分開。
開始編寫遊戲是雄心勃勃的。祝你好運!
相關問題
- 1. 圖表重複很多次
- 2. 代碼跳回到以前的表單
- 3. 移動到以前的表格
- 4. MySQL的連接查詢 - 連接表到自己很多次
- 5. 顯示很多表格的行類
- 6. Magento _prepareLayout()被稱爲5次到很多
- 7. 回到以前的活動?
- 8. 回到以前的活動
- 9. 回到以前的UITextField,IOS
- 10. 回到以前的片段
- 11. 回到以前的屏幕
- 12. 多次單擊表單數據可以節省鉻中的很多記錄
- 13. 回滾多次提交(推前到公衆)的水銀
- 14. 多次處理表格
- 15. uidialog多次發送表格
- 16. 多次加入表格
- 17. 匹配回顧後/提前多次
- 18. 有關係的一個表格或很多表格
- 19. 優化css:包含表格的很多表格
- 20. 多層次的「有很多」關係
- 21. 有很多嵌套的表格不能保存到數據庫
- 22. 在Oracle上導出很多表格
- 23. 嵌套表格有很多通過rails4
- 24. 從很多表格獲取信息
- 25. MBProgressHUD,崩潰很多次
- 26. 腳本執行很多次
- 27. didEnterRegion被觸發很多次
- 28. Javascript str_replace一次很多
- 29. Foreach返回一個項目到很多
- 30. Android FragmentActivity不回到以前
[如何提出問題](http://stackoverflow.com/questions/ask)你也可以顯示代碼..總是有一種方法來做一些事情,當涉及到編碼 – MethodMan