Hi, ich bin gerade dabei, meine 3D Engine in die Startlöcher für den neuen Release zu bringen. Dabei hänge ich aber gerade leider an dem Multi-Touch Part von iOS.
Und zwar kann es passieren, dass sich der Index der einzelnen Touch-Events verändert. D.h. wenn jemand einen Finger auf das iPad setzt, dann hat dieses Touch-Event den Index 0 und wenn dann
noch ein Finger auf das iPad kommt kann es passieren, dass das neue Touch-Event den Index 0 hat und das alte Event auf einmal den Index 1.
Das sollte aber nicht passieren. Neue Touch-Events sollten sich immer hinten an stellen. Sonst kommt mein Code mit der Reihenfolge durcheinander.
Z.B. für meine zwei Controller (links einen und rechts einen um z.B. die Kamera zu bewegen und zu drehen).
Hier ist mein Object-C Code in dem ich die Touch-Events abfange:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesBegan:touches withEvent:event];
NSSet* touchSet = [event allTouches];
int i = 0;
for (id touch in touchSet)
{
CGPoint Point = [touch locationInView:self];
iOS_SetTouchBegin(i++, Point.x, Point.y);
}
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesMoved:touches withEvent:event];
NSSet* touchSet = [event allTouches];
int i = 0;
for (id touch in touchSet)
{
CGPoint Point = [touch locationInView:self];
iOS_SetTouchMove(i++, Point.x, Point.y);
}
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesEnded:touches withEvent:event];
NSSet* touchSet = [event allTouches];
int i = 0;
for (id touch in touchSet)
iOS_SetTouchEnd(i++);
}
|
Falls jemand schon mal ein ähnliches Problem hatte und einen Lösungsvorschlag für mich hat, möge mir bitte auf die Sprünge helfen.
Gruß,
Lukas