PlayDrop logoPlayDrop Studio
CreaScambio di partiteGuadagnaImparaConnettoriAssetCommunityAssistenza
PlayDrop logoPlayDrop Studio
CreaScambio di partiteGuadagnaImparaConnettoriAssetCommunityAssistenza
Accedi
Caricamento, pausa e audio
Documentazione

Inizia da qui

PanoramicaIl tuo primo giocoGiochi PlayDropFAQ

Crea con Cloud

Creazione con CloudPiani e generazioni

Collega la tua app di IA

Tutti i connettoriClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Pubblica e condividi

Pubblica dalla tua app di IAGiochi in HTML semplicePacchetti e .playPubblica e importaFile di giocoVisibilità e pubblicoImmagini e video della schedaGeneri e tagLocalizzazioneGiochi Instant

Esperienza di gioco

Caricamento, pausa e audioSchermo intero e aree sicureSalvataggi cloudGruppi locali e controller

Gioca insieme

Condivisione, amici e invitiClassificheObiettiviGruppi online e voceServer in tempo reale

Guadagna

MonetizzazioneCrediti e ricompense

Asset

Asset di giocoAsset con l’IAFormati e creazioni

Riferimento

SDK clientSDK servercatalogue.jsonErrori e recuperoRisoluzione dei problemi
DocumentazioneCaricamento, pausa e audio
Esperienza di gioco

Ciclo di vita del gioco su PlayDrop: caricamento, avvio, pausa e audio

Inizializza l’SDK, chiama ready al primo frame giocabile, gestisci pausa e ripresa, rispetta l’audio dell’host e precarica i file per app native e offline.

PlayDrop mostra intorno al tuo gioco la propria schermata di caricamento, il menu di pausa, il comando per disattivare l’audio e altre finestre. L’API del ciclo di vita mantiene il gioco al passo con questi elementi: si ferma mentre PlayDrop lo mette in pausa e riproduce suoni solo quando la politica audio di PlayDrop lo consente.

Inizializza, poi segnala che sei pronto

Carica l’SDK, leggi lo stato iniziale, iscriviti alle modifiche, prepara la prima schermata e solo allora chiama ready(). Fino a quel momento PlayDrop tiene visibile la sua schermata di caricamento.

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>

Chiama ready() quando la prima schermata prevista è visibile e l’input funziona, non prima che gli asset siano caricati. sdk.host.error(message) comunica a PlayDrop che il gioco non può partire. setLoadingState e firstFrameReady sono nomi meno recenti per lo stesso passaggio; usa ready().

Fasi: anteprima, gioco ed editor

sdk.host.phase vale preview, play o editor, e onPhaseChange segnala i cambi di fase. Anteprime e acquisizioni mostrano il gioco senza una vera sessione: non scrivere mai salvataggi, punteggi, obiettivi o acquisti fuori da play. sdk.host.mode vale play di norma e dev nel frame Dev locale.

Pausa e ripresa

onPause(reason) e onResume(reason) scattano quando il giocatore apre il menu di pausa, nasconde la scheda del browser, accede, compra qualcosa, oppure quando un annuncio o una finestra di PlayDrop copre il gioco. reason è uno tra tab_hidden, auth_prompt, purchase_flow, host_overlay, detail_hidden, route_change o native_background; sdk.host.isPaused indica lo stato attuale.

Durante la pausa, ferma la simulazione e i timer. Alla ripresa, azzera l’orologio dei frame così il gioco non salta in avanti:

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);

Esc e il pulsante Menu di un controller appartengono al menu di pausa di PlayDrop; non associarli a comandi del tuo gioco. In un gioco in rete, mantieni attiva la connessione alla stanza durante la pausa: la pausa di un giocatore non deve fermare gli altri.

Audio

Leggi sdk.host.audioAllowed una volta dopo init(), poi segui onAudioAllowedChange. Combina l’audio disattivato dal giocatore, la fase e la pausa, e resta true durante una pausa dovuta alla scheda del browser nascosta, così la musica può mantenere la sua posizione. onAudioPolicyChange segnala { enabled, reason, volume } quando ti servono anche il motivo o il volume dell’host.

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

L’audio parte disattivato finché l’host non lo consente, e i browser richiedono comunque un gesto del giocatore prima di riprodurre suoni. Mantieni un’eventuale impostazione del volume nel gioco come limite aggiuntivo; l’audio disattivato dall’host vince sempre. Gestisci le promise rifiutate di play() e resume().

Precarica e gioca offline nelle app

Le app native possono scaricare i file di un gioco prima che parta e conservarli per giocare offline. Dichiarali in catalogue.json:

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

La pagina di ingresso è sempre inclusa. I file required vengono scaricati prima del gioco, quelli optional dopo. offlineSupported: true permette alle app di offrire il gioco offline una volta salvati i suoi file obbligatori. I valori non validi vengono ignorati e non bloccano mai un caricamento. Il sito carica i giochi come al solito. Per i giochi Instant, i file obbligatori costituiscono la dimensione di avvio.

Sugli host che dichiarano il supporto ai dati sul dispositivo, salvataggi, punteggi e obiettivi ottenuti offline restano sul dispositivo e si sincronizzano una volta online; le classifiche offline mostrano solo il record del giocatore. Nel browser non c’è una coda offline, quindi gestisci un salvataggio non riuscito. Tutto ciò che il gioco carica da internet richiede comunque una connessione.

Vibrazione

Nelle app native sdk.haptics.selection(), impact("light" | "medium" | "heavy") e notification("success" | "warning" | "error") danno un breve riscontro tattile; sdk.haptics.supported indica se l’host lo supporta. Sul web non fanno nulla e sono indipendenti dall’audio disattivato.

Guide correlate

  • Schermo intero e aree sicureFai riempire lo schermo a un gioco PlayDrop e tieni l’HUD nelle aree sicure CSS e lontano dai comandi dell’host con i reservedCorners misurati dall’SDK.
  • Salvataggi cloudSalva e carica i progressi con sdk.me.appData e sdk.me.updateAppData, per ospiti e giocatori con accesso: regole per scritture, anteprime e gioco offline.
  • Giochi InstantCosa rende Instant un gioco PlayDrop: formato verticale, accesso per ospiti, massimo 10 MiB di file di avvio e partenza entro 2 secondi. Differenze dai giochi normali.
  • SDK clientRiferimento dell’SDK browser di PlayDrop: host, identità, salvataggi, controller, social, multiplayer, negozio, annunci, classifiche, obiettivi, asset e IA.
PrecedenteGiochi Instant e giochi normali su PlayDropSuccessivoSchermo intero, aree sicure e angoli dell’HUD nei giochi PlayDrop
Vedi il Markdown
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

In questa pagina

Inizializza, poi segnala che sei prontoFasi: anteprima, gioco ed editorPausa e ripresaAudioPrecarica e gioca offline nelle appVibrazione
Vedi il Markdown