Jakaminen, ystävät ja kutsut PlayDrop-peleissä
Jaa peli kuvan tai leikkeen kera, lue käynnistysdata, valitse ystäviä, lähetä kutsu- ja haastekortteja PlayDrop Chatissa ja suosittele muita pelejä.
PlayDrop hoitaa jakovalikon, ystävälistan ja chatin; pelisi pyytää niitä oikealla hetkellä. Pelaajat tuovat ystävänsä, ja ystävät päätyvät suoraan peliisi.
Jaa peli
Kutsu sdk.host.share() napautuksesta tai klikkauksesta. Se jakaa pelin julkisen sivun valinnaisen tekstin, kuvan tai lyhyen videon sekä valinnaisen käynnistysdatan kera.
shareButton.addEventListener("click", async () => {
try {
await sdk.host.share({ text: `I reached level ${level} in Moon Jump`, image: scoreCardBlob, payload: "level-7" });
} catch (error) {
console.warn("Share failed", error);
}
});image: GIF-, JPEG-, PNG- tai WebP-muotoinen Blob, enintään 8 MiB. Isännät, jotka eivät voi liittää kuvia, jakavat pelkän linkin.video: kuvan sijaan MP4-muotoinen Blob, enintään 15 sekuntia ja 20 000 000 tavua. H.264/AAC 1080p-tarkkuudella kuvasuhteessa 16:9, 9:16 tai 1:1 toimii parhaiten. Isännät ilman videotukea hylkäävät jakamisen virheellähost_share_video_unsupportedsen sijaan, että jakaisivat pelkän linkin.- Valmistele Blob ennen napautusta; jos luot sen vasta napautuksen jälkeen, selaimen lupa jakaa voi raueta.
- Et voi jakaa omaa URL-osoitetta tai muita tiedostoja. Linkki on aina pelin sivu.
Kuvavirheet ovat invalid_host_share_image, host_share_image_type ja host_share_image_too_large.
Lue käynnistysdata
payload on enintään 256 base64url-merkkiä. Kun pelaaja avaa jaetun linkin, peli käynnistyy niin, että sdk.host.launchPayload sisältää tämän datan; muuten arvo on null. Käsittele sitä epäluotettavana syötteenä: tarkista se ja varmista palvelimellasi, että pelaaja saa liittyä sen nimeämään huoneeseen. Älä koskaan laita siihen tunnistetietoja.
Valitse ystäviä ja lähetä pelikortteja
sdk.social.selectFriends({ max }) avaa PlayDropin ystävävalitsimen (1–10, oletus 1) ja palauttaa vain pelaajan valitsemat ystävät tai [], jos pelaaja peruuttaa. Lähetä sitten kortti, joka näkyy PlayDrop Chatissa:
const [friend] = await sdk.social.selectFriends({ max: 1 });
if (friend) {
await sdk.social.sendMessage({
recipientUserId: friend.id,
type: "challenge",
title: "Beat my time: 42.3 s",
subtitle: "Moon Jump, level 7",
payload: "level-7",
clientMessageId: `challenge-${runId}-${friend.id}`,
});
}typeoninvite,request,gift,challengetaiturn.titleon enintään 80 merkkiä jasubtitleenintään 160.expiresInSecondson 60 sekunnista 30 päivään (oletus).clientMessageIdtekee uudelleenyrityksestä turvallisen: sen uudelleenkäyttö palauttaa alkuperäisen viestin.- Voit lähettää viestejä pelaajan valitsemille ystäville, tätä peliä pelaaville ystäville ja pelaajille, joiden kanssa hän jo vaihtaa peliviestejä. Ottelunhaussa tavatuille tuntemattomille ei voi lähettää viestejä.
Lue saapuvat kortit kutsulla getMessages({ limit }) vanhimmasta alkaen ja merkitse kukin käsitellyksi kutsulla consumeMessage(message.id). Lähettäjä on message.from.id.
const page = await sdk.social.getMessages({ limit: 20 });
for (const message of page.messages) {
await applyCard(message.type, message.from.id, message.payload);
await sdk.social.consumeMessage(message.id);
}Jatka arvolla cursor: page.nextCursor, kunnes se on null.
Tätä peliä pelaavat ystävät
sdk.social.listGameFriends() palauttaa ystävät, joilla on tuore istunto tässä pelissä: hyvä luettelo ”pelaa yhdessä” -painikkeille. Se ei paljasta koko ystävälistaa eikä paikallaolotietoja. openProfile(userId) avaa pelaajan profiilin, ja openChat({ recipientUserId, draftMessage }) avaa Chatin muokattavalla luonnoksella, jonka pelaaja lähettää itse.
Uudella pelaajalla, joka saapui ystävän kautta, voi olla asetettuna sdk.host.launchFriend. Tarjoa mahdollisuutta pelata tämän ystävän kanssa ja vahvista kutsulla selectFriends({ max: 1 }); älä koskaan käynnistä mitään automaattisesti.
Suosittele muita pelejä
Luonnollisessa tauossa, kuten pelin päättyessä, sdk.host.showGames({ games: ["@creator/name"] }) näyttää PlayDrop-kortit yhdestä kolmeen muusta julkisesta pelistä ja keskeyttää oman pelisi. Se palauttaa arvon played (PlayDrop vaihtaa silloin peliä) tai dismissed. sdk.host.preloadGame(ref) vihjaa pelistä, jonka pelaaja saattaa avata seuraavaksi.
Vaatimukset
Jakaminen ja sosiaalisten toimintojen SDK-kutsut vaativat paketin, joka käyttää SDK:ta. Ystäväominaisuudet vaativat kirjautuneen pelaajan. Isännän omat ikkunat keskeyttävät pelin; huolehdi tauosta ja jatkamisesta.