Skip to content

เกม

โมดูลเกมให้บริการฟังก์ชันต่างๆ ที่เกี่ยวข้องกับเกม หลังจากอ่านส่วนที่เกี่ยวข้องกับเครื่องมือสร้างเกมของคุณบนหน้า คำแนะนำ JOGOS_SDK คุณสามารถใช้ฟังก์ชันที่เกี่ยวข้องได้ตามขั้นตอนต่อไปนี้:

javascript
window.JOGOS_SDK.game;

หากคุณจำเป็นต้องดำเนินการตั้งค่าต่างๆ เช่น การปรับภาษาโลคัลไลเซชัน การปรับอุปกรณ์ และการปรับเทียบเวลา ในระหว่างขั้นตอนการเริ่มต้นใช้งาน คุณสามารถข้ามไปยังหน้า การเริ่มต้นใช้งาน (SysInfo) ที่เกี่ยวข้อง เพื่อดูคำนิยามพารามิเตอร์และวิธีการตั้งค่าโดยละเอียด

หยุด/ดำเนินการต่อเกม

เมื่อเกมถูกหยุดชะงัก (เช่น จบระดับ, หยุดเกม ฯลฯ) คุณต้องเรียกใช้เมธอดเพื่อแจ้งให้เราทราบว่าเกมถูกหยุด อย่าลืมเรียกใช้เมธอดเพื่อแจ้งให้เราทราบว่าเกมถูกดำเนินการต่อเมื่อมีการฟื้นฟู, กู้ชีวิต, เข้าสู่ระดับถัดไป ฯลฯ SDK จะจัดการกับการหยุดและดำเนินการต่อเองในขณะเล่นโฆษณา อย่าต้องเรียกซ้ำ

javascript
// แจ้งให้เราทราบว่าเกมถูกหยุดชะงัก
await window.JOGOS_SDK.game.pause();
// แจ้งให้เราทราบว่าเกมถูกดำเนินการต่อ
await window.JOGOS_SDK.game.continuePlay();

เริ่ม/สิ้นสุดการโหลดเกม

เมื่อเกมของคุณเริ่มโหลด คุณต้องเรียกใช้เมธอดเพื่อแจ้งให้เราทราบว่าเกมเริ่มโหลด หลังจากการโหลดเสร็จสิ้น คุณต้องเรียกใช้เมธอดเพื่อแจ้งให้เราทราบว่าเกมโหลดเสร็จสิ้น

javascript
// แจ้งให้เราทราบว่าเกมเริ่มโหลด
await window.JOGOS_SDK.game.loadingStart();
// แจ้งให้เราทราบว่าเกมโหลดเสร็จสิ้น
await window.JOGOS_SDK.game.loadingEnd();

เมื่อเกมเริ่มโหลด คุณต้องเรียกใช้เมธอดเพื่อแจ้งให้เราทราบว่าเกมเริ่มโหลด หลังจากการโหลดเสร็จสิ้น คุณต้องเรียกใช้เมธอดเพื่อแจ้งให้เราทราบว่าเกมโหลดเสร็จสิ้น

javascript
// แจ้งให้เราทราบว่าเกมถูกหยุดชะงัก
await window.JOGOS_SDK.game.pause();
// แจ้งให้เราทราบว่าเกมถูกดำเนินการต่อ
await window.JOGOS_SDK.game.continuePlay();

Happy Time

คุณสามารถเรียกใช้เมธอดนี้เมื่อผู้เล่นบรรลุผลสำเร็จบางอย่าง (ชนะบอส, เป็นที่มาที่สูง ฯลฯ) เมื่อเรียกใช้เมธอดนี้สำเร็จ จะทำให้เว็บไซต์ทำการแสดงการเฉลิมฉลอง (เช่น ปล่อยกระดาษสี) อย่าเรียกใช้เมธอดนี้เมื่อจบระดับหรือได้รับรางวัล

javascript
// เปิดใช้งานโหมด Happy Time ในเกม
await window.JOGOS_SDK.game.happytime();

ฟังก์ชันเพื่อนและแชท

เราได้รวมโมดูลฟังก์ชันสังคมมาตรฐาน ซึ่งครอบคลุมการจัดการความสัมพันธ์เพื่อนและบริการแชทแบบเรียลไทม์ หากเกมของคุณรองรับการเล่นแบบมีปฏิสัมพันธ์หลายคน คุณสามารถเชื่อมต่อได้อย่างรวดเร็วผ่าน API ขนาดเบา เพื่อทำให้เกิด: การซิงโครไนซ์รายชื่อเพื่อนบนคลาวด์ การเชิญทีมด้วยคลิกเดียว การสนทนาส่วนตัว และฉากสังคมหลักอื่นๆ ช่วยให้นักพัฒนาสามารถสร้างระบบนิเวศสังคมที่ดื่มด่ำภายในเกมได้อย่างมีประสิทธิภาพด้วยต้นทุนการพัฒนาที่ต่ำมาก

  • เมื่อใช้ นักพัฒนาจำเป็นต้องส่ง UserId ของผู้เล่นที่สอดคล้องกันทางฝั่งแพลตฟอร์มเป็นพารามิเตอร์ที่ส่ง

การตรวจสอบความสัมพันธ์เพื่อน

ตรวจสอบว่าผู้เล่นที่ระบุเป็นเพื่อนของผู้ใช้ปัจจุบันหรือไม่

javascript
/**
 * ตรวจสอบว่าผู้เล่นที่ระบุเป็นเพื่อนของฉันหรือไม่
 * @param {Array<number>} userIds ชุด ID ผู้เล่น
 * @returns {Promise<Object>} { [userId: number]: boolean } ออบเจ็กต์คู่คีย์-ค่า
 */
window.JOGOS_SDK.game.isMyFriends = async function(userIds) {
    // การดำเนินการภายใน
}

คำอธิบายตรรกะการโต้ตอบกับเพื่อน

นักพัฒนาจำเป็นต้องดำเนินการตรรกะการแสดงปุ่มโดยอิงตามความสัมพันธ์เพื่อนด้วยตนเอง:

  1. การตัดสินใจสถานะปุ่ม: ใช้อินเทอร์เฟซ isMyFriends เพื่อตรวจสอบว่าผู้เล่นที่ระบุเป็นเพื่อนหรือไม่
  2. ตรรกะการแสดงปุ่ม:
    • หากเป็นเพื่อน: แสดงปุ่ม "Conversation" หลังจากคลิกจะเรียกใช้ openChatDialog เพื่อเริ่มการแชท
    • หากไม่ใช่เพื่อน: แสดงปุ่ม "Add Friend" หลังจากคลิกจะเรียกใช้ sendFriendRequest เพื่อส่งคำขอเป็นเพื่อน
  3. การดำเนินการปุ่ม: รูปแบบ UI ตำแหน่ง และเอฟเฟกต์การโต้ตอบของปุ่มทั้งหมดดำเนินการโดยนักพัฒนาเกมเอง

ตัวอย่างโค้ด

javascript
// ตัวอย่างการดำเนินการปุ่มโต้ตอบเพื่อน
async function setupFriendButton(userId, buttonElement) {
    try {
        // 1. ตรวจสอบความสัมพันธ์เพื่อน
        const friendStatus = await window.JOGOS_SDK.game.isMyFriends([userId]);
        const isFriend = friendStatus[userId];
        
        // 2. ตั้งค่าปุ่มตามความสัมพันธ์เพื่อน
        if (isFriend) {
            // แสดงปุ่มแชท
            buttonElement.textContent = "Conversation";
            buttonElement.onclick = async () => {
                const success = await window.JOGOS_SDK.game.openChatDialog(userId);
                if (!success) {
                    alert("ไม่สามารถเปิดหน้าต่างแชทได้ โปรดตรวจสอบให้แน่ใจว่าอยู่ในสภาพแวดล้อมแพลตฟอร์มทางการ");
                }
            };
        } else {
            // แสดงปุ่มเพิ่มเพื่อน
            buttonElement.textContent = "Add Friend";
            buttonElement.onclick = async () => {
                const success = await window.JOGOS_SDK.game.sendFriendRequest(userId);
                if (success) {
                    alert("ส่งคำขอเป็นเพื่อนแล้ว");
                } else {
                    alert("ส่งคำขอเป็นเพื่อนล้มเหลว");
                }
            };
        }
        
        // 3. เพิ่มตรรกะป้องกันการคลิกบ่อยเกินไป
        let lastClickTime = 0;
        const originalClick = buttonElement.onclick;
        buttonElement.onclick = function() {
            const now = Date.now();
            if (now - lastClickTime < 3000) {
                console.log("คลิกบ่อยเกินไป โปรดลองอีกครั้งในภายหลัง");
                return;
            }
            lastClickTime = now;
            originalClick.call(this);
        };
        
    } catch (error) {
        console.error("การตั้งค่าปุ่มเพื่อนล้มเหลว:", error);
    }
}

เพิ่มเพื่อน

ส่งคำขอเป็นเพื่อนไปยังผู้เล่นที่ระบุ

javascript
/**
 * ส่งคำขอเป็นเพื่อนไปยังผู้เล่นที่ระบุ
 * @param {number} userId ID ผู้เล่นเป้าหมาย
 * @returns {Promise<boolean>} ส่งสำเร็จหรือไม่
 */
window.JOGOS_SDK.game.sendFriendRequest = async function(userId) {
    // การดำเนินการภายใน
}

เริ่มการแชท

เปิดหน้าต่างแชทกับเพื่อนที่ระบุ

javascript
/**
 * เปิดหน้าต่างแชทกับผู้เล่นที่ระบุ
 * @param {number} userId ID ผู้เล่นเป้าหมาย
 * @returns {Promise<boolean>} เปิดสำเร็จหรือไม่
 */
window.JOGOS_SDK.game.openChatDialog = async function(userId) {
    // การดำเนินการภายใน
}

การจัดการขอบเขต:

  • เมื่อฝังในแพลตฟอร์มที่ไม่เป็นทางการ จะส่งคืนล้มเหลวและแสดงคำเตือน: "ฟังก์ชันแชทกับเพื่อนมีให้บริการเฉพาะบนแพลตฟอร์มทางการเท่านั้น"
  • ปุ่มไม่สามารถคลิกซ้ำได้ภายใน 3 วินาทีหลังจากคลิก
ข้อควรระวังสำคัญ

ฟังก์ชันแชทในเกมของนักพัฒนาเอง: หากเกมนี้ (เกมออนไลน์) มีฟังก์ชันแชทของตัวเอง เราขอให้นักพัฒนาเพิ่มตัวกรองคำหยาบและปิดการใช้งานแชทตามการตั้งค่าเกม หากมีข้อร้องเรียน เราจะขอให้คุณปิดการใช้งานแชท

อินเทอร์เฟซการเริ่มต้นจะส่งคืนพารามิเตอร์ฟิลด์คำเชิญ

  • อินเทอร์เฟซการเริ่มต้นเกมได้เพิ่มพารามิเตอร์ที่กำหนดเองสำหรับการเชิญเข้าร่วมเกม เช่น ID ห้อง รหัสเชิญ เป็นต้น นักพัฒนาสามารถนำพารามิเตอร์เหล่านี้ติดไปเมื่อแชร์ลิงก์เชิญ เมื่อผู้เล่นที่ได้รับเชิญเข้าสู่เกมผ่านลิงก์ SDK จะส่งผ่านพารามิเตอร์ให้กับนักพัฒนาเพื่อดึงผู้เล่นเข้าห้องที่สอดคล้องกัน
javascript
// ส่งผ่านพารามิเตอร์ห้องเมื่อเริ่มต้นเกม (ตัวอย่าง)
const gameConfig = {
    inviteArgs: 'ABC123',       // ฟิลด์ที่กำหนดเอง (เช่น รหัสเชิญ/ID ห้อง)
    // การตั้งค่าเกมอื่นๆ ...
};

// ส่งผ่านพารามิเตอร์เมื่อเริ่มต้น SDK
window.JOGOS_SDK.init({
    gameId: 'your_game_id',
    customParams: JSON.stringify(gameConfig)
});

เปิดหน้าต่างเชิญเพื่อน

  • เมื่อผู้ใช้อยู่ในตำแหน่งที่สามารถเข้าร่วมเกมใหม่ภายในเกมได้ ฟังก์ชันนี้สนับสนุนให้คุณวางปุ่ม "แชร์คำเชิญ" ในฉากเกม:
  • คลิกปุ่มเพื่อเปิดป็อปอัพที่มีลิงก์เชิญ สนับสนุนการเลือกเพื่อนเพื่อส่งคำเชิญ alt text
  • ลิงก์เชิญจะนำพารามิเตอร์ที่กำหนดเอง (เช่น ID ห้อง/รหัสเชิญ เป็นต้น) ติดไปด้วย เมื่อผู้เล่นที่ได้รับเชิญคลิกลิงก์เพื่อเข้าสู่เกม นักพัฒนาสามารถแยกวิเคราะห์พารามิเตอร์และดึงผู้เล่นเข้าห้องที่สอดคล้องกัน
  • คลิกปุ่ม "Invite friend" ในฉากเกมเพื่อเปิดแถบรายชื่อเพื่อนด้านข้าง ส่งข้อความเชิญให้เพื่อน สนับสนุนการเข้าร่วมเกมผ่านลิงก์หรือการเชิญโดยตรง
javascript
/**
 * เปิดหน้าต่างคำเชิญ
 * @param {Object} inviteArgs ออบเจ็กต์พารามิเตอร์คำเชิญ
 * @param {string} inviteArgs.inviteArgs พารามิเตอร์คำเชิญที่กำหนดเอง (ต้องระบุ เช่น ID ห้องหรือรหัสเชิญ)
 * @param {string} [inviteArgs.customData] ข้อมูลที่กำหนดเอง (จะถูกส่งผ่านไปยังผู้ที่ได้รับเชิญ)
 * @param {number} [inviteArgs.expireTime] ไทม์สแตมป์เวลาหมดอายุของลิงก์เชิญ (มิลลิวินาที)
 */
window.JOGOS_SDK.game.openInviteDialog = function(inviteArgs) {
    // การตรวจสอบพารามิเตอร์
    if (!inviteArgs || !inviteArgs.inviteArgs) {
        throw new Error('Missing required parameter: inviteArgs');
    }
    
    // การดำเนินการภายใน:
    // 1. สร้างลิงก์เชิญพร้อมพารามิเตอร์
    // 2. เปิดป็อปอัพคำเชิญ (มีรายชื่อเพื่อนและตัวเลือกการแชร์)
    // 3. จัดการการเรียกกลับผลลัพธ์คำเชิญ
};