गेम कंट्रोलर में ऐसी अतिरिक्त सुविधाएं भी मौजूद होती हैं जो खिलाड़ियों के साथ इंटरैक्शन को बेहतर बनाने और उनके अनुभव को बेहतर बनाने के लिए किया जा सकता है. हैप्टिक, मोशन सेंसर, और लाइट Android गेम कंट्रोलर की सुविधाओं में, खास तौर पर अहम भूमिका होती है और गेमिंग के अनुभव को और बेहतर बना रहे हैं. हर सुविधा, अपने काम को बेहतर तरीके से करती है खिलाड़ी की समझ, विषय के हिसाब से, से बचें.
हैप्टिक
Android गेम कंट्रोलर में हैप्टिक की सुविधा एक अहम टेक्नोलॉजी है, जो गेमप्ले के दौरान असल में महसूस होने वाला फ़ीडबैक देता हो.
हैप्टिक टेक्नोलॉजी, वाइब्रेशन के ज़रिए उपयोगकर्ता को शारीरिक संवेदनाएं दिखाती है या गतिविधियों. उदाहरण के लिए, जब गेम में कोई धमाका होता है, तो कंट्रोलर इसमें वाइब्रेशन से खिलाड़ी को असल में एहसास होता है. इसके अलावा, किसी किरदार के चलने की आवाज़ के साथ या उसके साथ हल्का वाइब्रेशन हो सकता है चलाने के लिए डिज़ाइन किया गया है, और यह जीवन जैसा अनुभव देता है. इस तरह का हैप्टिक फ़ीडबैक खिलाड़ियों को गेम में हो रहे अलग-अलग इवेंट को शारीरिक तौर पर महसूस करने में मदद करता है.
इस टेक्नोलॉजी से खिलाड़ियों की दिलचस्पी बढ़ती है, वे भावनात्मक तौर पर जुड़ाव महसूस करते हैं, और गेम की डाइनैमिक को बेहतर बनाता है. Android गेम कंट्रोलर में हैप्टिक की सेटिंग यह न सिर्फ़ गेम डेवलपर के लिए क्रिएटिविटी को बढ़ाता है, बल्कि अब ज़्यादा असली लगने वाले हैं.
fun triggerVibrationMultiChannel(
deviceId: Int, leftIntensity: Int, leftDuration: Int,
rightIntensity: Int, rightDuration: Int) {
val inputDevice = InputDevice.getDevice(deviceId)
val vibratorManager = inputDevice!!.vibratorManager
if (vibratorManager != null) {
val vibratorIds = vibratorManager.vibratorIds
val vibratorCount = vibratorIds.size
if (vibratorCount > 0) {
// We have an assumption that game controllers have two vibrators
// corresponding to a left motor and a right motor, and the left
// motor will be first.
updateVibrator(vibratorManager.getVibrator(vibratorIds[0]), leftIntensity, leftDuration)
if (vibratorCount > 1) {
updateVibrator(vibratorManager.getVibrator(vibratorIds[1]), rightIntensity, rightDuration)
}
}
}
}
fun updateVibrator(vibrator: Vibrator?, intensity: Int, duration: Int) {
if (vibrator != null) {
if (intensity == 0) {
vibrator.cancel()
} else if (duration > 0) {
vibrator.vibrate(VibrationEffect.createOneShot(duration.toLong(), intensity))
}
}
}
वाइब्रेशन की सुविधा का इस्तेमाल करने के लिए, यह एक सुविधा और अनुमति सेट करती है.
<application ...>
...
<uses-feature android:name="android.hardware.gamepad" android:required="true"/>
<uses-permission android:name="android.permission.VIBRATE"/>
...
</application>
इसके बारे में ज़्यादा जानकारी पाने के लिए,
VibratorManager
और
ऐप्लिकेशन मेनिफ़ेस्ट.
मोशन सेंसर
गेमप्ले के अनुभव को बेहतर बनाने वाली सबसे नई टेक्नोलॉजी में से एक है मोशन सेंसर वाला Android गेम कंट्रोलर. यह टेक्नोलॉजी उपयोगकर्ताओं की शारीरिक गतिविधियों का पता लगाता है और उस डेटा को इनसे आपको गेमिंग का ज़्यादा सहज और शानदार अनुभव मिलेगा. इस परिचय में, हम जानेंगे कि मोशन सेंसर Android गेम कंट्रोलर काम करते हैं.
मोशन सेंसर आम तौर पर जाइरोस्कोप और एक्सलरोमीटर से, उपयोगकर्ताओं की गतिविधि और ओरिएंटेशन.
इसे एक्सेलरेटर और जाइरोस्कोप लिसनर क्लास को लागू करने और रजिस्टर करने की ज़रूरत होती है कंट्रोलर के सेंसर मैनेजर से इन लिसनर को ऐक्सेस किया जा सकता है.
fun setIntegratedAccelerometerActive(deviceId: Int) {
val device = InputDevice.getDevice(deviceId)
val sensorManager = device?.sensorManager
val accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER)
if (accelerometer != null) {
val accelerometerListener =
GameControllerAccelerometerListener(accelerometer)
sensorManager.registerListener(
accelerometerListener, accelerometer,
SensorManager.SENSOR_DELAY_GAME
)
}
}
fun setIntegratedGyroscopeActive(deviceId: Int) {
val device = InputDevice.getDevice(deviceId)
val sensorManager = device?.sensorManager
val gyroscope = sensorManager?.getDefaultSensor(Sensor.TYPE_GYROSCOPE)
if (gyroscope != null) {
val gyroscopeListener = GameControllerGyroscopeListener(gyroscope)
sensorManager.registerListener(
gyroscopeListener, gyroscope,
SensorManager.SENSOR_DELAY_GAME
)
}
}
class GameControllerAccelerometerListener(private val listenerAccelerometer: Sensor?) :
SensorEventListener {
override fun onSensorChanged(event: SensorEvent) {
if (listenerAccelerometer != null) {
synchronized(listenerAccelerometer) {
if (event.sensor == listenerAccelerometer) {
Log.d("Accelerometer",
"onSensorChanged " + event.values[0] + ", "
+ event.values[1] + ", " + event.values[2])
}
}
}
}
override fun onAccuracyChanged(sensor: Sensor, accuracy: Int) {
}
}
class GameControllerGyroscopeListener(private val listenerGyroscope: Sensor?) :
SensorEventListener {
override fun onSensorChanged(event: SensorEvent) {
if (listenerGyroscope != null) {
synchronized(listenerGyroscope) {
if (event.sensor == listenerGyroscope) {
Log.d("Gyroscope",
"onSensorChanged " + event.values[0] + ", " +
event.values[1] + ", " + event.values[2])
}
}
}
}
override fun onAccuracyChanged(sensor: Sensor, accuracy: Int) {
}
}
इसके बारे में ज़्यादा जानकारी पाने के लिए,
मोशन सेंसर और
SensorEventListener
.
लाइटें
Android गेम कंट्रोलर पर हल्के रंग की सेटिंग से, नए डाइमेंशन को जोड़ा जाता है विज़ुअल एलिमेंट की मदद से, गेमप्ले में दिलचस्पी बढ़ाएं.
हल्के रंग की सुविधा, कंट्रोलर में पहले से मौजूद एलईडी लाइटों का इस्तेमाल करती है, ताकि स्क्रीन पर अलग-अलग रंग दिखाए जा सकते हैं, जो गेमिंग की अलग-अलग स्थितियों के हिसाब से डाइनैमिक तौर पर काम करते हैं. उदाहरण के लिए, किसी खिलाड़ी की सेहत खराब होने पर लाइटें लाल हो सकती हैं या किसी खास मिशन के पूरा होने पर, विज़ुअल फ़ीडबैक दें के हिसाब से, इन-गेम इवेंट के आधार पर तैयार किए जाते हैं. हल्के रंग की ये सेटिंग उपयोगकर्ता की दिलचस्पी को और बढ़ा देती हैं. गेम में रोमांच और आनंद को बढ़ाएं. साथ ही, खिलाड़ियों की दिलचस्पी बढ़ाने में मदद करें पूरी तरह से गेम की दुनिया का हिस्सा बनना चाहते हैं.
Android गेम कंट्रोलर में हल्के रंग की सुविधाएं वे सिर्फ़ सजावट के लिए इस्तेमाल किए जाते हैं. यह आपके घर के माहौल को सेट करने में अहम भूमिका निभाता है गेम और उपयोगकर्ता अनुभव को बेहतर बनाने के लिए किया जा सकता है.
fun changeControllerLightColor(deviceId: Int, color: Int) {
val device = InputDevice.getDevice(deviceId)
device?.let {
if (it.sources and InputDevice.SOURCE_JOYSTICK == InputDevice.SOURCE_JOYSTICK) {
val lightsManager = device.lightsManager
lightsManager?.let { manager ->
manager.lights.forEach { light ->
val stateBuilder = LightState.Builder()
stateBuilder.setColor(color)
val requestBuilder = LightsRequest.Builder()
requestBuilder.addLight(light, stateBuilder.build())
val lightsSession = lightsManager.openSession()
lightsSession.requestLights(requestBuilder.build())
}
}
}
}
}
वाइब्रेशन की सुविधा का इस्तेमाल करने के लिए, यह एक सुविधा और अनुमति सेट करती है.
<application ...>
...
<uses-feature android:name="android.hardware.gamepad" android:required="true"/>
<uses-permission android:name="android.permission.LIGHTS" />
...
</application>
इसके बारे में ज़्यादा जानकारी पाने के लिए,
LightsManager
और
ऐप्लिकेशन मेनिफ़ेस्ट.
टचपैड का नियंत्रक
कुछ गेम कंट्रोलर में ऐसा टचपैड होता है जिसका इस्तेमाल कई तरह के गेम कंट्रोलर के लिए किया जा सकता है इन-गेम कार्रवाइयां, जैसे कि गेम में एक से दूसरे मेन्यू में जाना या गेम के किरदारों को कंट्रोल करना ज़्यादा आसान लगा.
![गेम कंट्रोलर पर टचपैड.](https://developer.android.com/static/images/training/game-controller-touchpad.png?hl=hi)
इंटिग्रेट किए गए टचपैड वाले गेम कंट्रोलर, डिवाइस को सीधे तौर पर चालू करने की सुविधा देते हैं Android. टचपैड को छूने से ऑन-स्क्रीन माउस पॉइंटर जनरेट होता है, जिससे Google Analytics का इस्तेमाल करता है.