gpt4 book ai didi

c# - 带有 WPF 的 SlimDX RawInput

转载 作者:行者123 更新时间:2023-11-30 17:06:52 26 4
gpt4 key购买 nike

我正在尝试使用 SlimDX 和 RawInput 为太空游戏设置键盘和鼠标控件。我目前的代码如下:

Device.RegisterDevice(UsagePage.Generic, UsageId.Keyboard, DeviceFlags.None);
Device.KeyboardInput += new EventHandler<KeyboardInputEventArgs>(keyboardInput);
Device.RegisterDevice(UsagePage.Generic, UsageId.Mouse, DeviceFlags.None);
Device.MouseInput += new EventHandler<MouseInputEventArgs>(mouseInput);

但是我在这里读到:http://code.google.com/p/slimdx/issues/detail?id=785对于 WPF,我需要为 Device.RegisterDevice() 使用不同的重载,以及使用 Device.HandleMessage(IntPtr message)

分配 HandleMessage

我找到了 RegisterDevice() 的正确重载,它是:

RegisterDevice(UsagePage usagePage, UsageId usageId, DeviceFlags flags, IntPtr target, bool addThreadFilter)

不过,我无法解决的是:

1) 既然我必须使用目标,我打算将什么设置为目标?

2) 我从哪里得到这个 IntPtr 消息?

最佳答案

这可能会有帮助,我制作这个是为了打乒乓球。希望对你有帮助

            private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Down)
{
spaceKeyDown = true;
}
if (e.KeyCode == Keys.Up)
{
spaceKeyUp = true;
}
if (e.KeyCode == Keys.W)
{
spaceKeyW = true;
}
if (e.KeyCode == Keys.S)
{
spaceKeyS = true;
}
if (direction == 0)
{
if (e.KeyCode == Keys.Space)
{
Random rand = new Random();
direction = rand.Next(1, 5);
}
}
}

private void Form1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Down)
{
spaceKeyDown = false;
}
if (e.KeyCode == Keys.Up)
{
spaceKeyUp = false;
}
if (e.KeyCode == Keys.W)
{
spaceKeyW = false;
}
if (e.KeyCode == Keys.S)
{
spaceKeyS = false;
}
}
private void timer1_Tick(object sender, EventArgs e)
{
if (spaceKeyDown == true)
{
if (p2y < picPicture.Height - Paddle2.Height)
p2y += 15;
}
if (spaceKeyUp == true)
{
if (p2y > 0)
p2y -= 15;
}
if (spaceKeyS == true)
{
if (p1y < picPicture.Height - Paddle1.Height)
p1y += 15;
}
if (spaceKeyW == true)
{
if (p1y > 0)
p1y -= 15;
}
}

关于c# - 带有 WPF 的 SlimDX RawInput,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15065795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com