PlayDrop logoPlayDrop Studio
創作互玩賺取學習連接器素材社群支援
PlayDrop logoPlayDrop Studio
創作互玩賺取學習連接器素材社群支援
登入
本機派對與控制器
文件

從這裡開始

總覽你的第一款遊戲PlayDrop 遊戲常見問題

用 Cloud 創作

Cloud 創作方案與生成次數

連接你的 AI App

所有連接器ClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

發布與分享

從你的 AI App 發布簡易 HTML 遊戲打包與 .play發布與匯入遊戲檔案可見性與觸及上架圖片與影片類型與標籤在地化即玩遊戲

遊戲體驗

載入、暫停與音訊全螢幕與安全區域雲端存檔本機派對與控制器

一起玩

分享、好友與邀請排行榜成就線上派對與語音即時遊戲伺服器

賺取收益

營利點數與獎勵

素材

遊戲素材AI 素材生成自訂格式與玩家創作

參考資料

用戶端 SDK伺服器 SDKcatalogue.json錯誤與復原疑難排解
文件本機派對與控制器
遊戲體驗

PlayDrop 遊戲中的本機派對、手把與手機控制器

透過 sdk.device 讀取實體手把與 PlayDrop 手機控制器,追蹤本機玩家插槽,並宣告控制器支援與本機派對人數。

本機派對是好幾個人在同一個螢幕上一起玩,每人一個控制器:可以是實體手把,或是掃描代碼後由 PlayDrop 變成控制器的手機。無論在網站或 App 中,你的遊戲都透過 SDK 以相同方式讀取每個控制器。

宣告控制器與派對人數

json
{
  "types": ["solo", "party"],
  "party": { "local": [1, 2, 3, 4] },
  "controller": { "support": "optional", "type": "simpler" }
}
  • controller.support 為 off、optional 或 required。每款遊戲都要宣告,包括 off。
  • controller.type 指定遊戲所需的最低操控:any(方向、確認與取消)、simpler(一支搖桿、四個正面按鍵和選單鍵;手機控制器符合條件)或 standard(十字鍵、兩支可按壓的搖桿、四個正面按鍵、兩個肩鍵、兩個扳機和選單鍵)。
  • party.local 列出同一螢幕上的確切玩家人數;1 需要 solo 類型。開啟控制器支援時,列出的每種人數都必須能用控制器遊玩。

讀取控制器

js
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();
  • 在 init() 之後呼叫一次 enableControllerInput()。主機端無法提供輸入時,它會以 controller_input_unavailable 或 controller_input_timeout 拒絕;遊戲會繼續執行。
  • gamepad(playerIndex) 會以瀏覽器的標準配置傳回快照:axes(左 x/y、右 x/y,範圍 -1 到 1)、十七個 buttons、source(physical 或 virtual)和 id。playerIndex 為 0 代表玩家 1。
  • 按鍵依位置命名,例如 south 和 east。pad.label("south") 會提供要顯示的提示:依控制器不同,可能是「A」、「Cross」或「B」。pad.has("dpad") 可判斷某個操控是否存在。
  • 選單鍵和 Home 鍵屬於 PlayDrop,讀取時永遠是放開狀態。
  • 絕不要呼叫 navigator.getGamepads():手機控制器只能透過 SDK 傳到遊戲,而且 PlayDrop 會記錄警告。

本機玩家插槽

sdk.device.localPlayers 列出玩家選擇的插槽 { playerIndex, gamepadKey },onLocalPlayersChange(callback) 會回報變更。中斷連線的控制器會保留它的插槽。玩家名單變更或清空時,請回到合理的選單,而不是讓遊戲當掉。單獨一個控制器只是一般輸入,不是派對。

從按鈕呼叫 sdk.social.openParty({ mode: "local" }),會開啟 PlayDrop 的配對視窗,顯示手機 QR code 與已連接的手把。只提供你宣告過的模式。

本機或線上,不能兩者兼具

主機端會以本機派對或線上派對其中一種方式啟動遊戲,絕不會兩者同時:本機玩家無法加入線上房間。若要和朋友線上遊玩,請參閱線上派對與語音。

為客廳沙發而設計

顯示每位玩家的顏色和控制器提示,讓任何人按下按鍵就能加入,並讓 HUD 從沙發上也看得清楚。單人遊玩時請保留觸控與鍵盤操控。

相關指南

  • 線上派對與語音讓朋友一起線上玩你的遊戲:宣告派對人數、開啟 PlayDrop 的派對視窗、用 sdk.multiplayer.join 加入預留的房間,並控制房間語音。
  • 全螢幕與安全區域讓 PlayDrop 遊戲填滿螢幕,並用 SDK 實際測量的 reservedCorners,讓 HUD 保持在 CSS 安全區域內、避開主機端的控制項。
  • catalogue.jsonPlayDrop 遊戲使用的 catalogue.json 欄位:身分、上架資訊、遊玩方式、顯示環境、登入、即玩、預先載入、媒體、翻譯、分數與伺服器。
上一頁PlayDrop 遊戲的雲端存檔下一頁PlayDrop 遊戲中的分享、好友與邀請
檢視 Markdown
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

本頁內容

宣告控制器與派對人數讀取控制器本機玩家插槽本機或線上,不能兩者兼具為客廳沙發而設計
檢視 Markdown