社区
C#
帖子详情
请问:如何在c#中获得游戏中八方向键的效果?
huouh
2008-07-10 02:51:30
我试着把按键加到连个线程,查了资料但还不知道怎么下手!
请高手指点下,不胜感激!
...全文
104
5
打赏
收藏
请问:如何在c#中获得游戏中八方向键的效果?
我试着把按键加到连个线程,查了资料但还不知道怎么下手! 请高手指点下,不胜感激!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nodman
2008-07-15
打赏
举报
回复
不用谢。
有个建议,为每个键单独启用不同定时器。并且键按下时立即启动该定时器,键放开立即停止该定时器。
如果统一用一个定时器处理所有的按键,同步会有问题,
‘真实感’可能不够强烈。
1分?
huouh
2008-07-12
打赏
举报
回复
问题解决了!
真的很感谢 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;
}
}
}
huouh
2008-07-12
打赏
举报
回复
非常感谢!
我去具体实现下!不过我还没有重写过事件!
先找个例子去参考下 o(∩_∩)o...
nodman
2008-07-11
打赏
举报
回复
嗯,明白了。
这个情况,你要重写2个事件:KeyDown+KeyUp
当一个键按下的时候,记住并且定时触发其功能,比如向右移动,直到
KeyUp中发现这个键放开,才停止移动。
定时器的触发间隔时间需要考虑。
这样,才可能处理多个同时按下的键。
nodman
2008-07-10
打赏
举报
回复
“我试着把按键加到连个线程”,语句不通顺,看不明白
你是要做游戏?8方向键是一个按键还是8个?
Unity3D版本
游戏
源码0020
C#
unity3D坦克大战小
游戏
源码
Unity3D版本
游戏
源码0020
C#
unity3D坦克大战小
游戏
源码 提取方式是百度网盘分享地址
C#
贪吃蛇
游戏
C#
编写的贪吃蛇小
游戏
仿液晶屏显示
效果
用
c#
编写的二维弹球球小
游戏
用
c#
编写的二维弹球球小
游戏
, 场景全三维的弹球
游戏
,
游戏
更逼真、精彩;2维弹球是有趣且耐玩的好
游戏
!
c#
贪吃蛇源程序 源代码
贪吃蛇源码,用c charp编写的贪吃蛇
游戏
可供参考
Ludum_Dare30:2D C#Unity
游戏
脚本
Ludum_Dare30 Ludum Dare 30-48小时
游戏
竞赛提交2D Sidecroller
C#
111,120
社区成员
642,537
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章