Tôi tự hỏi làm thế nào để có được tổng số của ngón tay chạm vào màn hình trên trò chơi của tôi.Đầu vào LIBGDX - Số ngón tay chạm vào màn hình
Cảm ơn bạn
Tôi tự hỏi làm thế nào để có được tổng số của ngón tay chạm vào màn hình trên trò chơi của tôi.Đầu vào LIBGDX - Số ngón tay chạm vào màn hình
Cảm ơn bạn
Nếu bạn sử dụng InputProcessor
để xử lý đầu vào dựa trên sự kiện, chỉ cần tăng bộ đếm tại touchDown
và giảm bộ đếm tại touchUp
.
Nếu bạn đang sử dụng Gdx.input
để xử lý đầu vào dựa trên bỏ phiếu, hãy sử dụng cuộc gọi isTouched(int)
để kiểm tra xem con trỏ N có ngừng hoạt động hay không. Triển khai libGDX tracks at most 20 pointers. Tôi không nghĩ rằng bất kỳ phần cứng nào hỗ trợ nhiều (và trò chơi của bạn cũng có giới hạn thấp hơn). Bạn sẽ phải kiểm tra tất cả các ID con trỏ, mặc dù, như con trỏ id N + 1 có thể vẫn hoạt động sau khi con trỏ id N đã để lại. Một cái gì đó như:
int activeTouch = 0;
for (int i = 0; i < 20; i++) {
if (Gdx.input.isTouched(i)) activeTouch++;
}
Dont biết cách thích hợp để làm việc đó nhưng một phương pháp khó chịu và đơn giản đang đến trong tâm trí tôi. Triển khai bộ xử lý đầu vào reference for input processor here và thực hiện biến số lượt truy cập. Bên trong phương pháp touchdown của nó tăng truy cập bằng 1 và bên trong phương pháp touchup giảm truy cập bằng 1. giá trị để truy cập sẽ cung cấp cho tổng số ngón tay hiện nay chạm vào màn hình. Một cách khác để thực hiện nó là bằng con trỏ trong bộ xử lý đầu vào. Nhưng tôi nhận thấy phương pháp này đơn giản hơn :)
bạn có thể thử này:
float Ipsi=0.5;
if(Gdx.input.isTouched()){
int xTouch = Gdx.input.getX();
int yTouch = Gdx.input.getY();
int count=0;
ArrayList<Integer> lx = new ArrayList<Integer>();
ArrayList<Integer> ly = new ArrayList<Integer>();
lx.add(xTouch);
ly.add(yTouch);
//lx.size()=ly.size()
if(2<lx.size()){
for(int i = 0; i < lx.size(); i++){
if((lx.get(i)-lx.get(i+1)<Ipsi)&&(ly.get(i)-ly.get(i+1)<Ipsi))
{count++;}
}
}
}
tôi đã không kiểm tra mã nhưng tôi hy vọng nó sẽ làm việc. chúc may mắn.
ok và bạn có thể giải thích phương pháp khác không? – LeSam