Aşağıdaki fonksiyonları kullanarak oyununuza fare cihazı desteği eklemek için: Oyun Kumandası kitaplığı. Burada, fare cihazları terimini yanı sıra dokunmatik yüzeyleri veya iztoplarını da kullanıyor.
Fare durumu geri çağırması ekle
Oyun Kumandası kitaplığı, oyunda bir sorun olduğunda oyunu bildirmek için fare durumu geri çağırmasını kullanır. bağlı olup olmadığını kontrol edin. Yalnızca bir fare durumu geri çağırmasını destekler oluşturabilirsiniz.
- Fare durumu geri çağırması kaydetmek veya daha önce kaydedilmiş olanları değiştirmek için
yeni bir geri çağırma işleviyle geri çağırmak için,
Paddleboat_setMouseStatusCallback
işlevini kullanın. - Şu anda kayıtlı olan bir geri çağırmayı kaldırmak için şurada
NULL
veyanullptr
mesajını iletin:statusCallback
parametresinden yararlanın. userData
parametresi, kullanıcı tanımlı veriler için isteğe bağlı bir işaretçidir. İlgili içeriği oluşturmak için kullanılanuserData
parametresi, geri çağırma işlevine aktarılır. Bu için başka bir çağrı tarafından değiştirilene kadar işaretçi dahili olarak korunur.Paddleboat_setMouseStatusCallback
void Paddleboat_setMouseStatusCallback(Paddleboat_MouseStatusCallback
statusCallback, void *userData)
Fare durumu geri çağırma işlevinin işlev imzası şöyledir:
typedef void (*Paddleboat_MouseStatusCallback)(const Paddleboat_MouseStatus
mouseStatus, void *userData)
mouseStatus
sıralama parametresi üç olası değere sahip olabilir:
PADDLEBOAT_MOUSE_NONE
: Şu anda bağlı bir fare cihazı yok.PADDLEBOAT_MOUSE_CONTROLLER_EMULATED
: Bağlı bir kumanda simüle ediliyor sahip olursunuz.PADDLEBOAT_MOUSE_PHYSICAL
: Bir veya daha fazla fiziksel fare cihazı bağlı. (Bu cihazlar fare, dokunmatik alan, iztopu veya benzer cihazlar.)
userData
parametresi, son öğede belirtilen userData
işaretçisini içerir.
Paddleboat_setMouseStatusCallback
numaralı telefona sesli arama yapın. userData
, NULL veya
nullptr
.
Bazı kumandalar fareyi taklit etmez. Kumandalar, fareyi simüle edebilir. analog çubuklar veya entegre dokunmatik alan ile sürekli kontrol ediliyor.
Oyun Kumandası kitaplığı yalnızca tek bir fare cihazından veri bildirir. Fiziksel fare cihazları, sanal denetleyici fare cihazlarına göre önceliklidir. fiziksel fare bağlandığında, daha önce aktif olan sanal makinelerin için geçerlidir.
Fare verilerini oku
Fare cihazının durumunu öğrenmek için Paddleboat_getMouseStatus
işlevini çağırın.
Paddleboat_MouseStatus Paddleboat_getMouseStatus()
Paddleboat_getMouseData
'ı kullanma
işlevini kullanın. Bu işlev,
Veriler başarıyla okunursa PADDLEBOAT_NO_ERROR
, aksi takdirde
uygun hata kodu döndürülür.
bool Paddleboat_getMouseData(Paddleboat_Mouse_Data *mouseData)
Paddleboat_Mouse_Data
yapısı, aşağıdakilerle ilgili bilgiler içerir:
- En son fare girişi etkinliği zaman damgası
- İşaretçinin geçerli konumu
- Fare düğmelerinin durumu
- Fare tekerleklerinin durumu
struct Paddleboat_Mouse_Data {
uint64_t timestamp;
uint32_t buttonsDown;
int32_t mouseScrollDeltaH;
int32_t mouseScrollDeltaV;
float mouseX;
float mouseY;
}
Yapı üyesi | Açıklama |
---|---|
timestamp
|
En son fare girişi etkinliğinin zaman damgası. Zaman damgası değeri, belirtilen tarihten itibaren mikrosaniye cinsindendir. saat dilimi. |
buttonsDown
|
Bit alanı, her bir bit 0'dan itibaren değeri, ayarlanırsa düğmenin aşağı durumunu ifade eder. |
mouseX mouseY
|
Piksel koordinatlarında fare konumu.
Konum koordinatları 0.0 aralığındadır
ekran genişliğini ve yüksekliğini
değiştirebilirsiniz. |
mouseScrollDeltaH mouseScrollDeltaV
|
Fare kaydırma tekerleği etkinliklerinin kümülatif toplamı :
Arkadaş Bitkiler Projesi’ne
Paddleboat_getMouseData Bu değerler
verinin net olması garanti edilir, ancak
bir
sağlayabilirsiniz. Çoğu farede bir tane var
kaydırma tekerleğiyle ilgili
mouseScrollDeltaV Farenin bir tarafı varsa
tekerleğiyle ilgili bir sayfada
mouseScrollDeltaH Bu değerler,
Yapılan çağrıdan sonra dahili olarak 0
Paddleboat_getMouseData . |
Oyun Kumandası kitaplığı,
paddleboat.h
arayüz başlığı dosyası:
enum Paddleboat_Mouse_Buttons {
PADDLEBOAT_MOUSE_BUTTON_LEFT = (1U << 0),
PADDLEBOAT_MOUSE_BUTTON_RIGHT = (1U << 1),
PADDLEBOAT_MOUSE_BUTTON_MIDDLE = (1U << 2),
PADDLEBOAT_MOUSE_BUTTON_BACK = (1U << 3),
PADDLEBOAT_MOUSE_BUTTON_FORWARD = (1U << 4),
PADDLEBOAT_MOUSE_BUTTON_6 = (1U << 5),
PADDLEBOAT_MOUSE_BUTTON_7 = (1U << 6),
PADDLEBOAT_MOUSE_BUTTON_8 = (1U << 7)
};
Fiziksel ve sanal fare cihazları
Paddleboat_MouseStatus
/PADDLEBOAT_MOUSE_CONTROLLER_EMULATED
ifadesi
fiziksel bir fare cihazının olmadığını ve Oyun Kumandası kitaplığının
bağlı bir denetleyici kullanarak sanal fare simülasyonu. En düşük bağlı
PADDLEBOAT_CONTROLLER_FLAG_VIRTUAL_MOUSE
işareti ayarlanmış denetleyici dizini
sanal fare olarak kullanılır. Sanal fare cihazlarının yalnızca rapor vermesi garanti edilir
mouseX
ve mouseY
koordinatları. Sanal fare cihazları,
bir (sol) fare düğmesidir, ancak bu garanti edilmez.