qq游戏2d桌球瞄准器上的2D桌球用来瞄准的那个小球怎...

上传时间:
56官方微信
扫一扫发现精彩2D桌球斯诺克瞄准器|腾讯QQ游戏斯诺克瞄准器(2D桌球瞄准器)8.0
中文绿色版-东坡下载
东坡下载:内容最丰富最安全的下载站!
→ 腾讯QQ游戏斯诺克瞄准器(2D桌球瞄准器) 8.0
中文绿色版
解压密码是
腾讯QQ游戏斯诺克瞄准器(2D)是一个针对QQ2D桌球的瞄准器,软件自动识别白球,自动判断球与洞的角度,打球的时候,您只需要点一下目标球洞,然后把鼠标放在被打的球上,点1下鼠标右键,软件就会自动调整鼠标角度,接着你只需要按1下左键就可以把目标球,轻轻松松打进球洞。腾讯QQ游戏斯诺克瞄准器怎么用腾讯QQ游戏斯诺克瞄准器使用方法1、点击“定位”按钮,选取运行中斯诺克桌球游戏的球桌位置。(该操作只需做一次,如果您改变了游戏窗口位置或者大小,则需要再操作一次)2、等所有球静止,并且没有类似“N连击”的文字遮住白球或目标球,按键盘上方F8唤出目标球选择窗口。选中要击打的目标球。(当目标球紧挨其他球时,可能会有误差)3、目标球轨迹线就会出现。轨迹线会在您点击鼠标之后消失。(如果您要调整白球旋,请在步骤2之前进行。因为鼠标点击会导致轨迹线消失。)4、重复2、3步骤。5、球半径设置:不同的游戏,球的半径不一样,要试多几次找出正确的半径。(QQ 2D桌球 斯诺克 小窗口的球半径大概是10.2,大窗口的球半径大概是13.2)腾讯QQ游戏斯诺克瞄准器适用性使用图像识别可以适用于各个不同的游戏。在QQ 2D桌球的斯诺克进行过试验,非常完美。腾讯QQ游戏斯诺克瞄准器注意事项由于某些游戏本身设计原因,在大力击球时会出现些许误差。所以减少击球力度能提高命中率
安卓官方手机版
IOS官方手机版
腾讯QQ游戏斯诺克瞄准器(2D桌球瞄准器)截图
桌球瞄准器
桌球是一款非常流行的小游戏,简单而流行的操作方式,真实模拟的桌球场景,能够让玩家身临其境的体会美式球美式球斯洛克等桌球玩法。想要在桌球中得到更高的分数,除了多练习之外,也可借助桌球瞄准器。本站给大家提...
中文 / 20.0M疯狂神器QQ2D桌球辅助于2016最新
中文 / 6.3M对于不喜欢一个人玩Hurtworld游戏
中文 / 9.9M看着大家一直在魔龙之戒游戏中受
中文 / 350M其实不少人都应该清楚伤害世界这
中文 / 19.4M采用预设力度原理,所以和平常击
中文 / 7.4MQQ2D桌球右键瞄准器是一个QQ2D桌
随着时代的发展与变迁,社交是一项很重要的本领,我们只有不断地与各类人员进行交往和信息沟通,才能不断地丰富自己、发展自己、扩充自己。社交软件也有很多种,不过大体可以分为电脑社交软件,手机社交软件,并且也可以按功能直接画分,所有社交软件对每个人来说都非常重要,这里为您提供的当前所有的社交软件大集合。
中文 / 21.7M &&&&登陆QQ游戏无需单独申请游戏帐号,下载、***游戏大厅后,可以直接用QQ号码进行登陆,再选择自己喜欢的游戏进行下载。游戏之余,目前QQ游戏版本还为广大网友提供众多服务:随时把情投意合的网友加为自己的游戏好友显示置顶,还可以向他发出
中文 / 27.9M 都秀视频聊天软件是北京都秀网络科技有限公司基于宽带网络推出的“全新网络多人视频聊天工具”。
中文 / 1.0M
中文 / 2.7M
中文 / 4.9M
中文 / 6.8M
腾讯QQ游戏斯诺克瞄准器(2D桌球瞄准器) 8.0
中文绿色版
本类最新软件
广东佛山顺德联通 网友 客人 发表于:
这运行辅助的时候密码是什么啊
江苏镇江电信 网友 客人 发表于:
这个怎么用啊
浙江联通 网友 客人 发表于:
什么你麻痹玩意
骗人的东西
浙江杭州铁通 网友 客人 发表于:
怎么下载啊
福建莆田联通 网友 客人 发表于:
土狗才用这玩意。
广东教育网 网友 客人 发表于:
可以全搞掉
黑龙江佳木斯联通 网友 客人 发表于:
还行挺好用的
黑龙江佳木斯联通 网友 客人 发表于:
还行挺好用的
中国CZ88.NET 网友 客人 发表于:
什么jb玩意
福建泉州联通 网友 客人 发表于:
用锤子 我草
本类软件推荐
1.31G / 06-03 / 绿色中文版
844KB / 07-31 / 1.0.1.4 最新免费版 【风灵月影】
1.8M / 03-04 / 1.0 绿色最新版 【2015】
41.4M / 12-01 / 2.0 中文免费版
3.3M / 03-09 / 5.7.2 官方版【最好用的LOL换肤工具】
本类软件排行
装机必备软件
模拟平台对战工具
请简要描述您遇到的错误,我们将尽快予以修正。
轮坛转帖HTML方式
轮坛转帖UBB方式用C#调用Matlab图像处理自制QQ游戏2D桌球瞄准器
来源:博客园
平时不怎么玩游戏,有时消遣就玩玩QQ里的2D桌球,但是玩的次数少,不能像骨灰级玩家一样百发百中,肿么办呢?于是某天突发奇想,决定自己也来做个“外挂”。说是外挂,其实只是一个瞄准器,毕竟外挂是修改别人的软件,有点违法的意思,况且自己还没有能力去那么做,所以自己还是弄个瞄准器,做做弊,过下小瘾,同时也提高一下自己的编程能力。 起初(也就是半年前),自己尝试做一个瞄准器的初始版本,用C#做,想法很简单: Step1.把鼠标移到洞口,获取鼠标位置; Step2.将鼠标放到要击打的球的圆心上,获取鼠标当前位置 Step3.根据进球时三点共线的原则按照球的半径自动将鼠标移动到准确的击球点。 示意图如下: 于是当初就按照这个想法做了,开始给自己做了个版,调用Windows API中的GetDesktopWindow,GetWindowDC,SetCursorPos三个函数,经过简单的数学运算,就基本实现了功能。代码如下: Csharp代码 using System.D
using System.Windows.F
using System.W
using System.Runtime.InteropS
using S
namespace TaiqiuGua
public partial class Form1 : Form
const int ra=25;
[DllImport("user32.dll")]
static extern IntPtr GetDesktopWindow();
[DllImport("user32.dll")]
static extern IntPtr GetWindowDC(IntPtr hWnd);
[DllImport("user32.dll")]
static extern bool SetCursorPos(int X, int Y);
public Form1()
InitializeComponent();
Point startP;
Point endP;
private void Form1_KeyDown(object sender, KeyEventArgs e)
switch(e.KeyData)
case Keys.F1:
startP=Control.MouseP
case Keys.F2:
endP = Control.MouseP
case Keys.D1:
int x1 = (int)(endP.X + ra * ((endP.X - startP.X) / Math.Sqrt((endP.X - startP.X) * (endP.X - startP.X) + (endP.Y - startP.Y) * (endP.Y - startP.Y))));
int y1 = (int)(endP.Y + ra * ((endP.Y - startP.Y) / Math.Sqrt((endP.X - startP.X) * (endP.X - startP.X) + (endP.Y - startP.Y) * (endP.Y - startP.Y))));
SetCursorPos(x1, y1);
case Keys.D2:
int x2 = (int)(endP.X - ra * ((-endP.X + startP.X) / Math.Sqrt((-endP.X + startP.X) * (-endP.X + startP.X) + (endP.Y - startP.Y) * (endP.Y - startP.Y))));
int y2 = (int)(endP.Y + ra * ((endP.Y - startP.Y) / Math.Sqrt((-endP.X + startP.X) * (-endP.X + startP.X) + (endP.Y - startP.Y) * (endP.Y - startP.Y))));
SetCursorPos(x2, y2);
case Keys.D3:
int x3 = (int)(endP.X + ra * ((endP.X - startP.X) / Math.Sqrt((endP.X - startP.X) * (endP.X - startP.X) + (-endP.Y + startP.Y) * (-endP.Y + startP.Y))));
int y3 = (int)(endP.Y - ra * ((-endP.Y + startP.Y) / Math.Sqrt((endP.X - startP.X) * (endP.X - startP.X) + (-endP.Y + startP.Y) * (-endP.Y + startP.Y))));
SetCursorPos(x3, y3);
case Keys.D4:
int x4 = (int)(endP.X - ra * ((-endP.X + startP.X) / Math.Sqrt((-endP.X + startP.X) * (-endP.X + startP.X) + (-endP.Y + startP.Y) * (-endP.Y + startP.Y))));
int y4 = (int)(endP.Y - ra * ((-endP.Y + startP.Y) / Math.Sqrt((-endP.X + startP.X) * (-endP.X + startP.X) + (-endP.Y + startP.Y) * (-endP.Y + startP.Y))));
SetCursorPos(x4, y4);
GC.Collect();
使用时,只需要激活瞄准器窗口,按F1,F2获取鼠标位置,再根据洞口位置分别选按1、2、3、4数字键就行。 经过N次试验,成功率还挺高,只是有时候手动放置鼠标到被击打球圆心会出现误差,导致击球不准,当然,后来我赢了很多场比赛(嘿嘿,有点不道德!)。 再后来,又用C写了一遍,给同学用了。代码如下: Cpp代码 #include &windows.h&
#include &math.h&
int ra=26;
int flag=0;
POINT startP,endP;
int x5,y5,x2,y2,x3,y3,x4,y4;
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)
static TCHAR szAppName[] = TEXT ("GUA") ;
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndP
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hI
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = szAppN
if (!RegisterClass (&wndclass))
MessageBox ( NULL, TEXT ("Program requires Windows NT!"),
szAppName, MB_ICONERROR) ;
return 0 ;
hwnd = CreateWindow (szAppName, TEXT ("Programmed By DC"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, hInstance, NULL) ;
ShowWindow (hwnd, iCmdShow) ;
SetForegroundWindow(hwnd);
MoveWindow(hwnd,100,100,200,200,TRUE);
UpdateWindow (hwnd) ;
while (GetMessage (&msg, NULL, 0, 0))
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
return msg.wP
void Draw(HWND hwnd,LPCSTR lpString)
PAINTSTRUCT
hdc = BeginPaint (hwnd, &ps) ;
GetClientRect (hwnd, &rect) ;
DrawText (hdc, lpString, -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
EndPaint (hwnd, &ps) ;
ReleaseDC(hwnd,hdc);
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam,LPARAM lParam)
PAINTSTRUCT
switch (message)
case WM_CREATE:
return 0 ;
case WM_PAINT :
return 0 ;
case WM_KEYDOWN:
switch (wParam)
case VK_F1:
GetCursorPos(&startP);
InvalidateRect (hwnd, NULL, TRUE) ;
Draw(hwnd,"第1点已锁定!");
case VK_F2:
GetCursorPos(&endP);
InvalidateRect (hwnd, NULL, TRUE) ;
Draw(hwnd,"第2点已锁定!");
case 0x31:
x5 = (int)(endP.x + ra * ((endP.x - startP.x) / sqrt((endP.x - startP.x) * (endP.x - startP.x) + (endP.y - startP.y) * (endP.y - startP.y))));
y5 = (int)(endP.y + ra * ((endP.y - startP.y) / sqrt((endP.x - startP.x) * (endP.x - startP.x) + (endP.y - startP.y) * (endP.y - startP.y))));
SetCursorPos(x5, y5);
case 0x32:
x2 = (int)(endP.x - ra * ((-endP.x + startP.x) / sqrt((-endP.x + startP.x) * (-endP.x + startP.x) + (endP.y - startP.y) * (endP.y - startP.y))));
y2 = (int)(endP.y + ra * ((endP.y - startP.y) / sqrt((-endP.x + startP.x) * (-endP.x + startP.x) + (endP.y - startP.y) * (endP.y - startP.y))));
SetCursorPos(x2, y2);
case 0x33:
x3 = (int)(endP.x + ra * ((endP.x - startP.x) / sqrt((endP.x - startP.x) * (endP.x - startP.x) + (-endP.y + startP.y) * (-endP.y + startP.y))));
y3 = (int)(endP.y - ra * ((-endP.y + startP.y) / sqrt((endP.x - startP.x) * (endP.x - startP.x) + (-endP.y + startP.y) * (-endP.y + startP.y))));
SetCursorPos(x3, y3);
case 0x34:
x4 = (int)(endP.x - ra * ((-endP.x + startP.x) / sqrt((-endP.x + startP.x) * (-endP.x + startP.x) + (-endP.y + startP.y) * (-endP.y + startP.y))));
y4 = (int)(endP.y - ra * ((-endP.y + startP.y) / sqrt((-endP.x + startP.x) * (-endP.x + startP.x) + (-endP.y + startP.y) * (-endP.y + startP.y))));
SetCursorPos(x4, y4);
case WM_SIZE :
if(flag==1)
Draw(hwnd,"第1点已锁定!");
else if(flag==2)
Draw(hwnd,"第2点已锁定!");
{InvalidateRect (hwnd, NULL, TRUE) ; }
return 0 ;
case WM_KILLFOCUS:
InvalidateRect (hwnd, NULL, TRUE) ;
hdc = BeginPaint (hwnd, &ps) ;
GetClientRect (hwnd, &rc) ;
hBrush = CreateSolidBrush ( RGB(255,0,0) ) ;
FillRect (hdc, &rc, hBrush) ;
EndPaint (hwnd, &ps) ;
ReleaseDC(hwnd,hdc);
DeleteObject (hBrush) ;
case WM_SETFOCUS:
InvalidateRect (hwnd, NULL, TRUE) ;
if(flag==1)
Draw(hwnd,"第1点已锁定!");
else if(flag==2)
Draw(hwnd,"第2点已锁定!");
case WM_DESTROY :
PostQuitMessage (0) ;
return 0 ;
return DefWindowProc(hwnd, message, wParam, lParam) ;
但是问题还存在,就是手动找圆心太麻烦,一般用触摸板比鼠标方便,但是仍然很不智能,于是一直想着用图像处理的方法去自动找圆心。 这几天在做数模,经常用到Matlab,刚做了一道要处理图像的题,正好想起这个问题来,于是,搁置的瞄准器继续开始完善了。 很快就有了思路,通过C#截图,然后Matlab进行图像滤波,灰度化,二值化以及边缘提取,然后进行圆曲线拟合,最后找到圆心,返回到C#中使用,代替手动找点。 首先,我用Matlab写了个函数: Html代码 function [x,y]=findcenter()
%close all,clear,clc
format short
a=imread('E:\360data\重要数据\桌面\test.bmp');
b=rgb2gray(a);%转化为灰度图像
%imshow(b)
b=filter2(fspecial('average',1),b)/255;
%b=medfilt2(b);%中值滤波
level=graythresh(b);%自动获取灰度图片的阈值
c=im2bw(b,level);%二值化
%imshow(c)
bw=edge(c,'canny');
bw1=~%取反,黑变白,白变黑
%imshow(bw1)
%imshow(bw1)
[yf,xf]=find(bw1==0);
xmin=min(xf);
xmax=max(xf);
ymin=min(yf);
ymax=max(yf);
%cirPx=[(xmax-xmin)/2;(xmax-xmin)/2;xmax]
%cirPy=[(ymax-ymin)/2;(ymax-ymin)/2]
%fitellipse(cirPx,cirPy)
centerX=(xmax+xmin)/2;
centerY=(ymax+ymin)/2;
ra=(ymax-ymin)/2;
x=centerX;y=centerY;
%hold on
%x=0:size(bw1,2);
%degree=[0:0.01:pi*2];
%degree=[0:0.01:pi*2];
%plot(ra*cos(degree)+centerX,ra*sin(degree)+centerY,'r-');
%plot(centerX,centerY,'r+');
然后用Matlab2010b里的deploytool导出.net能使用的程序集dll文件(不知道为什么malab2009b在build时出现.net framework相关的错误),通过C#添加引用,调用其返回的参数,成功完成自动拾取圆心。 改进后代码如下: Csharp代码 using System.D
using System.Windows.F
using System.W
using System.Runtime.InteropS
using S
using MathWorks.MATLAB.NET.A
using MathWorks.MATLAB.NET.U
namespace TaiqiuGua
public partial class Form1 : Form
const int ra=25;
[DllImport("user32.dll")]
static extern IntPtr GetDesktopWindow();
[DllImport("user32.dll")]
static extern IntPtr GetWindowDC(IntPtr hWnd);
[DllImport("user32.dll")]
static extern bool SetCursorPos(int X, int Y);
public Form1()
InitializeComponent();
Point startP,startP1;
Point endP,endP1;
private void Form1_KeyDown(object sender, KeyEventArgs e)
switch(e.KeyData)
case Keys.F1:
startP=Control.MouseP
case Keys.F5:
endP = Control.MouseP
case Keys.F2:
startP1 = Control.MouseP
case Keys.F3:
endP1 = Control.MouseP
case Keys.D1:
int x1 = (int)(endP.X + ra * ((endP.X - startP.X) / Math.Sqrt((endP.X - startP.X) * (endP.X - startP.X) + (endP.Y - startP.Y) * (endP.Y - startP.Y))));
int y1 = (int)(endP.Y + ra * ((endP.Y - startP.Y) / Math.Sqrt((endP.X - startP.X) * (endP.X - startP.X) + (endP.Y - startP.Y) * (endP.Y - startP.Y))));
SetCursorPos(x1, y1);
case Keys.D2:
int x2 = (int)(endP.X - ra * ((-endP.X + startP.X) / Math.Sqrt((-endP.X + startP.X) * (-endP.X + startP.X) + (endP.Y - startP.Y) * (endP.Y - startP.Y))));
int y2 = (int)(endP.Y + ra * ((endP.Y - startP.Y) / Math.Sqrt((-endP.X + startP.X) * (-endP.X + startP.X) + (endP.Y - startP.Y) * (endP.Y - startP.Y))));
SetCursorPos(x2, y2);
case Keys.D3:
int x3 = (int)(endP.X + ra * ((endP.X - startP.X) / Math.Sqrt((endP.X - startP.X) * (endP.X - startP.X) + (-endP.Y + startP.Y) * (-endP.Y + startP.Y))));
int y3 = (int)(endP.Y - ra * ((-endP.Y + startP.Y) / Math.Sqrt((endP.X - startP.X) * (endP.X - startP.X) + (-endP.Y + startP.Y) * (-endP.Y + startP.Y))));
SetCursorPos(x3, y3);
case Keys.D4:
int x4 = (int)(endP.X - ra * ((-endP.X + startP.X) / Math.Sqrt((-endP.X + startP.X) * (-endP.X + startP.X) + (-endP.Y + startP.Y) * (-endP.Y + startP.Y))));
int y4 = (int)(endP.Y - ra * ((-endP.Y + startP.Y) / Math.Sqrt((-endP.X + startP.X) * (-endP.X + startP.X) + (-endP.Y + startP.Y) * (-endP.Y + startP.Y))));
SetCursorPos(x4, y4);
case Keys.F4:
int w=endP1.X - startP1.X;
int h=endP1.Y - startP1.Y;
Bitmap bmSave = new Bitmap(w,h);
Graphics g=Graphics.FromImage(bmSave);
g.CopyFromScreen(startP1.X,startP1.Y,0,0,new Size(w,h),CopyPixelOperation.SourceCopy);
bmSave.Save(@"E:\360data\重要数据\桌面\test.bmp");
g.Dispose();
bmSave.Dispose();
findcenter.Class1 f = new findcenter.Class1();
MWArray centerx = f.findcenter();
MWArray centery = f.findy();
double[,] x = (double[,])centerx.ToArray();
double[,] y = (double[,])centery.ToArray();
SetCursorPos((int)(x[0, 0] + startP1.X), (int)(y[0, 0] + startP1.Y));
f.Dispose();
GC.Collect();
private void Form1_Activated(object sender, EventArgs e)
private void Form1_Deactivate(object sender, EventArgs e)
经试验,成功率也很高,偶尔出现不准(估计是边缘提取和计算精度的问题),但是大多数偏差可以手动修正。 到此为止,改进版全部完成。希望以后继续改进,更加智能化。 真是码农的利器啊!
免责声明:本站部分内容、图片、文字、视频等来自于互联网,仅供大家学习与交流。相关内容如涉嫌侵犯您的知识产权或其他合法权益,请向本站发送有效通知,我们会及时处理。反馈邮箱&&&&。
学生服务号
在线咨询,奖学金返现,名师点评,等你来互动

参考资料

 

随机推荐