Nedeniyle bir davranışa böcek olan birkaç saat için mücadele ettik SDL2 ben hiçbir şey bilmiyordum hangi.
Özellikle, kullanıcı ekrana dokunduğunda mobil, iki olay gönderilir, bunu bilmiyordu:
- İlki bana oldukça açıktı: Bir parmak aşağı olay .
- : Ikincisi gerçekten az belirgin oldu bir fare düğmesi aşağı olay .
Aynı parmak yukarı / fare düğmesi yukarı olaylar için de geçerlidir.
Bunlardan bir iç komut atıldı Çünkü iki kez bana bir ağrıttı.
Hedef sorusuna amacına dışındaki nedenlerden dolayı hem mobil hem de masaüstü ortamları desteklemektir.
Ayrıca, ben tahmin edebilirsiniz SDL2 zaten mevcut kod temeli düzgün göçünü desteklemek amacıyla böyle çalışır.
Neyse, bir (beni diyelim) bulunmaktadır SDL2 yönlü mobil fare ilgili olayları engellemek için?
Doğrusu, onlar benim açımdan çok şey anlam ifade etmeyen ve ben yazılım bir masaüstü ortamına yürütüldüğünde sürece, onlardan kurtulmak istiyorum.
Ayrıca, ben istemiyorum, ne zaman parametreleri derleme kullanmak ne de amacı olan mobil cihazlarda bu etkinlikleri bastırmaktır kod adanmış parça var.
Kod oldukça basit. bir (belki) anlamlı düşük, örneğin aşağıda belirtilmiştir:
SDL_Event ev;
while(SDL_PollEvent(&ev)) {
switch(event.type) {
case SDL_FINGERDOWN:
// read it and throw an internal event E
break;
case SDL_MOUSEBUTTONDOWN:
// read it and throw an internal event E
break;
}
}
açıklandığı gibi kullanıcı, ekrana dokunduğu zaman maalesef yukarıda her iki etkinlik okunur.
* DÜZENLE *
Ben bir Android cihazda başvurumu test ve ben aynı sorunu iOS'ta doğar emin olmak için uzak olduğumu bahsetmedi.
Aşağıdaki yanıtı bakın. O gerçekten de görünüyor konu (şimdiye kadar bunu anladığınız tam olarak değil bir sorun olduğunu) nedeniyle Android'de varsayılan parmak olaylardan yolu SDL2 davranır nedeniyledir.