PlayDrop logoPlayDrop Studio
OpprettSpillbytteTjenLærConnectorerRessurserFellesskapStøtte
PlayDrop logoPlayDrop Studio
OpprettSpillbytteTjenLærConnectorerRessurserFellesskapStøtte
Logg inn
Lasting, pause og lyd
Dokumentasjon

Start her

OversiktDitt første spillPlayDrop-spillFAQ

Lag med Cloud

Opprettelse med CloudAbonnementer og genereringer

Koble til KI-appen din

Alle connectorerClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Publiser og del

Publiser fra KI-appen dinEnkle HTML-spillPakking og .playPubliser og importerSpillfilerSynlighet og rekkeviddeOppføringsbilder og videoSjangre og taggerLokaliseringInstant-spill

Spillopplevelse

Lasting, pause og lydFullskjerm og trygge områderSkylagringLokale grupper og kontrollere

Spill sammen

Deling, venner og invitasjonerTopplisterPrestasjonerNettgrupper og stemmeSanntidsservere

Tjen

InntekterKreditter og belønninger

Ressurser

SpillressurserKI-generering av ressurserEgendefinerte formater og spillerkreasjoner

Referanse

Klient-SDKServer-SDKcatalogue.jsonFeil og gjenopprettingFeilsøking
DokumentasjonLasting, pause og lyd
Spillopplevelse

Spillets livssyklus på PlayDrop: lasting, klar, pause og lyd

Initialiser PlayDrop-SDK-en, meld klar ved første spillbare bilde, sett på pause og gjenoppta ryddig, følg lydreglene og forhåndslast filer for spill uten nett.

PlayDrop viser sin egen lasteskjerm, pausemeny, lydkontroll og andre vinduer rundt spillet ditt. Livssyklus-API-et holder spillet i takt med dem: det stopper mens PlayDrop setter det på pause, og spiller bare lyd når PlayDrops lydregler tillater det.

Initialiser, og meld deretter klar

Last SDK-en, les starttilstanden, abonner på endringer, klargjør den første skjermen og kall først da ready(). PlayDrop viser lasteskjermen sin frem til da.

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>

Kall ready() når den planlagte første skjermen er synlig og inndata fungerer, ikke før ressursene er lastet. sdk.host.error(message) forteller PlayDrop at spillet ikke kan starte. setLoadingState og firstFrameReady er eldre navn på det samme trinnet; bruk ready().

Faser: forhåndsvisning, spill og editor

sdk.host.phase er preview, play eller editor, og onPhaseChange rapporterer bytter. Forhåndsvisninger og opptak viser spillet uten en ekte økt: skriv aldri lagringer, poengsummer, prestasjoner eller kjøp utenfor play. sdk.host.mode er play til vanlig og dev i den lokale Dev-rammen.

Pause og gjenoppta

onPause(reason) og onResume(reason) utløses når spilleren åpner pausemenyen, skjuler fanen, logger inn, kjøper noe, eller når en annonse eller et PlayDrop-vindu dekker spillet. reason er en av tab_hidden, auth_prompt, purchase_flow, host_overlay, detail_hidden, route_change eller native_background; sdk.host.isPaused er den nåværende tilstanden.

Mens spillet står på pause, stopper du simulering og tidtakere. Når det gjenopptas, nullstiller du tidsmålingen mellom bildene slik at spillet ikke hopper fremover:

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 og Meny-knappen på en kontroller hører til PlayDrops pausemeny; ikke knytt dem til noe i spillet ditt. I et nettverksspill holder du romtilkoblingen i live under pause: at én spiller setter på pause, må ikke stoppe de andre.

Lyd

Les sdk.host.audioAllowed én gang etter init(), og følg deretter onAudioAllowedChange. Verdien kombinerer spillerens demping, fasen og pausen, og forblir sann under en pause med skjult fane, slik at musikken kan beholde posisjonen sin. onAudioPolicyChange rapporterer { enabled, reason, volume } når du også trenger årsaken eller vertens volum.

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

Lyden starter dempet til verten tillater den, og nettlesere krever fortsatt en handling fra spilleren før lyd spilles av. Behold en eventuell voluminnstilling i spillet som en ekstra grense; vertens demping vinner alltid. Fang opp avviste play()- og resume()-promiser.

Forhåndslast og spill uten nett i appene

De native appene kan laste ned et spills filer før det starter, og beholde dem for spill uten nett. Deklarer dem i catalogue.json:

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

Inngangssiden er alltid med. required-filer hentes før spillet starter, optional-filer etterpå. offlineSupported: true lar appene tilby spillet uten nett når de påkrevde filene er lagret. Ugyldige verdier ignoreres og blokkerer aldri en opplasting. Nettstedet laster spill som vanlig. For Instant-spill utgjør de påkrevde filene oppstartsstørrelsen.

På verter som oppgir støtte for enhetsdata, blir lagringer, poengsummer og prestasjoner oppnådd uten nett liggende på enheten og synkroniseres når den er på nett igjen; topplister uten nett viser bare spillerens egen rekord. I en nettleser finnes det ingen kø for lagringer uten nett, så håndter en mislykket lagring. Alt spillet laster fra internett, krever fortsatt tilkobling.

Haptikk

I de native appene gir sdk.haptics.selection(), impact("light" | "medium" | "heavy") og notification("success" | "warning" | "error") kort tilbakemelding; sdk.haptics.supported forteller om verten støtter det. De gjør ingenting på nettet og er uavhengige av demping.

Relaterte veiledninger

  • Fullskjerm og trygge områderFå et PlayDrop-spill til å fylle skjermen, og hold HUD-en innenfor CSS-trygge områder og unna vertens kontroller med SDK-ens målte reservedCorners.
  • SkylagringLagre og hent fremgang med sdk.me.appData og updateAppData for gjester og innloggede spillere, med regler for skriving, forhåndsvisninger og spill uten nett.
  • Instant-spillHva som gjør et PlayDrop-spill Instant: stående format, gjestetilgang, høyst 10 MiB oppstartsfiler, start på to sekunder, og forskjellen fra vanlige spill.
  • Klient-SDKReferanse for PlayDrops nettleser-SDK: livssyklus, identitet og lagring, kontrollere, sosialt, flerspiller, butikk, annonser, topplister, ressurser og KI.
ForrigeInstant-spill og vanlige spill på PlayDropNesteFullskjerm, trygge områder og HUD-hjørner for PlayDrop-spill
Vis Markdown
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

På denne siden

Initialiser, og meld deretter klarFaser: forhåndsvisning, spill og editorPause og gjenopptaLydForhåndslast og spill uten nett i appeneHaptikk
Vis Markdown