Total Pageviews

Wednesday, April 23, 2014

ដាក់ accelerometer

Event Accelerometer របស់ Corona SDK
នេះជា event accelerometer, បន្ទាប់ពីស្វែងយល់អំពី Library របស់ Corona ហើយអ្នកអាចសរសេរ Event ណាមួយដើម្បីឪ្យវាអាចប្រតិបត្តិការណ៏ បាន។ នេះជា Event ដំបូងដែលយើងត្រូវស្វែងយល់ឈ្មោះថា accelerometer (បង្កើនល្បឿន)

event.isShake (boolean)
គេប្រើវានៅពេលដែលអ្នកប្រើ shakes the device, តំលៃរបស់វាគឺ true ហើយវាអាស្រ័យលើ OS/Device
សូមមើលកូដះ
local function listener( event )
    if event.isShake then
        print( "The device is being shaken!" )
    end
    return true
end
Runtime:addEventListener( "accelerometer", listener )

event.deltaTime
 ពេលជាវិនាទីចាប់តាំងពី last accelerometer event
ចំណាំះ ការប្រើ accelerometer measurements មិនត្រូវបាន recorded នៅពេលដែលម៉ោងពិតបានទេតាមរយះ system.setAccelerometerInterval() ហ្វាំងសិន។ វាមានន័យថាមិនអាចឪ្យវា configured interval នៃ 10Hz (ex: 100 milliseconds) វានឹង Yield measurements ដែលនឹងចំលង ១០០ Milliseconds យ៉ាងពិត។ ដែល measurements នឹងត្រូវចំលង់។ នេះជាដែនកំនត់របស់ operating system នៅលើ Both IOS & Android។ ដើម្បីសងវាបាន event.deltaTime វាត្រូវផ្តល់ក្នុងការជួយគិតនៅតំលៃត្រឹមត្រូវ។

event.name
វាប្រើសំរាប់ accelerometer events សំរាប់ property ដែលត្រូវបញ្ចូលទៅក្នុង accelerometer
សូមមើលកូដះ
local function onAccelerate( event )
    print( event.name, event.xGravity, event.yGravity )
end
Runtime:addEventListener( "accelerometer", onAccelerate )



event.xGravity
វាប្រើសំរាប់ផ្តល់នៅ acceleration due ទៅកាន់ gravity ដែលទាក់ទង់នឹង x-axis របស់ device’s screen ដែលស្ថិតនៅក្នុង portrait orientation។ តំលៃរបស់វាគឺ “smoothed” ដែលអាស្រ័យលើ previous accelerometer readings ក្នុងការ reduce a jittering effect នៅពេលប្រើក្នុងការ manipulate graphics នៅលើអេក្រង។
ចំណំាះ តំលៃវាតែងតែទាក់ទង់ទៅនឹង device នៅក្នុង portrait orientation, វាទាក់ទង់នឹង current orientation របស់កម្មវិធី។ ដូចនេះបើសិនជាកម្មវិធី ត្រូវបានរត់នៅលើ landscape mode, វាត្រូវការ compensate ៩០​ដឺក្រេ
សូមមើលកូដះ
local function onAccelerate( event )
    print( event.name, event.xGravity, event.yGravity, event.zGravity )
end
Runtime:addEventListener( "accelerometer", onAccelerate )

event.yGravity
វាប្រើសំរាប់ផ្តល់នៅ acceleration due ទៅកាន់ gravity ដែលទាក់ទង់នឹង y-axis របស់ device’s screen ដែលស្ថិតនៅក្នុង portrait orientation។ តំលៃរបស់វាគឺ “smoothed” ដែលអាស្រ័យលើ previous accelerometer readings ក្នុងការ reduce a jittering effect នៅពេលប្រើក្នុងការ manipulate graphics នៅលើអេក្រង។
ចំណំាះ តំលៃវាតែងតែទាក់ទង់ទៅនឹង device នៅក្នុង portrait orientation, វាទាក់ទង់នឹង current orientation របស់កម្មវិធី។ ដូចនេះបើសិនជាកម្មវិធី ត្រូវបានរត់នៅលើ landscape mode, វាត្រូវការ compensate ៩០​ដឺក្រេ
សូមមើលកូដះ
 local function onAccelerate( event )
    print( event.name, event.xGravity, event.yGravity, event.zGravity )
end
Runtime:addEventListener( "accelerometer", onAccelerate )

event.zGravity
វាប្រើសំរាប់ផ្តល់នៅ acceleration due ទៅកាន់ gravity ដែលទាក់ទង់នឹង z-axis របស់ device’s screen ដែលស្ថិតនៅក្នុង portrait orientation។ តំលៃរបស់វាគឺ “smoothed” ដែលអាស្រ័យលើ previous accelerometer readings ក្នុងការ reduce a jittering effect នៅពេលប្រើក្នុងការ manipulate graphics នៅលើអេក្រង។
ចំណំាះ តំលៃវាតែងតែទាក់ទង់ទៅនឹង device នៅក្នុង portrait orientation, វាទាក់ទង់នឹង current orientation របស់កម្មវិធី។ ដូចនេះបើសិនជាកម្មវិធី ត្រូវបានរត់នៅលើ landscape mode, វាត្រូវការ compensate ៩០​ដឺក្រេ
សូមមើលកូដះ
 local function onAccelerate( event )
    print( event.name, event.xGravity, event.yGravity, event.zGravity )
end
Runtime:addEventListener( "accelerometer", onAccelerate )

event.xInstant
ផ្តល់នៅការផ្លាស់ប្តូរ acceleration ដែលទាក់ទង់ទៅនឹង x-axis របស់ screen device ដែលស្ថិតនៅក្នុង portrait orientation។ តំលៃរបស់វាគឺ xGravity ដកទៅនឹង ​តំលៃ xGravity មុនដែលវានឹងផ្តល់នៅ delta acceleration ទាក់ទង់ទៅនឹងសូន្យ។ តំលៃរបស់វានឹងស្វែងរកបើសិនជា device was “jerked” នៅក្នុងទិសដៅណាមួយ
ចំណាំះ តំលៃនេះតែងតែទាក់ទង់ទៅនឹង device portrait orientation, ទាក់ទង់នឹង current orientation របស់កម្មវិធី។ បើសិនជាវារត់លើ landscape mode វាត្រូវប្តូរទៅជា 90 ដឺក្រេ។
សូមមើលកូដះ
local function onAccelerate( event )
    print( event.name, event.xInstant, event.yInstant, event.zInstant )
end
Runtime:addEventListener( "accelerometer", onAccelerate )

event.yInstant
ផ្តល់នៅការផ្លាស់ប្តូរ acceleration ដែលទាក់ទង់ទៅនឹង y-axis របស់ screen device ដែលស្ថិតនៅក្នុង portrait orientation។ តំលៃរបស់វាគឺ yGravity ដកទៅនឹង ​តំលៃ yGravity មុនដែលវានឹងផ្តល់នៅ delta acceleration ទាក់ទង់ទៅនឹងសូន្យ។ តំលៃរបស់វានឹងស្វែងរកបើសិនជា device was “jerked” នៅក្នុងទិសដៅណាមួយ
ចំណាំះ តំលៃនេះតែងតែទាក់ទង់ទៅនឹង device portrait orientation, ទាក់ទង់នឹង current orientation របស់កម្មវិធី។ បើសិនជាវារត់លើ landscape mode វាត្រូវប្តូរទៅជា 90 ដឺក្រេ។
សូមមើលកូដះ
 local function onAccelerate( event )
    print( event.name, event.xInstant, event.yInstant, event.zInstant )
end
Runtime:addEventListener( "accelerometer", onAccelerate )

event.zInstant
ផ្តល់នៅការផ្លាស់ប្តូរ acceleration ដែលទាក់ទង់ទៅនឹង z-axis របស់ screen device ដែលស្ថិតនៅក្នុង portrait orientation។ តំលៃរបស់វាគឺ zGravity ដកទៅនឹង ​តំលៃ zGravity មុនដែលវានឹងផ្តល់នៅ delta acceleration ទាក់ទង់ទៅនឹងសូន្យ។ តំលៃរបស់វានឹងស្វែងរកបើសិនជា device was “jerked” នៅក្នុងទិសដៅណាមួយ
ចំណាំះ តំលៃនេះតែងតែទាក់ទង់ទៅនឹង device portrait orientation, ទាក់ទង់នឹង current orientation របស់កម្មវិធី។ បើសិនជាវារត់លើ landscape mode វាត្រូវប្តូរទៅជា 90 ដឺក្រេ។
សូមមើលកូដះ
 local function onAccelerate( event )
    print( event.name, event.xInstant, event.yInstant, event.zInstant )
end
Runtime:addEventListener( "accelerometer", onAccelerate )

event.xRaw
វាផ្តល់នៅ acceleration ទាក់ទង់នឹង x-axis របស់ device’s screen ដែលស្ថិតនៅក្នុង portrait orientation។ នេះជាច្បាប់របស់ raw value ដែលទទួលបានពី device’s sensorno filtering or smoothing is applied to it
ចំណាំះ តំលៃរបស់វាទាក់ទង់នឹង device portrait orientation, វាទាក់ទង់នឹង current orientation របស់កម្មវិធី។ បើសិនជាកម្មវិធីរត់លើ landscape mode​វាត្រូវដាក់ជា 90 degree
សូមមើលកូដះ
local function onAccelerate( event )
    print( event.name, event.xRaw, event.yRaw, event.zRaw )
end
Runtime:addEventListener( "accelerometer", onAccelerate )

event.yRaw
វាផ្តល់នៅ acceleration ទាក់ទង់នឹង y-axis របស់ device’s screen ដែលស្ថិតនៅក្នុង portrait orientation។ នេះជាច្បាប់របស់ raw value ដែលទទួលបានពី device’s sensorno filtering or smoothing is applied to it
ចំណាំះ តំលៃរបស់វាទាក់ទង់នឹង device portrait orientation, វាទាក់ទង់នឹង current orientation របស់កម្មវិធី។ បើសិនជាកម្មវិធីរត់លើ landscape mode​វាត្រូវដាក់ជា 90 degree
សូមមើលកូដះ
local function onAccelerate( event )
    print( event.name, event.xRaw, event.yRaw, event.zRaw )
end
Runtime:addEventListener( "accelerometer", onAccelerate )



event.zRaw
វាផ្តល់នៅ acceleration ទាក់ទង់នឹង z-axis របស់ device’s screen ដែលស្ថិតនៅក្នុង portrait orientation។ នេះជាច្បាប់របស់ raw value ដែលទទួលបានពី device’s sensorno filtering or smoothing is applied to it
ចំណាំះ តំលៃរបស់វាទាក់ទង់នឹង device portrait orientation, វាទាក់ទង់នឹង current orientation របស់កម្មវិធី។ បើសិនជាកម្មវិធីរត់លើ landscape mode​វាត្រូវដាក់ជា 90 degree
សូមមើលកូដះ
local function onAccelerate( event )
    print( event.name, event.xRaw, event.yRaw, event.zRaw )
end
Runtime:addEventListener( "accelerometer", onAccelerate )




No comments:

Post a Comment