2014-12-06 13 views
17

Sto lavorando a un'app multi-touch utilizzando Monogame, in cui più utenti possono lavorare su uno schermo multi-touch più grande con documenti/immagini/video separati contemporaneamente, e mi chiedevo se è possibile fare gesti "sensibili al contesto" , cioè due dita che pizzicano un documento su un lato del muro non dovrebbero influenzare qualcuno che esegue il panning dall'altro lato del muro.È possibile ottenere gesti "contestuali" in Monogame/XNA?

Il modo Monogame funziona è, tutti i punti di ingresso sono tradotti in gesti, che può essere letto utilizzando:

if (TouchPanel.IsGestureAvailable) 
{ 
    var gesture = TouchPanel.ReadGesture(); 
    // do stuff 
} 

C'è un modo per fare gesti limitati a un certo punto sullo schermo, o devo devo implementarlo da solo? Ad esempio, guardando il codice sorgente, sembra che la classe TouchPanelState faccia tutto il lavoro, ma sfortunatamente i suoi costruttori sono internal.

+0

Non so e non ho avuto esperienza di programmazione XNA o Monogame, ma per il record, sembra che ci sia una classe statica 'TouchPanel', che ha un metodo' GetState() '. Forse questo potrebbe aiutare a istanziare la classe 'TouchPanelState' che desideri? –

risposta

2

Questa funzione non è incorporata in MonoGame, poiché non fa parte di XNA originale. In sostanza si vorrebbe più di un TouchPanel "logico" definito dal suo sub-rettangolo della finestra. Comunque TouchPanel è statico, quindi c'è solo uno per l'intero gioco in XNA di default.

La buona notizia è che MonoGame esegue il riconoscimento dei propri gesti. Quindi, il codice è lì, devi solo apportare alcune modifiche a MonoGame.

Ad esempio ...
-Premete TouchPanel una classe non statica che può essere allocata con una data subrect.
-Aggiunta di versioni non statiche di tutti i metodi TouchPanel.
-I metodi statici reindirizzano a un singleton/istanza di TouchPanel, preservando la vecchia API.
... ora è possibile allocare più TouchPanel che NON sono l'intero schermo.

Nota: Questo non ti aiuta, ma MonoGame non consentono di avere più di una finestra del sistema operativo (solo su Windows afaik) nel qual caso il TouchPanel statica è la prima finestra e v'è un'API per l'accesso ai separata tocco input/gestures per qualsiasi finestra aggiuntiva.

Problemi correlati