Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
#region data
Bitmap TROG_BMP;
Bitmap TRONG_BMP;
#endregion
public MainWindow()
{
InitializeComponent();
LoadData();
}
void LoadData()
{
TROG_BMP = (Bitmap)Bitmap.FromFile("Data//trog.png");
TRONG_BMP = (Bitmap)Bitmap.FromFile("Data//trong.png");
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Task t = new Task(()=> {
isStop = false;
Auto();
});
t.Start();
}
bool isStop = false;
void Auto()
{
// lấy ra danh sách devices id để dùng
List<string> devices = new List<string>();
devices = KAutoHelper.ADBHelper.GetDevices();
// chạy từng device để điều khiển theo kịch bản bên trong
foreach (var deviceID in devices)
{
// tạo ra một luồng xử lý riêng biệt để xử lý cho device này
Task t = new Task(()=> {
// lặp kịch bản
while (true)
{
// nếu có lệnh stop thì dừng toàn bộ luồng chạy
var screen = KAutoHelper.ADBHelper.ScreenShoot(deviceID, false);
if (isStop)
break;
//chọn ô đất 1
KAutoHelper.ADBHelper.TapByPercent(deviceID, 33, 50);
Delay(2);
if (isStop)
break;
var trogPoint = KAutoHelper.ImageScanOpenCV.FindOutPoint(screen, TROG_BMP);
if (trogPoint != null) //nhấp vào trồng
{
KAutoHelper.ADBHelper.Tap(deviceID, 324, 192);
Delay(2);
}
if (isStop)
break;
var trongPoint = KAutoHelper.ImageScanOpenCV.FindOutPoint(screen, TRONG_BMP);
if (trongPoint != null)
{
//nhấp trồng
KAutoHelper.ADBHelper.Tap(deviceID, 609, 311);
Delay(1);
}
}
});
t.Start();
}
}
cơ chế tìm hình là so 2 hình. nếu hình đầu vào không tồn tại cũng lỗi
2. nếu tỷ lệ so khớp quá cao cũng không thấy. thử giam tỷ lệ so khớp
3. nhớ cài đủ thư viện cần thiết
4. không phải handle nào cũng có thể click ngầm được
ngoài ra e thử test bản client của game (class UniWndClass) thì tìm được nhưng k nhấn không chiếm chuột được