c#迷你游戏:菜单画面,如何实现?

时间:2010-06-19 07:54:05

标签: c# forms

我在WinForms中制作简单的图形游戏,目前我希望在游戏开始时显示一个菜单。我唯一的问题是我不确定应用程序本身的结构,这是我到目前为止:

1)拥有菜单表格和游戏表格。选择新游戏时,创建游戏表单并将其停靠到菜单表单 - 我无法处理菜单表单,因为应用程序将退出。或者我可以将messageloop切换为不同的形式吗?我对此表示怀疑 2)有一些主要形式,使我能够创建和处理菜单和游戏形式 3)完全不同的方式?

1 个答案:

答案 0 :(得分:2)

我在开发应用程序时经常使用的一种方法是使用主窗体作为视图的容器(视图为UserControl),包含一个用于添加视图的面板。

你能做的是:

  1. 定义两个用户控件,一个用于菜单,一个用于游戏逻辑。菜单视图应该为主窗体可以附加到的每个菜单项公开一个事件。
  2. 启动时,显示菜单控件。当调用“Play”事件时,主窗体应切换到游戏视图。
  3. 以下伪代码将帮助您切换视图:

    private void SwitchView(Panel container, UserControl newView)
    {
        if (container.Controls.Count > 0)
        {
            UserControl oldView = container.Controls[0] as UserControl;
            container.Controls.Remove(0);
            oldView.Dispose();
        }
    
        if (newView != null)
        {
            newView.Dock = Dock.Fill;
    
            // Attach events
            if (newView is ...)
            {
               ...
            }
    
            container.Controls.Add(newView);
        }
    }
    

    请注意,这段代码可能无法正常编译,我是从脑子里写的。但它会让你大致了解这一点。