PlayDrop logoPlayDrop Studio
SkapaSpelutbyteTjänaLär digConnectorsAssetsCommunitySupport
PlayDrop logoPlayDrop Studio
SkapaSpelutbyteTjänaLär digConnectorsAssetsCommunitySupport
Logga in
Inläsning, paus och ljud
Dokumentation

Börja här

ÖversiktDitt första spelPlayDrop-spelFAQ

Skapa med Cloud

Skapa med CloudPlaner och genereringar

Anslut din AI-app

Alla connectorsClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Publicera och dela

Publicera från din AI-appEnkla HTML-spelPaketering och .playPublicera och importeraSpelfilerSynlighet och räckviddBilder och video för spelsidanGenrer och taggarLokaliseringInstant-spel

Spelupplevelse

Inläsning, paus och ljudHelskärm och säkra områdenMolnsparningarLokala grupper och handkontroller

Spela tillsammans

Delning, vänner och inbjudningarTopplistorPrestationerOnlinegrupper och röstSpelservrar i realtid

Tjäna

IntäkterKrediter och belöningar

Assets

SpelassetsAI-generering av assetsEgna format och skapelser

Referens

Klient-SDKServer-SDKcatalogue.jsonFel och åtgärderFelsökning
DokumentationInläsning, paus och ljud
Spelupplevelse

Spelets livscykel på PlayDrop: inläsning, ready, paus och ljud

Initiera PlayDrop-SDK:t, signalera ready vid den första spelbara bildrutan, pausa och återuppta snyggt, följ ljudpolicyn och förladda filer för offlinespel.

PlayDrop visar en egen inläsningsskärm, pausmeny, ljudavstängning och andra fönster runt ditt spel. Livscykel-API:et håller spelet i takt med dem: det stannar medan PlayDrop pausar det och spelar bara ljud när PlayDrops ljudpolicy tillåter det.

Initiera och signalera sedan ready

Läs in SDK:t, läs det första tillståndet, prenumerera på ändringar, förbered den första skärmen och anropa först då ready(). PlayDrop visar sin inläsningsskärm fram till dess.

html
<script src="https://assets.playdrop.ai/sdk/playdrop.js"></script>
<script type="module">
  const sdk = await playdrop.init();
  let paused = sdk.host.isPaused;
  setAudio(sdk.host.audioAllowed);
  sdk.host.onAudioAllowedChange(setAudio);
  sdk.host.onPause(() => { paused = true; });
  sdk.host.onResume(() => { paused = false; last = performance.now(); });

  try {
    await loadFirstLevel();
  } catch (error) {
    sdk.host.error("Could not load the first level");
    throw error;
  }
  drawFirstFrame();
  sdk.host.ready();
</script>

Anropa ready() när den planerade första skärmen syns och inmatningen fungerar, inte innan dina assets har lästs in. sdk.host.error(message) talar om för PlayDrop att spelet inte kan starta. setLoadingState och firstFrameReady är äldre namn för samma steg; använd ready().

Faser: förhandsvisning, spel och editor

sdk.host.phase är preview, play eller editor, och onPhaseChange rapporterar byten. Förhandsvisningar och inspelningar visar spelet utan en riktig session: skriv aldrig sparningar, poäng, prestationer eller köp utanför play. sdk.host.mode är normalt play och dev i den lokala Dev-ramen.

Pausa och återuppta

onPause(reason) och onResume(reason) utlöses när spelaren öppnar pausmenyn, döljer fliken, loggar in eller köper något, eller när en annons eller ett PlayDrop-fönster täcker spelet. reason är någon av tab_hidden, auth_prompt, purchase_flow, host_overlay, detail_hidden, route_change eller native_background; sdk.host.isPaused är det aktuella tillståndet.

Stoppa simulering och timers medan spelet är pausat. När det återupptas nollställer du bildruteklockan så att spelet inte hoppar framåt:

js
let last = performance.now();
function frame(now) {
  const dt = paused ? 0 : Math.min((now - last) / 1000, 0.05);
  last = now;
  if (!paused) update(dt);
  render();
  requestAnimationFrame(frame);
}
requestAnimationFrame(frame);

Escape och handkontrollens Menu-knapp hör till PlayDrops pausmeny; bind dem inte i ditt spel. I ett nätverksspel håller du rumsanslutningen vid liv under pausen: att en spelare pausar får inte stoppa de andra.

Ljud

Läs sdk.host.audioAllowed en gång efter init() och följ sedan onAudioAllowedChange. Värdet kombinerar spelarens ljudavstängning, fasen och pausen, och förblir true under en paus med dold flik så att musiken kan behålla sin position. onAudioPolicyChange rapporterar { enabled, reason, volume } när du också behöver orsaken eller värdens volym.

js
const audio = new AudioContext();
function setAudio(allowed) {
  (allowed ? audio.resume() : audio.suspend()).catch(() => {});
}

Ljudet är avstängt tills värden tillåter det, och webbläsare kräver fortfarande en spelarhandling innan ljud spelas. Behåll en eventuell volyminställning i spelet som en extra begränsning; värdens ljudavstängning vinner alltid. Fånga avvisade promise-objekt från play() och resume().

Förladda och spela offline i apparna

De inbyggda apparna kan ladda ner ett spels filer innan det startar och behålla dem för offlinespel. Deklarera dem i catalogue.json:

json
{
  "prefetch": { "required": ["game.js", "assets/level-1.png"], "optional": ["assets/music.mp3"] },
  "offlineSupported": true
}

Startsidan ingår alltid. Filer i required hämtas före spelstart och filer i optional efteråt. offlineSupported: true låter apparna erbjuda spelet offline när dess obligatoriska filer har sparats. Ogiltiga värden ignoreras och stoppar aldrig en uppladdning. Webbplatsen läser in spel som vanligt. För Instant-spel utgör de obligatoriska filerna startstorleken.

På värdar som anger stöd för enhetsdata stannar sparningar, poäng och prestationer som görs offline på enheten och synkroniseras när den är online; topplistor offline visar bara spelarens eget rekord. I en webbläsare finns ingen offlinekö, så hantera en misslyckad sparning. Allt som spelet läser in från internet kräver fortfarande en anslutning.

Haptik

I de inbyggda apparna ger sdk.haptics.selection(), impact("light" | "medium" | "heavy") och notification("success" | "warning" | "error") kort återkoppling; sdk.haptics.supported talar om ifall värden klarar det. De gör ingenting på webben och påverkas inte av ljudavstängningen.

Relaterade guider

  • Helskärm och säkra områdenLåt ett PlayDrop-spel fylla skärmen och håll HUD:en inom CSS-säkra områden och fri från värdens kontroller med SDK:ts uppmätta reservedCorners.
  • MolnsparningarSpara och läs in spelarens framsteg med sdk.me.appData och updateAppData, för gäster och inloggade, med regler för skrivningar, förhandsvisningar och offline.
  • Instant-spelDet här gör ett PlayDrop-spel till Instant: stående format, gäståtkomst, högst 10 MiB startfiler och start på två sekunder, och skillnaden mot vanliga spel.
  • Klient-SDKReferens för PlayDrops webbläsar-SDK: livscykel, identitet och sparningar, handkontroller, socialt, flerspelarläge, butik, annonser, topplistor, assets och AI.
FöregåendeInstant-spel och vanliga spel på PlayDropNästaHelskärm, säkra områden och HUD-hörn för PlayDrop-spel
Visa Markdown
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

På den här sidan

Initiera och signalera sedan readyFaser: förhandsvisning, spel och editorPausa och återupptaLjudFörladda och spela offline i apparnaHaptik
Visa Markdown