рдХрд╛рд░реНрдп рд╡рд┐рд╡рд░рдг
рдПрдХреНрд╕реАрд▓реЗрд░реЛрдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдЯреАрдпрд░рд┐рдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдВрджреЛрд▓рди рдХреА рдкреНрд░рддреНрдпреЗрдХ рджрд┐рд╢рд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдирд┐рдХ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рдПрдХ рд╕рддрдд рд╕реНрдХреИрдирд┐рдВрдЧ рдФрд░ рдЕрдиреБрднрд╡рдЬрдиреНрдп рд░реВрдк рд╕реЗ рдЪрдпрдирд┐рдд рд╕реАрдорд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЦреЗрд▓ рдХреБрдВрдЬреА рд╕рдВрдпреЛрдЬрди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рдбрдмреНрд▓реНрдпреВ - рдлреЙрд░рд╡рд░реНрдб, рдбрдмреНрд▓реНрдпреВрдП - рдлреЙрд░рд╡рд░реНрдб рдФрд░ рд▓реЗрдлреНрдЯ, рдЖрджрд┐ред
рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдкреАрд╕реА рддрдХ рдкрд╣реБрдВрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд░реНрд╡рд░ рд░рдирд┐рдВрдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЖрдиреЗ рд╡рд╛рд▓реА рдХрдорд╛рдВрдб рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реА рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рдХреЛ рд╕рд┐рдВрдЧрд▓-рдереНрд░реЗрдбреЗрдб рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдорд╛рд░реНрдЯрдлрд╝реЛрди рдЬреБрдбрд╝рд╛ рд░рд╣реЗред рдХрдиреЗрдХреНрд╢рди рд╡рд╛рдИ-рдлрд╛рдИ рдХреЗ рдЬрд░рд┐рдП рд╣реЛрдЧрд╛ред
рдФрд░ рдЕрдм рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк ...
рд╕рд░реНрд╡рд░
рд╕рд░реНрд╡рд░ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд C ++ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрджреЗрд╢реЛрдВ рдФрд░ рдкреНрд░реЗрд╕ рдХреАрдЬрд╝ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдореВрд▓ рдФрд░ рд╕рд░рд▓ рдХреЛрдб рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
Copy Source | Copy HTML while ( true ) { std::cout << "Wait for connection...\n" ; try { socket = server.Accept(); } catch ( const char *error ) { std::cout << error << std:: endl ; exit( 0 ); } bool keepAlive = true; int timeout = 10000 ; setsockopt( server.getSocket( ), SOL_SOCKET, SO_KEEPALIVE, ( char* )&keepAlive, size of( bool )); setsockopt( server.getSocket( ), SOL_SOCKET, SO_RCVTIMEO, ( char* )&timeout, size of( int )); std::cout << "Connected!\n" ; while ( true ) { std: :string msg = socket->ReceiveLine(); if ( msg.empty( )) break; processKeys( msg.c_str( )); } std::cout << "Disconnected.\n\n\n" ; }
Copy Source | Copy HTML while ( true ) { std::cout << "Wait for connection...\n" ; try { socket = server.Accept(); } catch ( const char *error ) { std::cout << error << std:: endl ; exit( 0 ); } bool keepAlive = true; int timeout = 10000 ; setsockopt( server.getSocket( ), SOL_SOCKET, SO_KEEPALIVE, ( char* )&keepAlive, size of( bool )); setsockopt( server.getSocket( ), SOL_SOCKET, SO_RCVTIMEO, ( char* )&timeout, size of( int )); std::cout << "Connected!\n" ; while ( true ) { std: :string msg = socket->ReceiveLine(); if ( msg.empty( )) break; processKeys( msg.c_str( )); } std::cout << "Disconnected.\n\n\n" ; }
Copy Source | Copy HTML while ( true ) { std::cout << "Wait for connection...\n" ; try { socket = server.Accept(); } catch ( const char *error ) { std::cout << error << std:: endl ; exit( 0 ); } bool keepAlive = true; int timeout = 10000 ; setsockopt( server.getSocket( ), SOL_SOCKET, SO_KEEPALIVE, ( char* )&keepAlive, size of( bool )); setsockopt( server.getSocket( ), SOL_SOCKET, SO_RCVTIMEO, ( char* )&timeout, size of( int )); std::cout << "Connected!\n" ; while ( true ) { std: :string msg = socket->ReceiveLine(); if ( msg.empty( )) break; processKeys( msg.c_str( )); } std::cout << "Disconnected.\n\n\n" ; }
Copy Source | Copy HTML while ( true ) { std::cout << "Wait for connection...\n" ; try { socket = server.Accept(); } catch ( const char *error ) { std::cout << error << std:: endl ; exit( 0 ); } bool keepAlive = true; int timeout = 10000 ; setsockopt( server.getSocket( ), SOL_SOCKET, SO_KEEPALIVE, ( char* )&keepAlive, size of( bool )); setsockopt( server.getSocket( ), SOL_SOCKET, SO_RCVTIMEO, ( char* )&timeout, size of( int )); std::cout << "Connected!\n" ; while ( true ) { std: :string msg = socket->ReceiveLine(); if ( msg.empty( )) break; processKeys( msg.c_str( )); } std::cout << "Disconnected.\n\n\n" ; }
Copy Source | Copy HTML while ( true ) { std::cout << "Wait for connection...\n" ; try { socket = server.Accept(); } catch ( const char *error ) { std::cout << error << std:: endl ; exit( 0 ); } bool keepAlive = true; int timeout = 10000 ; setsockopt( server.getSocket( ), SOL_SOCKET, SO_KEEPALIVE, ( char* )&keepAlive, size of( bool )); setsockopt( server.getSocket( ), SOL_SOCKET, SO_RCVTIMEO, ( char* )&timeout, size of( int )); std::cout << "Connected!\n" ; while ( true ) { std: :string msg = socket->ReceiveLine(); if ( msg.empty( )) break; processKeys( msg.c_str( )); } std::cout << "Disconnected.\n\n\n" ; }
Copy Source | Copy HTML while ( true ) { std::cout << "Wait for connection...\n" ; try { socket = server.Accept(); } catch ( const char *error ) { std::cout << error << std:: endl ; exit( 0 ); } bool keepAlive = true; int timeout = 10000 ; setsockopt( server.getSocket( ), SOL_SOCKET, SO_KEEPALIVE, ( char* )&keepAlive, size of( bool )); setsockopt( server.getSocket( ), SOL_SOCKET, SO_RCVTIMEO, ( char* )&timeout, size of( int )); std::cout << "Connected!\n" ; while ( true ) { std: :string msg = socket->ReceiveLine(); if ( msg.empty( )) break; processKeys( msg.c_str( )); } std::cout << "Disconnected.\n\n\n" ; }
Copy Source | Copy HTML while ( true ) { std::cout << "Wait for connection...\n" ; try { socket = server.Accept(); } catch ( const char *error ) { std::cout << error << std:: endl ; exit( 0 ); } bool keepAlive = true; int timeout = 10000 ; setsockopt( server.getSocket( ), SOL_SOCKET, SO_KEEPALIVE, ( char* )&keepAlive, size of( bool )); setsockopt( server.getSocket( ), SOL_SOCKET, SO_RCVTIMEO, ( char* )&timeout, size of( int )); std::cout << "Connected!\n" ; while ( true ) { std: :string msg = socket->ReceiveLine(); if ( msg.empty( )) break; processKeys( msg.c_str( )); } std::cout << "Disconnected.\n\n\n" ; }
Copy Source | Copy HTML while ( true ) { std::cout << "Wait for connection...\n" ; try { socket = server.Accept(); } catch ( const char *error ) { std::cout << error << std:: endl ; exit( 0 ); } bool keepAlive = true; int timeout = 10000 ; setsockopt( server.getSocket( ), SOL_SOCKET, SO_KEEPALIVE, ( char* )&keepAlive, size of( bool )); setsockopt( server.getSocket( ), SOL_SOCKET, SO_RCVTIMEO, ( char* )&timeout, size of( int )); std::cout << "Connected!\n" ; while ( true ) { std: :string msg = socket->ReceiveLine(); if ( msg.empty( )) break; processKeys( msg.c_str( )); } std::cout << "Disconnected.\n\n\n" ; }
Copy Source | Copy HTML while ( true ) { std::cout << "Wait for connection...\n" ; try { socket = server.Accept(); } catch ( const char *error ) { std::cout << error << std:: endl ; exit( 0 ); } bool keepAlive = true; int timeout = 10000 ; setsockopt( server.getSocket( ), SOL_SOCKET, SO_KEEPALIVE, ( char* )&keepAlive, size of( bool )); setsockopt( server.getSocket( ), SOL_SOCKET, SO_RCVTIMEO, ( char* )&timeout, size of( int )); std::cout << "Connected!\n" ; while ( true ) { std: :string msg = socket->ReceiveLine(); if ( msg.empty( )) break; processKeys( msg.c_str( )); } std::cout << "Disconnected.\n\n\n" ; }
Copy Source | Copy HTML while ( true ) { std::cout << "Wait for connection...\n" ; try { socket = server.Accept(); } catch ( const char *error ) { std::cout << error << std:: endl ; exit( 0 ); } bool keepAlive = true; int timeout = 10000 ; setsockopt( server.getSocket( ), SOL_SOCKET, SO_KEEPALIVE, ( char* )&keepAlive, size of( bool )); setsockopt( server.getSocket( ), SOL_SOCKET, SO_RCVTIMEO, ( char* )&timeout, size of( int )); std::cout << "Connected!\n" ; while ( true ) { std: :string msg = socket->ReceiveLine(); if ( msg.empty( )) break; processKeys( msg.c_str( )); } std::cout << "Disconnected.\n\n\n" ; }
Copy Source | Copy HTML while ( true ) { std::cout << "Wait for connection...\n" ; try { socket = server.Accept(); } catch ( const char *error ) { std::cout << error << std:: endl ; exit( 0 ); } bool keepAlive = true; int timeout = 10000 ; setsockopt( server.getSocket( ), SOL_SOCKET, SO_KEEPALIVE, ( char* )&keepAlive, size of( bool )); setsockopt( server.getSocket( ), SOL_SOCKET, SO_RCVTIMEO, ( char* )&timeout, size of( int )); std::cout << "Connected!\n" ; while ( true ) { std: :string msg = socket->ReceiveLine(); if ( msg.empty( )) break; processKeys( msg.c_str( )); } std::cout << "Disconnected.\n\n\n" ; }
Copy Source | Copy HTML while ( true ) { std::cout << "Wait for connection...\n" ; try { socket = server.Accept(); } catch ( const char *error ) { std::cout << error << std:: endl ; exit( 0 ); } bool keepAlive = true; int timeout = 10000 ; setsockopt( server.getSocket( ), SOL_SOCKET, SO_KEEPALIVE, ( char* )&keepAlive, size of( bool )); setsockopt( server.getSocket( ), SOL_SOCKET, SO_RCVTIMEO, ( char* )&timeout, size of( int )); std::cout << "Connected!\n" ; while ( true ) { std: :string msg = socket->ReceiveLine(); if ( msg.empty( )) break; processKeys( msg.c_str( )); } std::cout << "Disconnected.\n\n\n" ; }
Copy Source | Copy HTML while ( true ) { std::cout << "Wait for connection...\n" ; try { socket = server.Accept(); } catch ( const char *error ) { std::cout << error << std:: endl ; exit( 0 ); } bool keepAlive = true; int timeout = 10000 ; setsockopt( server.getSocket( ), SOL_SOCKET, SO_KEEPALIVE, ( char* )&keepAlive, size of( bool )); setsockopt( server.getSocket( ), SOL_SOCKET, SO_RCVTIMEO, ( char* )&timeout, size of( int )); std::cout << "Connected!\n" ; while ( true ) { std: :string msg = socket->ReceiveLine(); if ( msg.empty( )) break; processKeys( msg.c_str( )); } std::cout << "Disconnected.\n\n\n" ; }
Copy Source | Copy HTML while ( true ) { std::cout << "Wait for connection...\n" ; try { socket = server.Accept(); } catch ( const char *error ) { std::cout << error << std:: endl ; exit( 0 ); } bool keepAlive = true; int timeout = 10000 ; setsockopt( server.getSocket( ), SOL_SOCKET, SO_KEEPALIVE, ( char* )&keepAlive, size of( bool )); setsockopt( server.getSocket( ), SOL_SOCKET, SO_RCVTIMEO, ( char* )&timeout, size of( int )); std::cout << "Connected!\n" ; while ( true ) { std: :string msg = socket->ReceiveLine(); if ( msg.empty( )) break; processKeys( msg.c_str( )); } std::cout << "Disconnected.\n\n\n" ; }
Copy Source | Copy HTML while ( true ) { std::cout << "Wait for connection...\n" ; try { socket = server.Accept(); } catch ( const char *error ) { std::cout << error << std:: endl ; exit( 0 ); } bool keepAlive = true; int timeout = 10000 ; setsockopt( server.getSocket( ), SOL_SOCKET, SO_KEEPALIVE, ( char* )&keepAlive, size of( bool )); setsockopt( server.getSocket( ), SOL_SOCKET, SO_RCVTIMEO, ( char* )&timeout, size of( int )); std::cout << "Connected!\n" ; while ( true ) { std: :string msg = socket->ReceiveLine(); if ( msg.empty( )) break; processKeys( msg.c_str( )); } std::cout << "Disconnected.\n\n\n" ; }
Copy Source | Copy HTML while ( true ) { std::cout << "Wait for connection...\n" ; try { socket = server.Accept(); } catch ( const char *error ) { std::cout << error << std:: endl ; exit( 0 ); } bool keepAlive = true; int timeout = 10000 ; setsockopt( server.getSocket( ), SOL_SOCKET, SO_KEEPALIVE, ( char* )&keepAlive, size of( bool )); setsockopt( server.getSocket( ), SOL_SOCKET, SO_RCVTIMEO, ( char* )&timeout, size of( int )); std::cout << "Connected!\n" ; while ( true ) { std: :string msg = socket->ReceiveLine(); if ( msg.empty( )) break; processKeys( msg.c_str( )); } std::cout << "Disconnected.\n\n\n" ; }
Copy Source | Copy HTML while ( true ) { std::cout << "Wait for connection...\n" ; try { socket = server.Accept(); } catch ( const char *error ) { std::cout << error << std:: endl ; exit( 0 ); } bool keepAlive = true; int timeout = 10000 ; setsockopt( server.getSocket( ), SOL_SOCKET, SO_KEEPALIVE, ( char* )&keepAlive, size of( bool )); setsockopt( server.getSocket( ), SOL_SOCKET, SO_RCVTIMEO, ( char* )&timeout, size of( int )); std::cout << "Connected!\n" ; while ( true ) { std: :string msg = socket->ReceiveLine(); if ( msg.empty( )) break; processKeys( msg.c_str( )); } std::cout << "Disconnected.\n\n\n" ; }
Copy Source | Copy HTML while ( true ) { std::cout << "Wait for connection...\n" ; try { socket = server.Accept(); } catch ( const char *error ) { std::cout << error << std:: endl ; exit( 0 ); } bool keepAlive = true; int timeout = 10000 ; setsockopt( server.getSocket( ), SOL_SOCKET, SO_KEEPALIVE, ( char* )&keepAlive, size of( bool )); setsockopt( server.getSocket( ), SOL_SOCKET, SO_RCVTIMEO, ( char* )&timeout, size of( int )); std::cout << "Connected!\n" ; while ( true ) { std: :string msg = socket->ReceiveLine(); if ( msg.empty( )) break; processKeys( msg.c_str( )); } std::cout << "Disconnected.\n\n\n" ; }
Copy Source | Copy HTML while ( true ) { std::cout << "Wait for connection...\n" ; try { socket = server.Accept(); } catch ( const char *error ) { std::cout << error << std:: endl ; exit( 0 ); } bool keepAlive = true; int timeout = 10000 ; setsockopt( server.getSocket( ), SOL_SOCKET, SO_KEEPALIVE, ( char* )&keepAlive, size of( bool )); setsockopt( server.getSocket( ), SOL_SOCKET, SO_RCVTIMEO, ( char* )&timeout, size of( int )); std::cout << "Connected!\n" ; while ( true ) { std: :string msg = socket->ReceiveLine(); if ( msg.empty( )) break; processKeys( msg.c_str( )); } std::cout << "Disconnected.\n\n\n" ; }
Copy Source | Copy HTML while ( true ) { std::cout << "Wait for connection...\n" ; try { socket = server.Accept(); } catch ( const char *error ) { std::cout << error << std:: endl ; exit( 0 ); } bool keepAlive = true; int timeout = 10000 ; setsockopt( server.getSocket( ), SOL_SOCKET, SO_KEEPALIVE, ( char* )&keepAlive, size of( bool )); setsockopt( server.getSocket( ), SOL_SOCKET, SO_RCVTIMEO, ( char* )&timeout, size of( int )); std::cout << "Connected!\n" ; while ( true ) { std: :string msg = socket->ReceiveLine(); if ( msg.empty( )) break; processKeys( msg.c_str( )); } std::cout << "Disconnected.\n\n\n" ; }
Copy Source | Copy HTML while ( true ) { std::cout << "Wait for connection...\n" ; try { socket = server.Accept(); } catch ( const char *error ) { std::cout << error << std:: endl ; exit( 0 ); } bool keepAlive = true; int timeout = 10000 ; setsockopt( server.getSocket( ), SOL_SOCKET, SO_KEEPALIVE, ( char* )&keepAlive, size of( bool )); setsockopt( server.getSocket( ), SOL_SOCKET, SO_RCVTIMEO, ( char* )&timeout, size of( int )); std::cout << "Connected!\n" ; while ( true ) { std: :string msg = socket->ReceiveLine(); if ( msg.empty( )) break; processKeys( msg.c_str( )); } std::cout << "Disconnected.\n\n\n" ; }
Copy Source | Copy HTML while ( true ) { std::cout << "Wait for connection...\n" ; try { socket = server.Accept(); } catch ( const char *error ) { std::cout << error << std:: endl ; exit( 0 ); } bool keepAlive = true; int timeout = 10000 ; setsockopt( server.getSocket( ), SOL_SOCKET, SO_KEEPALIVE, ( char* )&keepAlive, size of( bool )); setsockopt( server.getSocket( ), SOL_SOCKET, SO_RCVTIMEO, ( char* )&timeout, size of( int )); std::cout << "Connected!\n" ; while ( true ) { std: :string msg = socket->ReceiveLine(); if ( msg.empty( )) break; processKeys( msg.c_str( )); } std::cout << "Disconnected.\n\n\n" ; }
рдХреАрд╕реНрдЯреНрд░реЛрдХ:
Copy Source | Copy HTML
- рд╢реВрдиреНрдп рдкреНрд░реЗрд╕рдХреЗрдп ( рдЪрд╛рд░ рдХреА 1, рдЪрд╛рд░ рдХреА 2 ) {
- // рдкрд┐рдЫрд▓реА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рджрдмрд╛рдПрдВ
- for ( std :: map <char, int> :: iterator it = scanCodes.begin ( ); рдпрд╣? = scanCodes.end (); рдпрд╣ ++) {
- char curKey = it-> рдкрд╣рд▓реЗ;
- рдЕрдЧрд░ ( curKey! = key1 && curKey! = key2 )
- upKey ( curKey );
- }
- downKey (рдХреА 1 );
- рдбрд╛рдЙрдирдХреЗрдп (рдХреА 2 );
- }
- рд╢реВрдиреНрдп рдбрд╛рдЙрдирдХреЗ ( рдЪрд╛рд░ рдХреА ) {
- keybd_event ( VkKeyScan (рдХреБрдВрдЬреА ), рд╕реНрдХреИрдирдХреЛрдб [рдХреБрдВрдЬреА], 0 , 0 );
- }
- рд╢реВрдиреНрдп upKey ( рдЪрд╛рд░ рдкреНрд░рдореБрдЦ ) {
- keybd_event ( VkKeyScan (рдХреБрдВрдЬреА ), рд╕реНрдХреИрдирдХреЛрдб [рдХреБрдВрдЬреА], KEYEVENTF_KEYUP, 0 );
- }
рдЧреНрд░рд╛рд╣рдХ
рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдХрд╛рд░реНрдп рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдФрд░ рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдВрдЬреА рд╕рдВрдпреЛрдЬрди рднреЗрдЬрдирд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдПрдХ рдПрдХреНрд╕реЗрд▓реЗрд░реЛрдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдорд╛рд░рд╛ рдХрд╛рдо рдлреЛрди рдХреЗ рд╕реНрдерд╛рдирд┐рдХ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
Copy Source | Copy HTML
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ MainActivity рдЧрддрд┐рд╡рд┐рдзрд┐ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ SensorEventListener {
- @Override
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп onCreate (рдмрдВрдбрд▓ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛
- // ...
- SensManager = (SensorManager) getSystemService (SENSOR_SERVICE);
- рдПрдХреНрд╕реЗрд▓реЗрд░реЛрдореАрдЯрд░ = SensManager.getDefaultSensor (Sensor.TYPE_ACCELEROMETER);
- // ...
- }
- @Override
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп onSororChanged (рд╕реЗрдВрд╕рд░ рдЗрд╡реЗрдВрдЯ ) {
- рдЕрдЧрд░ ( рдШрдЯрдирд╛ред sensor.getType () == Sensor.TYPE_ACCELEROMETER) {
- long curTime = System.currentTimeMillis ();
- // рдкреНрд░рддреНрдпреЗрдХ 100 рдПрдордПрд╕ рдбреЗрдЯрд╛ рдкрдврд╝реЗрдВ, рдЕрдиреНрдпрдерд╛ рдлреЛрди рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рд╕реЗ рдЭреБрдХ рдЬрд╛рдПрдЧрд╛
- if (lastUpdate == - 1 || (curTime - lastUpdate)> 100 ) {11
- lastUpdate = curTime;
- x = рдШрдЯрдирд╛ .values тАЛтАЛ[DATA_X];
- y = рдШрдЯрдирд╛ .values тАЛтАЛ[DATA_Y];
- z = рдШрдЯрдирд╛ .values тАЛтАЛ[DATA_Z];
- xLabel.setText (String.format ( "X:% + 2.5f" , x));
- yLabel.setText (String.format ( "Y:% + 2.5f" , y));
- zLabel.setText (String.format ( "Z:% + 2.5f" , z));
- рдХреЛрд╢рд┐рд╢ рдХрд░реЛ {
- sendKeys (); // рд╕рд░реНрд╡рд░ рдХреА рдЪрд╛рдмрд┐рдпрд╛рдБ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг
- } рдкрдХрдбрд╝ (рдЕрдкрд╡рд╛рдж рдИ) {
- e.printStackTrace ();
- }
- }
- }
- }
- }
рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдПрдХреНрд╕реЗрд▓реЗрд░реЛрдореАрдЯрд░ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдЖрдкрдХрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рддреБрд░рдВрдд рд╕реЗрдВрд╕рд░ рдХреЗ рдирд┐рд░рдВрддрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рд╕реЗ рдирд┐рд▓рдВрдмрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рддрд╣, рдЖрдкрдХреЛ рдПрдХреНрд╕реЗрд▓реЗрд░реЛрдореАрдЯрд░ рд╕реЗ рд╢реНрд░реЛрддрд╛ рдХреЛ рдЦреЛрд▓рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрди рдФрд░ рдмреИрдЯрд░реА рдмрд░реНрдмрд╛рдж рди рд╣реЛрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, onResume рдФрд░ onPause рд╡рд┐рдзрд┐рдпрд╛рдБ рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░реЗрдВ:
Copy Source | Copy HTML
- @Override
- рд╕рдВрд░рдХреНрд╖рд┐рдд рд╢реВрдиреНрдп рдкрд░ () {
- super.onResume ();
- SensManager.registerListener ( рдпрд╣ рдПрдХреНрд╕реЗрд▓реЗрд░реЛрдореАрдЯрд░, SENSOR_DELAY_NORMAL);
- }
- @Override
- рд╕рдВрд░рдХреНрд╖рд┐рдд рд╢реВрдиреНрдп рдЪрд╛рд▓реВ () {
- super.onPause ();
- SensManager.unregisterListener ( рдпрд╣ );
- }
рдХреБрдВрдЬреА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рд╕рднреА рд╕реАрдорд╛рдУрдВ рдХреЛ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
Copy Source | Copy HTML
- рдирд┐рдЬреА рд╕реНрдЯреНрд░рд┐рдВрдЧ getKeys () {
- рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреАрдЬрд╝ = "" ;
- рдЕрдЧрд░ (z> 7.5 )
- рдЪрд╛рдмрд┐рдпрд╛рдБ + = "рдбрдмреНрд▓реНрдпреВ" ;
- рдЕрдиреНрдпрдерд╛
- рдЪрд╛рдмрд┐рдпрд╛рдБ + = "рдПрд╕" ;
- рдЕрдЧрд░ (y <- 3 )
- рдЪрд╛рдмрд┐рдпрд╛рдБ + = "рдП" ;
- рдФрд░ рдЕрдЧрд░ (y> 3 )
- рдЪрд╛рдмрд┐рдпрд╛рдБ + = "рдбреА" ;
- рд╡рд╛рдкрд╕реА рдХреБрдВрдЬреА;
- }
рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдореИрдВрдиреЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдиреАрдб рдлреЙрд░ рд╕реНрдкреАрдб рдореЛрд╕реНрдЯ рд╡рд╛рдВрдЯреЗрдб рдкрд░ рдЕрдиреБрднрд╡ рдХреАред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ, рдЕрд╕рд▓реА рд╕реНрдЯреАрдпрд░рд┐рдВрдЧ рд╡реНрд╣реАрд▓ рдХреА рддрд░рд╣ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╡реАрдбрд┐рдпреЛ рдХреЛ рд╢реВрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдШрд░ рдореЗрдВ рдПрдХ рдХреИрдорд░рд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдлреЛрди рдкрд░ред рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реЗ рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛ред рдпрд╣рд╛рдБ рдпрд╣ рдкреАрд╕реА рдФрд░ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдкрд░ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
рдирд┐рд╖реНрдХрд░реНрд╖
рдЕрдм рддрдХ, рд╕рд░реНрд╡рд░ рдореЗрдВ рдореБрдЦреНрдп рджреЛрд╖ рд╡реИрд╢реНрд╡рд┐рдХ рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕ рд╣реИ, рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдХреБрдЫ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдЬрд┐рд╕рдХрд╛ рдореБрдЭреЗ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИ рд╡рд╣ рд╣реИ рдирд┐рд░рдВрддрд░ рд╡рд┐рдпреЛрдЧред рдЬрдм рдХрдиреЗрдХреНрд╢рди рдХрд╛рдЯ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдореБрдЭреЗ рд▓рдЧрд╛рддрд╛рд░ рдкреБрди: рд╕рдВрдпреЛрдЬрди рд╕реЗ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ред
рдХреНрдпрд╛ рдкрдврд╝рдирд╛ рд╣реИ?
рдПрдХреНрд╕реЗрд▓реЗрд░реЛрдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ:
github.com/eburke/android_game_examples/blob/9d65f96aff5d60a2e765d8db894b7eb3fd02c315/GameExamples/src/com/stuffthathappens/games/Accel.java
рдореБрдЦреНрдп рдкреНрд░реЗрд╕ рдЕрдиреБрдХрд░рдг:
www.codeproject.com/kb/system/keyboard.aspx
рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд - рд╕реНрд░реЛрдд:
dl.dropbox.com/u/5636452/game_controller.zip