请问:如何在c#中获得游戏中八方向键的效果? 我试着把按键加到连个线程,查了资料但还不知道怎么下手!请高手指点下,不胜感激! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 嗯,明白了。这个情况,你要重写2个事件:KeyDown+KeyUp当一个键按下的时候,记住并且定时触发其功能,比如向右移动,直到KeyUp中发现这个键放开,才停止移动。定时器的触发间隔时间需要考虑。这样,才可能处理多个同时按下的键。 问题解决了! 真的很感谢 Mr.nodman !…… bool moveL = false; bool moveU = false; private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Left) { moveL = true; } if (e.KeyCode == Keys.Up) { moveU = true; } } private void Form1_KeyUp(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Left) { moveL = false; } if (e.KeyCode == Keys.Up) { moveU = false; } } private void timer2_Tick(object sender, EventArgs e) { if (moveL) { this.pictureBox1.Left -= 3; if (this.pictureBox1.Left<=0) { this.pictureBox1.Left = 0; } } if (moveU) { this.pictureBox1.Top -= 3; if (this.pictureBox1.Top <= 0) { this.pictureBox1.Top = 0; } } } c# 做web版的实时监控系统 文字编码问题 c# 技术求助 急急 求做一个小程序(不需要数据库,winform的程序) 如何固定字符串的长度,要求中英文一样长 MailMessage发送邮件,收到的邮件只有前面一部分,如何解决? 强命名保护的dll,怎么随意一个程序就可以调用.大家千万帮忙. 高手请进:关于asp.et页面大小的问题? 怎么还原数据库? ConfigurationUserLevel.None修改配置文件的路径在哪里? 迷惑 C# 换桌面壁纸 急~~~
这个情况,你要重写2个事件:KeyDown+KeyUp
当一个键按下的时候,记住并且定时触发其功能,比如向右移动,直到
KeyUp中发现这个键放开,才停止移动。定时器的触发间隔时间需要考虑。这样,才可能处理多个同时按下的键。
真的很感谢 Mr.nodman !
……
bool moveL = false;
bool moveU = false;
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Left)
{
moveL = true;
}
if (e.KeyCode == Keys.Up)
{
moveU = true;
}
} private void Form1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Left)
{
moveL = false;
}
if (e.KeyCode == Keys.Up)
{
moveU = false;
}
} private void timer2_Tick(object sender, EventArgs e)
{
if (moveL)
{
this.pictureBox1.Left -= 3;
if (this.pictureBox1.Left<=0)
{
this.pictureBox1.Left = 0;
}
} if (moveU)
{
this.pictureBox1.Top -= 3;
if (this.pictureBox1.Top <= 0)
{
this.pictureBox1.Top = 0;
}
}
}