标题:键盘输入导致的运动延迟问题??!!
只看楼主
oujianqiang
Rank: 1
等 级:新手上路
帖 子:138
专家分:0
注 册:2006-5-16
得分:0 
绘图的时候可以用双缓冲技术

2006-10-21 21:22
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
以下是引用999hits在2006-10-21 16:51:26的发言:
版主,给我们写一段没有延迟的代码加在上面的程序里

只要是接受键盘的press事件,产生事件的速度都非常快,对于所有事件都在单线程上执行的JAVA来说,难免不卡


可惜不是你,陪我到最后
2006-10-21 23:09
999hits
Rank: 1
等 级:新手上路
威 望:1
帖 子:227
专家分:0
注 册:2005-10-2
得分:0 
那也就是说,以后一旦用到连续输入的keyPress()事件,就必须把输入和绘制两个事件放到两个单独的线程里,那为什么用鼠标控制就不会有这种延迟的状况呢,就比如我用mouseMoved()来控制

J3D的摸瞎人
2006-10-22 08:57
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
以下是引用999hits在2006-10-22 8:57:03的发言:
那也就是说,以后一旦用到连续输入的keyPress()事件,就必须把输入和绘制两个事件放到两个单独的线程里,那为什么用鼠标控制就不会有这种延迟的状况呢,就比如我用mouseMoved()来控制

在JAVA的事件模型中,重绘事件和键盘事件,是在一个线程里做的,也就是说,要么在重绘,要么在响应事件
因为键盘的press事件发生的速度快,所以用键盘会有延迟,你可以试着用keyReleased事件做做看,肯定就不会延迟了


可惜不是你,陪我到最后
2006-10-22 09:13
999hits
Rank: 1
等 级:新手上路
威 望:1
帖 子:227
专家分:0
注 册:2005-10-2
得分:0 
我用mouseMoved(),他的速度也应该是非常快的,为什么没有延迟呢,难道鼠标和重绘不是在一个线程里面么

J3D的摸瞎人
2006-10-22 09:55
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
以下是引用999hits在2006-10-22 9:55:11的发言:
我用mouseMoved(),他的速度也应该是非常快的,为什么没有延迟呢,难道鼠标和重绘不是在一个线程里面么

你mouseMoved的时候,图片也会动吗


可惜不是你,陪我到最后
2006-10-22 10:01
999hits
Rank: 1
等 级:新手上路
威 望:1
帖 子:227
专家分:0
注 册:2005-10-2
得分:0 
不是,我的意思是用e.getX()和e.getY()获得dx,dy然后让他运动

J3D的摸瞎人
2006-10-22 10:04
999hits
Rank: 1
等 级:新手上路
威 望:1
帖 子:227
专家分:0
注 册:2005-10-2
得分:0 
其实我是想做一个和"反恐"一样的视角控制程序,但是前后左右移动总是延迟,还有旋转矩阵,我有点弄不懂
Matrix3d(),AxisAngle(),Tuple4d(),Quat4d()这几个函数,我用的是J3D做的,望各位赐教

J3D的摸瞎人
2006-10-23 09:09



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-97017-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.769555 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved