Entwickler-Ecke

Sonstiges (.NET) - XNA Touch abfrage


JoKaBo - Fr 09.03.12 17:37
Titel: XNA Touch abfrage
Hallo,

Ich habe. Grade mit xna fürs windows phone angefangen. Jetzt bin Ich soweit das ich die Touch Abfrage brauchen Also wen Ich auf den Bildschirm ich Sage Mal den Feind treffe dan soll irgendwas passieren...

ich habe bisher das :


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
TouchCollection touchCollection = TouchPanel.GetState();
foreach (TouchLocation tl in touchCollection)
{
    if ((tl.State == TouchLocationState.Pressed)
            || (tl.State == TouchLocationState.Moved))
    {

        // add sparkles based on the touch location
        sparkles.Add(new Sparkle(tl.Position.X,
                 tl.Position.Y, ttms));

    }
}



Jetzt wurde ich das so. Machen. Mit. Hinter der bisherigen in Abfrage noch das dran hängen if(... && touchcollegtion.intersect(feinf_rec)
Aber das geht net ...

Fein_rec ist ein recangle.

Ich hoffe ihr könnt mir helfen

MfG
Jokabo


jaenicke - Fr 09.03.12 18:09

user profile iconJoKaBo hat folgendes geschrieben Zum zitierten Posting springen:
Aber das geht net ...
Und. Was. Heißt diese äußerst Detaillierte beschreibungen? Gibt es eine Fehlermeldung das das So nicht Geht vom Compiler und wenn Ja Welche?


JoKaBo - Sa 10.03.12 20:04

Hallo,

Einmal kommt die Fehlermeldung:


Quelltext
1:
'Microsoft.Xna.Framework.Input.Touch.TouchCollection' does not contain a definition for 'Intersect' and the best extension method overload 'System.Linq.Enumerable.Intersect<TSource>(System.Collections.Generic.IEnumerable<TSource>, System.Collections.Generic.IEnumerable<TSource>)' has some invalid arguments                    


und dann kommt noch die Fehlermeldung:


Quelltext
1:
Argument 2: cannot convert from 'Microsoft.Xna.Framework.Rectangle' to 'System.Collections.Generic.IEnumerable<Microsoft.Xna.Framework.Input.Touch.TouchLocation>'                    


mfg
JoKaBo


Ralf Jansen - Sa 10.03.12 20:30

Zitat:
Jetzt wurde ich das so. Machen. Mit. Hinter der bisherigen in Abfrage noch das dran hängen if(... && touchcollegtion.intersect(feinf_rec)
Aber das geht net ...

Fein_rec ist ein recangle.


Laut Doku enthält eine TouchCollection TouchLocation Elemente. Was soll den die Schnittmenge von TouchLocations und einem Rectangle sein? Schnittmengen kann man logischerweise nur von Mengen mit gleichartigen Elementen machen. Rectangle ist keine TouchLocation. Rectangle ist nicht mal eine Aufzählung.

Wenn du rausfinden willst ob die Location in deinem Rectangle liegt kannst du die Touchlocation irgendwie in einen Point umrechnen (keine Ahnung wie ich kenne XNA nicht). Rectangle hat dann zum testen ob der Point im Rectangle liegt einen Contains Methode.