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