我正在为Free Pascal编写我的游戏的SDL /输入库,并且我正面临一个问题。记录字段覆盖其他字段
我有一个变种记录,当我访问它的一个元素,改变其他元素。
记录类型是:
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;
当轴被设置为一个,所有在记录中的其他变量去一二!
这是一个已知的错误吗?或者我不知道的一些功能?或者我搞砸了?
你有关于TSDLKey的更多细节吗?它是一个枚举类型还是一个类实例? ... – 0xC0000022L 2011-03-02 03:52:33
这只是一个LongWord – lochok 2011-03-02 04:02:07
好吧,很酷,那么我更新的答案恰恰反映了你的工会应该在的状态。 – 0xC0000022L 2011-03-02 04:12:55