首页 新闻 会员 周边 捐助

游戏外挂,GDI+红色准心,如何屏幕画红点不闪烁?

0
悬赏园豆:10 [已解决问题] 解决于 2013-01-26 14:20

最近在做穿越火线了一款游戏外挂,添加了一个红色准心的功能,可是遇到问题,进入游戏后红点一直闪,后来直接闪消失了。百思不得其解

我是这样做的,先获取当前屏幕分辨率,用System.Threading.timer开启一个时间线程,这个线程不断地在屏幕中间绘制红点,时间间隔是5ms,也可以改。不进入游戏的时候不闪,很正常。可以已进入游戏就闪个不停,后来干脆消失了。

我不知道是不是线程屏幕画红点的频率小于游戏画面刷新的频率。或者说我用线程去画红点这种方法一开始就不对。但线程去不断去绘制红点理论上行的通啊,可为什么进入游戏就不行了呢?问题出在哪呢?困惑了我好几个月至今未找到解决方法。

望大虾指点屏幕画红点不闪烁的正确方法,感激不尽。(试了双缓冲也不行)

问题补充:

大家觉得用鼠标穿透如何?

不采用线程画红点的方法,直接就是整个无边框透明窗体,上面放个红点图片,鼠标穿透窗体,从而达到屏幕红色准心效果

Andy.Li的主页 Andy.Li | 初学一级 | 园豆:170
提问于:2013-01-16 11:29
< >
分享
最佳答案
0

双缓冲的时候需要在内存位图上绘制,同时需要拦截WM_ERASEBKGND消息返回一个空的画刷和禁止基类处理此消息。

不要在System.Threading.Timer中直接在屏幕绘制,应该在System.Windows.Forms.Timer中。

没做过外挂,一般闪烁的话,是因为背景被擦除了问题,你的问题可能是因为背景改变后,先画了背景输出到屏幕,然后你的绘制代码又单独的绘制了图形并输出屏幕。消失的问题很有可能是因为你的Timer没选择正确的问题。

收获园豆:10
Launcher | 高人七级 |园豆:45050 | 2013-01-16 13:16

如果用System.Windows.Forms.Timer的话,外挂程序的主界面会卡死的。为了避免这种情况。我特意选用了System.Threading.Timer。

Andy.Li | 园豆:170 (初学一级) | 2013-01-16 13:44

@〆.落若兮。: 大哥,OnTimer 的时候,只是调用一次 Invalidate(FALSE),绘图的代码还是在 OnPaint 中去做。或者你用 Threading.Timer 在 Bitmap 上绘制,然后调用 Invalidate(FALSE),在 OnPaint 中直接把位图绘制到屏幕。

Launcher | 园豆:45050 (高人七级) | 2013-01-16 14:06
其他回答(2)
0

来搞笑一下,最简单的,用笔在屏幕上画个红点,在一些没有准心的FPS游戏我这么干过。。

以前碰到过屏幕闪烁的,双缓冲就可以的。

你试试创建个句柄,前置到最前,画个透明的图层。

腐乳 | 园豆:12 (初学一级) | 2013-01-16 13:39

没有准心的FPS?除了狙击不开镜没准心外都有准心的。没准心也太奇葩了吧。

就是用句柄获取到整个屏幕然后去画的

支持(0) 反对(0) Andy.Li | 园豆:170 (初学一级) | 2013-01-16 13:51

@〆.落若兮。: 关掉准心比较有真实感,瞄准要右键用瞄准孔打,而且有呼吸,枪口会上下抖动。

支持(0) 反对(0) 腐乳 | 园豆:12 (初学一级) | 2013-01-17 16:31
0

你这熊孩子,玩游戏就玩游戏,做什么外挂!自己添加红色准星假装盲狙么 ... 那你多此一举了,准星永远在屏幕正中央的,自己贴个东西就可以了。

水牛刀刀 | 园豆:6350 (大侠五级) | 2013-01-16 14:51

呵呵,那外挂推出去不可能让玩家自己去在屏幕中间贴东西吧。加红色准心不是要去盲狙而是要去瞬狙。完全模仿游戏中玩家的瞬狙打法。

支持(0) 反对(0) Andy.Li | 园豆:170 (初学一级) | 2013-01-16 14:55

@〆.落若兮。: 我知道啊,盲狙的意思就是指瞬镜。你莫非打算卖这个外挂么。。。

支持(0) 反对(0) 水牛刀刀 | 园豆:6350 (大侠五级) | 2013-01-16 14:57

@水牛刀刀: 额。。。盲狙什么时候等于瞬狙了。。。。。。盲狙不开镜,瞬狙有开镜过程的,只是非常快看不出来。扯远啦扯远啦~~~做了只是玩玩。话说我的号已经被封了,T_T

支持(0) 反对(0) Andy.Li | 园豆:170 (初学一级) | 2013-01-16 15:13

@〆.落若兮。: 我是说,我刚才那句话里的盲狙意思就是瞬镜,如果只按鼠标左键,子弹很容易乱飞,所以值得讨论的盲狙就是指瞬镜了,因为不瞬镜的盲狙根本没有讨论的价值。btw,我都是以cs为准的,不过cf应该是一样的。

支持(0) 反对(0) 水牛刀刀 | 园豆:6350 (大侠五级) | 2013-01-16 15:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册