簡體   English   中英

C#枚舉問題

[英]C# Enumeration Issue

我目前正在使用C#設計游戲引擎。 該引擎具有多種驅動程序類型(OpenGL,DirectX)。 但是,當用戶按下按鈕時,每種驅動程序類型都需要不同的鍵控代碼。 但是由於某些原因,使用預處理器無法正常工作。請記住,我對使用預處理器還很陌生。

我真的認為(像在大多數情況下一樣)讓某人了解我正在嘗試做的最好方法是顯示一些代碼。

這是我的KeyCode枚舉(或其中的一部分):

public enum KeyCode
{
#if DRIVER_TYPE_OPENGL
        A = 83,
        B = 84
#elif DRIVER_TYPE_DRIECTX
        A = 65,
        B = 66
#endif
}

在我的OpenGL Window類的頂部,我這樣做:

#define DRIVER_TYPE_OPENGL

在DirectX Window類的頂部,我這樣做:

#define DRIVER_TYPE_DRIECTX

據我了解,我現在應該可以執行以下操作:

        IDisplay display = new OpenGLDisplay(WIDTH, HEIGHT, TITLE);

        while (true)
        {
            // Do stuff with display

            // Process input like so:
            if (Keyboard.IsKeyDown(KeyCode.A))
            {
                Console.WriteLine("You're using OpenGL driver, good on you!")
            }

            // Swap buffers and stuff
        }

        display.Close();

但是,我收到一條錯誤消息:“ KeyCode不包含'A'的定義”

我究竟做錯了什么?

在此先感謝您的幫助!

移動您的枚舉或使用項目范圍的定義。

定義僅在您#define文件中起作用。
這是C#,而不是帶有標頭的C ++。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM