ΠΡΡΡΠΈΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΊ ΠΊΠΎΠ΄Ρ β ΡΠΎΡ, Π±Π΅Π· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ΄Π°Π»ΠΎΡΡ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ. Π‘Π½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΠΎ ΡΡΠ½ΠΎΠΉ Π·Π° ΡΡΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ ΠΈ Π²ΡΡΠ°Π·ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠ΅ΠΌ, ΠΊΠΎΠ³Π΄Π° ΡΠ°ΠΌ ΠΊΠΎΠ΄ ΠΈΡΡΠ΅ΡΠΏΠ°Π» Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°ΠΌΠΎΠ²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡ.
Π ΠΏΡΠ΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠΈ ΠΊ ΠΊΠ½ΠΈΠ³Π΅ Β«Π‘ΡΡΡΠΊΡΡΡΠ° ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΒ» ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΎΡΠΈΠ΅Π½ΡΠΈΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ°:
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΈΡΠ°ΡΡΡΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π΄Π»Ρ Π»ΡΠ΄Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡ ΡΠΈΡΠ°ΡΡ, ΠΈ Π»ΠΈΡΡ Π²ΠΎ Π²ΡΠΎΡΡΡ β Π΄Π»Ρ ΠΌΠ°ΡΠΈΠ½, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ.
ΠΠΎΠ½Π°Π»ΡΠ΄ ΠΠ½ΡΡ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅Ρ ΡΡΡ ΠΈΠ΄Π΅Ρ Π² ΡΡΡΠ΅ ΠΎ Π³ΡΠ°ΠΌΠΎΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ:
Π‘ΠΌΠ΅Π½ΠΈΠΌ ΠΏΡΠΈΠ²ΡΡΠ½ΡΡ ΠΎΠΏΡΠΈΠΊΡ: Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ, ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ, ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠΌΡΡ Π½Π° ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ Π»ΡΠ΄ΡΠΌ, ΡΠ΅Π³ΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΎΡ ΠΌΠ°ΡΠΈΠ½Ρ.
ΠΡΠ»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΠ°ΡΡΠ΅ΡΠ΅ Π½Π° ΠΊΠΎΠ»Π»Π΅Π³, Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ ΡΠ΅Π·ΠΊΠΎ ΡΠΎΠΊΡΠ°ΡΠΈΡΡΡ.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊΠ°ΠΊ ΠΊΠΎΡΡΡΠ»Ρ
ΠΠΎΡ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½-ΠΊΠΎΠ΄Π° ΠΈΠ· Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡΡΠ΅ΠΉ Π·Π°ΠΊΡΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ:
float _x = abs(x - deviceInfo->position.x) / scale;
int directionCode;
if (0 < _x & x != deviceInfo->position.x) {
if (0 > x - deviceInfo->position.x) {
directionCode = 0x04 /*left*/;
} else if (0 < x - deviceInfo->position.x) {
directionCode = 0x02 /*right*/;
}
}
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ /*left*/ ΠΈ /*right*/ ΠΌΠ°ΡΠΊΠΈΡΡΡΡ Π·Π°ΠΏΡΡΠ°Π½Π½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΈ Π½Π΅Π²Π½ΡΡΠ½ΡΠ΅ ΠΈΠΌΠ΅Π½Π°. ΠΠΎΡΠ»Π΅ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π° ΠΊΠΎΠ΄ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ°ΠΌΠΎΠ΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΌ:
static const int DIRECTION_RIGHT = 0x02;
static const int DIRECTION_LEFT = 0x04;
static const int DIRECTION_NONE = 0x00;
int oldX = deviceInfo->position.x;
int directionCode = (x > oldX) ? DIRECTION_RIGHT
: (x < oldX) ? DIRECTION_LEFT
: DIRECTION_NONE;
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΡΠΎΠΊΡΠ°ΡΠΈΠ»ΠΎΡΡ Π΄ΠΎ Π½ΡΠ»Ρ, Π° ΠΏΠΎΠ½ΡΡΠ½ΠΎΡΡΡ Π²ΡΡΠΎΡΠ»Π°. ΠΡΠΌΡΡΠ»Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΠ»ΠΈ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² ΠΊΠΎΡΡΡΠ»ΡΡ .
ΠΠ΄Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ
Π‘ΠΊΠΎΠ»ΡΠΊΠΎ Π±Ρ ΡΡΠΈΠ»ΠΈΠΉ ΠΌΡ Π½ΠΈ Π²ΠΊΠ»Π°Π΄ΡΠ²Π°Π»ΠΈ Π² ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³, ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ ΠΊΠΎΠ΄ Π½Π΅ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π²Π΅ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΡΠΈΠ½ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΊ ΠΎΡΠΌΠ΅ΡΠ°Π» ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° Macintosh ΠΠΆΠ΅Ρ Π Π°ΡΠΊΠΈΠ½:
ΠΠΎΠ΄ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ Π²ΡΠ±ΡΠ°Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΡΠ΅Π΄ΠΈ Π΄Π΅ΡΡΡΠΊΠ° Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ².
ΠΡΠΈΠΌΠ΅Ρ ΡΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΡΠΈΠΊΡΠΈΡΡΡΡΠ΅Π³ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅:
/* ΠΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ ΠΎΠΊΠ°Π·Π°Π»ΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΠΎΠΉΠ΅ΡΠ°-ΠΡΡΠ° Π½Π° Π½Π°ΡΠΈΡ
ΠΎΠ±ΡΠ΅ΠΌΠ°Ρ
Π΄Π°Π½Π½ΡΡ
.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠ΅, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° Π½Π΅ΡΠΈΠΏΠΈΡΠ½ΠΎΡΡΡ Π·Π°Π΄Π°ΡΠΈ. */
Π’ΠΎ, ΡΡΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ Π°Π²ΡΠΎΡΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ, ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠ»Π³ΠΎΠ΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΡ Π² ΡΡΠΏΠΈΠΊ Π²ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΠΎΠ΄ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π½Π° Π²ΠΎΠΏΡΠΎΡ Β«ΠΊΠ°ΠΊΒ» ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΠΈΠΊΡΠΈΡΡΡΡ ΠΎΡΠ²Π΅Ρ Π½Π° Π²ΠΎΠΏΡΠΎΡ Β«ΠΏΠΎΡΠ΅ΠΌΡΒ» ΠΎΠ½Π° ΡΡΡΡΠΎΠ΅Π½Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ. Π‘ΠΎΡ ΡΠ°Π½ΡΠΉΡΠ΅ ΡΡΠΎΡ Π±Π°Π»Π°Π½Ρ Π² ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅.