我正在用Free Pascal为我的游戏编写一个SDL /input 库,但我遇到了一个问题。
我有一个变体记录,当我访问其中的一个元素时,它会更改其他元素。
记录类型为:
tInput = Record
    case Device: TInputDevice of
        ID_KeyOnce, ID_KeyCont:                     (Key:         TSDLKey);
        ID_MouseButton:                             (MouseButton: Byte);
        ID_MouseAxis, ID_JoyAxis,
          ID_JoyBall, ID_JoyHat:                    (Axis:        Byte);
        ID_JoyButton, ID_JoyButtonOnce, ID_JoyAxis,
          ID_JoyHat, ID_JoyBall:                    (Which:       Byte);
        ID_JoyButton, ID_JoyButtonOnce:             (Button:      Byte);
结尾;
崩溃的代码是:
with Input do begin
    Device := ID_JoyAxis;
    Which  := 0;
    Axis   := 1;
end;
当轴设置为一时,记录中的所有其他变量都变为一二!
这是一个已知的错误?或者一些我不知道的功能?还是我搞砸了什么?