घटनाएँ

पौज़ और गेम फिर से शुरू की घटनाएं

game_api_pause और game_api_resume इवेंट्स के माध्यम से, प्लेटफॉर्म गेम को सूचित करता है कि गेमिंग प्रक्रिया को पौज़ पर सेट करना है या फिर से शुरू करना है। ये इवेंट्स हमारे प्लेटफ़ॉर्म के साथ इंटीग्रेशन की प्रक्रिया को सरल बनाते हैं और मॉडरेशन की आवश्यकताओं (खंड 1.3 और 4.7) का पालन करने में मदद करते हैं।

जो गेम्स पौज़ और गेम फिर से शुरू की घटनाओं का समर्थन करते हैं, वे बाहरी प्लेटफार्मों पर अतिरिक्त वितरित किए जा सकते हैं।

game_api_pause और game_api_resume इवेंट्स

ये इवेंट्स आपको निम्नलिखित को ट्रैक करने में मदद करेंगे:

  • पूर्ण स्क्रीन या rewarded-विज्ञापनों का प्रदर्शन और बंद करना;
  • खरीद विंडो को खोलना और बंद करना;
  • ब्राउज़र टैब्स को स्विच करना;
  • ब्राउज़र विंडो को मिनिमाइज़ और मैक्सिमाइज़ करना।

ये गेमप्ले मार्किंग मेथड्स के साथ सामंजस्य रखते हैं। game_api_pause इवेंट के ट्रिगर होने पर, GameplayAPI.stop() मेथड कॉल किया जाता है, और game_api_resume इवेंट के ट्रिगर होने पर, GameplayAPI.start() मेथड कॉल किया जाता है।

यदि गेम पहले GameplayAPI.stop() मेथड (उदाहरण के लिए, जब खिलाड़ी ने मेनू खोला हो) का उपयोग करके रोका गया था, और फिर game_api_pause इवेंट होती है, तो बाद में game_api_resume इवेंट होने पर GameplayAPI.start() मेथड कॉल नहीं किया जाएगा। यह गेमप्ले मार्किंग लॉजिक को बिना नुकसान के वर्तमान स्थिति को संरक्षित करने की अनुमति देता है।

यांडेक्स गेम्स SDK के on() और off() मेथड्स का उपयोग करके संबंधित रूप से घटनाओं की सदस्यता लेने और उनसे च्युत करने के लिए करें।

उदाहरण

const pauseCallback = () => {
    pauseGame(); // आपका फ़ंक्शन जो गेम लूप और संगीत को रोकता है।
    console.log('GAME PAUSED');
};

ysdk.on('game_api_pause', pauseCallback); // 'game_api_pause' इवेंट्स की सदस्यता लेना।
ysdk.off('game_api_pause', pauseCallback); // 'game_api_pause' इवेंट्स से च्युती।
const resumeCallback = () => {
    resumeGame(); // आपका फ़ंक्शन जो गेम लूप और संगीत को पुनः आरंभ करता है।
    console.log('GAME RESUMED');
};

ysdk.on('game_api_resume', resumeCallback ); // 'game_api_resume' इवेंट्स की सदस्यता लेना।
ysdk.off('game_api_resume', resumeCallback ); // 'game_api_resume' इवेंट्स से च्युती।

 

गेम शुरू होने पर पूर्ण स्क्रीन विज्ञापन

चेतावनी

प्लेटफ़ॉर्म स्वचालित रूप से सभी गेम्स के शुरू होने पर पूर्ण स्क्रीन विज्ञापन दिखाता है।

विज्ञापन ब्लॉक्स के विपरीत, जिन्हें गेम्स ysdk.adv.showFullscreenAdv() के माध्यम से कॉल करते हैं, स्टार्टअप विज्ञापन में कोई सीधी कॉलबैक फंक्शन नहीं होती। इसे सही तरीके से हैंडल करने के लिए, game_api_pause और game_api_resume इवेंट्स को ट्रैक करें:

  1. game_api_pause मिलने पर गेम का साउंड बंद करें और गेमप्ले को पॉज़ करें।
  2. game_api_resume इवेंट का इंतज़ार करें और गेम को रिज्यूम करें।

यह उन गेम्स के लिए विशेष रूप से महत्वपूर्ण है जहां साउंड और गेमप्ले तुरंत शुरू होते हैं।

स्टार्टअप विज्ञापन को हैंडल करने का उदाहरण

let gameStarted = false;
let isPaused = false;

// गेम इनिशियलाइज़ करने की फंक्शन।
function initGame() {
    // पॉज़ और रिज्यूम इवेंट्स के लिए सब्सक्राइब करें।
    ysdk.on('game_api_pause', handlePause);
    ysdk.on('game_api_resume', handleResume);

    // चेक करें कि क्या हम पॉज़ स्टेट में नहीं हैं।
    // यदि नहीं, तो गेम शुरू करने से पहले रिज्यूम का इंतज़ार करें।
    if (!isPaused) {
        startGame();
    }
}

function handlePause() {
    isPaused = true;
    // साउंड और गेमप्ले को रोकें।
    console.log('GAME PAUSED - waiting for resume');
}

function handleResume() {
    isPaused = false;

    // यदि गेम अभी तक शुरू नहीं हुआ है, तो इसे शुरू करें।
    if (!gameStarted) {
        startGame();
    } else {
        // साउंड और गेमप्ले को रिज्यूम करें।
    }

    console.log('GAME RESUMED');
}

function startGame() {
    gameStarted = true;

    // साउंड इनिशियलाइज़ेशन।
    // गेम लूप शुरू करें।
    console.log('GAME STARTED');
}

// गेम इनिशियलाइज़ेशन शुरू करें।
initGame();

अन्य इवेंट्स

आप उपयोगकर्ता के एप्लिकेशन के साथ इंटरैक्ट करने पर होने वाले अन्य इवेंट्स को भी ट्रैक कर सकते हैं।

enum ESdkEventName {
    EXIT = 'EXIT',
    HISTORY_BACK = 'HISTORY_BACK',
    ACCOUNT_SELECTION_DIALOG_OPENED = 'ACCOUNT_SELECTION_DIALOG_OPENED',
    ACCOUNT_SELECTION_DIALOG_CLOSED = 'ACCOUNT_SELECTION_DIALOG_CLOSED',
}

ysdk = {
    EVENTS: {
        EXIT: ESdkEventName.EXIT,
        HISTORY_BACK: ESdkEventName.HISTORY_BACK,
        ACCOUNT_SELECTION_DIALOG_OPENED: ESdkEventName.ACCOUNT_SELECTION_DIALOG_OPENED,
        ACCOUNT_SELECTION_DIALOG_CLOSED: ESdkEventName.ACCOUNT_SELECTION_DIALOG_CLOSED,
    },

    dispatchEvent(eventName: ESdkEventName, detail?: object): Promise<unknown> {},

    on(eventName: ESdkEventName, listener: Function): () => void {}
};

HISTORY_BACK ईवेंट

चेतावनी

यह घटना केवल तब उपलब्ध है जब खेल टेलीविजन पर चलाया जा रहा हो।

वापस जाएँ बटन पर क्लिक को ट्रैक करने के लिए, निम्नलिखित विधि का उपयोग करें:

ysdk.on(ysdk.EVENTS.HISTORY_BACK, () => {
    // उपयोगकर्ता को विकल्पों के साथ कस्टम गेम डायलॉग दिखाना
    // गेम से बाहर जाने की पुष्टि करने के लिए, आंतरिक सेटिंग, स्टोर, और इत्यादि में जाना
});

ईवेंट से बाहर जाएँ

यदि उपयोगकर्ता उस कस्टम डायलॉग में गेम से बाहर जाने की पुष्टि करता है जो वापस जाएँ पर क्लिक करने के बाद खुलता है, तो गेम द्वारा एक एक्ज़िट ईवेंट भेजा जाना चाहिए। इसे करने के लिए, निम्नलिखित विधि का उपयोग करें:

ysdk.dispatchEvent(ysdk.EVENTS.EXIT);

गेम अकाउंट चयन डायलॉग

प्लेटफ़ॉर्म ऑथेंटिकेटेड और नॉन-ऑथेंटिकेटेड दोनों प्रकार के प्लेयर्स के गेम प्रोग्रेस को सेव करता है। उपयोगकर्ता पहले बिना लॉगिन के खेल सकता है, और बाद में अकाउंट में लॉगिन कर सकता है। इस स्थिति में उसके पास दो अलग-अलग प्रोग्रेस होंगे: एक लॉगिन वाला, दूसरा बिना लॉगिन वाला। प्लेटफ़ॉर्म एक डायलॉग बॉक्स दिखाएगा जहां उपयोगकर्ता गेम की अवधि, आखिरी लॉगिन की तारीख और अन्य पैरामीटर्स के आधार पर सेव डेटा की तुलना कर सकता है और चुन सकता है कि कौन सा प्रोग्रेस इस्तेमाल करना है।

यदि आप प्लेयर डेटा को बार-बार सिंक करते हैं या गेम प्रोग्रेस को अपने सर्वर पर स्टोर करते हैं, तो डायलॉग बॉक्स में अकाउंट चयन के बाद प्रोग्रेस में बदलाव को ट्रैक करें।

इसके लिए SDK में दो इवेंट्स हैं:

  • ACCOUNT_SELECTION_DIALOG_OPENED — डायलॉग का खुलना।
  • ACCOUNT_SELECTION_DIALOG_CLOSED — डायलॉग का बंद होना।

डायलॉग खुलने पर आप प्लेयर डेटा की नियमित सिंक्रनाइज़ेशन को रोक सकते हैं। डायलॉग बंद होने पर — मेनू में वापस जा सकते हैं या गेम को रीस्टार्ट कर सकते हैं और प्लेयर ऑब्जेक्ट को फिर से रिक्वेस्ट कर सकते हैं।

उदाहरण

// अकाउंट चयन डायलॉग के खुलने के इवेंट के लिए सब्सक्राइब करें।
ysdk.on(ysdk.EVENTS.ACCOUNT_SELECTION_DIALOG_OPENED, () => {
    // प्लेयर डेटा की सिंक्रनाइज़ेशन को रोकें।
});

// अकाउंट चयन डायलॉग के बंद होने के इवेंट के लिए सब्सक्राइब करें।
ysdk.on(ysdk.EVENTS.ACCOUNT_SELECTION_DIALOG_CLOSED, async () => {
    // गेम के मेनू में वापस जाएं या पेज को रीलोड करें।
    // ...

    // प्लेयर डेटा को फिर से रिक्वेस्ट करें।
    const player = await ysdk.getPlayer();
    const data = await player.getData();
});

नोट

टीम सपोर्ट के कर्मचारी यंडेक्स गेम्स प्लेटफॉर्म पर तैयार खेल को डालने में मदद करते हैं। डेवलपमेंट और परीक्षण के संबंध में आवेदनिक प्रश्नों का उत्तर अन्य डेवलपर्स देंगे Discord चैनल

यदि आप किसी समस्या का सामना कर रहे हैं या Yandex Games SDK के इस्तेमाल के बारे में आपका कोई प्रश्न है, तो कृपया समर्थन से संपर्क करें:

चैट करने के लिए लिखें