Lokale grupper, spillkontrollere og telefonkontrollere på PlayDrop
Les fysiske spillkontrollere og PlayDrops telefonkontrollere via sdk.device, følg lokale spillerplasser, og deklarer kontrollerstøtte og gruppestørrelser.
En lokal gruppe er flere personer som spiller på én skjerm, hver med en kontroller: en fysisk spillkontroller eller en telefon som PlayDrop gjør om til en kontroller ved å skanne en kode. Spillet ditt leser alle kontrollere på samme måte via SDK-en, på nettstedet og i appene.
Deklarer kontrollere og gruppestørrelser
{
"types": ["solo", "party"],
"party": { "local": [1, 2, 3, 4] },
"controller": { "support": "optional", "type": "simpler" }
}controller.supporteroff,optionalellerrequired. Deklarer det for hvert spill, ogsåoff.controller.typeangir de minste kontrollene spillet trenger:any(retninger, Bekreft og Avbryt),simpler(én stikke, fire frontknapper og Meny; telefonkontrollere oppfyller dette) ellerstandard(styrekors, to klikkbare stikker, fire frontknapper, to skulderknapper, to avtrekkere og Meny).party.locallister de nøyaktige spillerantallene på én skjerm; en1krever typensolo. Med kontrollerstøtte slått på må hvert oppført antall kunne spilles med kontrollere.
Les kontrollere
await sdk.device.enableControllerInput().catch(() => { /* keep keyboard and touch */ });
const stop = sdk.device.onButton(({ playerIndex, button, pressed }) => {
if (button === "south" && pressed) jump(playerIndex);
});
function update() {
for (const slot of sdk.device.localPlayers) {
const pad = sdk.device.gamepad(slot.playerIndex);
if (pad?.connected) move(slot.playerIndex, pad.axes[0], pad.axes[1]);
}
requestAnimationFrame(update);
}
update();- Kall
enableControllerInput()én gang etterinit(). Kallet avvises medcontroller_input_unavailableellercontroller_input_timeoutnår verten ikke kan levere inndata; spillet fortsetter å kjøre. gamepad(playerIndex)returnerer et øyeblikksbilde i nettleserens standardoppsett:axes(venstre x/y, høyre x/y fra -1 til 1), syttenbuttons,source(physicalellervirtual) ogid.playerIndex0 er spiller 1.- Knappene har posisjonsnavn som
southogeast.pad.label("south")gir teksten som skal vises: «A», «Cross» eller «B», avhengig av kontrolleren.pad.has("dpad")forteller om en kontroll finnes. - Meny og Hjem hører til PlayDrop og leses alltid som sluppet.
- Kall aldri
navigator.getGamepads(): telefonkontrollere når bare frem til spill via SDK-en, og PlayDrop logger en advarsel.
Lokale spillerplasser
sdk.device.localPlayers lister plassene spillerne har valgt, { playerIndex, gamepadKey }, og onLocalPlayersChange(callback) rapporterer endringer. En frakoblet kontroller beholder plassen sin. Når spillerlisten endres eller blir tom, går du tilbake til en fornuftig meny i stedet for å krasje. Én kontroller alene er vanlig inndata, ikke en gruppe.
Fra en knapp åpner sdk.social.openParty({ mode: "local" }) PlayDrops paringsvindu med QR-koden for telefoner og tilkoblede spillkontrollere. Tilby bare modusene du har deklarert.
Lokalt eller på nett, ikke begge deler
Verten starter et spill enten som en lokal gruppe eller som en nettgruppe, aldri begge deler: lokale spillere kan ikke bli med i rom på nett. For spill på nett med venner, se nettgrupper og stemme.
Design for sofaen
Vis hver spillers farge og kontrollertekst, la hvem som helst trykke på en knapp for å bli med, og hold HUD-en lesbar fra en sofa. Behold berørings- og tastaturkontroller for solospill.