Wortal SDK for Cocos Creator 3.x
インストール
- Cocos Store からエクステンションをインストールする
ビルディング
Wortal SDK を使用するには、web-mobile テンプレートでビルドする必要があります。こちらはエクステンションに含まれており、必要なすべてのセットアップを処理します。
アップグレード
新しいバージョンでロードすると、エクステンションは既存のアセットを上書きします。これらのアセットに何らかの変更を行う場合、データを失わないよう、この処理を行う前に別のディレクトリに移動することを強くお勧めします。
エクステンションをアップグレードするには、以下の手順に従ってください:
- Extension Manager を開く
- Project タブを選択する
- wortal-sdk を削除する
- Cocos からの削除完了通知を受け取る
- assets ディレクトリから wortal-api フォルダを削除する
- wortal-sdk の新しいバージョンを追加する
初期化
-
ゲームの初期化コードのできるだけ早い段階で
wortal.initializeAsync()を呼び出し、ゲームのロードが終わってプレイできる状態になった際、wortal.startGameAsync()を呼び出してください。 -
初期化コードでゲームのローディングの進行状況を報告する。進行状況が100%になるまで、ゲームは開始されません。
Wortal.initializeAsync().then(() => {
// SDKの使用が可能。
// ゲームの読み込みが完了するのを待つ。
Wortal.setLoadingProgress(100);
Wortal.startGameAsync();
});
使い方
広告
インタースティシャル広告では、レベルの達成や切り替えの合間に表示が可能です。
// noFill はオプションであり、指定されない場合、afterAdが呼び出されます。
Wortal.ads.showInterstitial('placement', 'description', beforeAd, afterAd, noFill?);
// プレイヤーがレベルを達成
Wortal.ads.showInterstitial('next', 'NextLevel', pauseGame, resumeGame);
// プレイヤーがゲームを一時停止
Wortal.ads.showInterstitial('pause', 'PausedGame', pauseGame, resumeGame);
// プレイヤーがアプリ内課金ページにアクセス
Wortal.ads.showInterstitial('browse', 'BrowseShop', pauseAudio, resumeAudio);
リワード広告は、プレイヤーが動画広告を最後まで視聴するなどの条件を満たした場合に、報酬を与える広告タイプです。必ずプレイヤーに通知し、許可を受けてから表示する必要があります。
// noFill はオプションであり、指定されない場合、afterAd が呼び出されます。
Wortal.ads.showRewarded('description', beforeAd, afterAd, adDismissed, adViewed, noFill?);
// この例では、広告の条件達成とは関係なく、ゲームが進みます。
// 例:プレイヤーは広告を視聴することでボーナスコインを取得できますが、その結果に関わらずゲームは続行されます。
Wortal.ads.showRewarded('BonusCoins', pauseGame, resumeGame, skipBonus, addBonusCoins);
// この例では、広告の広告の条件達成に関係して、ゲームが進みます。
// 例:プレイヤーはゲームオーバーの際、広告を視聴することで復活できますが、広告をスキップするとそのレベルを失います。
Wortal.ads.showRewarded('ReviveAndContinue', pauseAudio, resumeAudio, endGame, continueGame);
注: プレーヤーは、adViewed コールバックでのみ報酬を受ける必要があります。
アナリティクス
Wortalのアナリティクス APIを活用することによって、ゲームイベントを追跡し、プレイヤーのゲーム内アクティビティを把握することが可能です。このデータは、Wortalのダッシュボードで表示できます。
// レベルの開始をログ。
Wortal.analytics.logLevelStart('Level 3');
// レベルの終了をログ。名前が一致する場合、ゲーム時間を記録します。
// logLevelStart の最後の呼び出し名()
Wortal.analytics.logLevelEnd('Level 3', '100', true);
// プレイヤーのゲーム内の選択行動をログします。ゲームのバランスを取るのに役立ちます。
// そしてプレイヤーが多く利用するコンテンツを把握できます。
Wortal.analytics.logGameChoice('Character', 'Blue');
アチーブメント
Achievements API は、プレイヤーのゲーム内の進捗を追跡し、タスクの完了に対して報酬を与えるために使用されます。
// アチーブメントをアンロックする。
wortal.achievements.unlockAchievementAsync('achievementID')
.then(() => console.log("Achievement unlocked!"));
// プレイヤーのアチーブメントの進捗状況を取得する。
wortal.achievements.getAchievementsAsync()
.then(achievements => console.log(achievements));
コンテキスト
Context APIは、プレイヤー同士をつなぎ、ゲームセクションの参加、コンテンツの共有、またメッセージのやり取り等に活用できます。
// 友達をゲームに招待する。プレーヤーの現在のコンテキストを切り替えない。
Wortal.context.inviteAsync({
image: 'data:base64image',
text: 'Invite text',
cta: 'Play',
data: { exampleData: 'yourData' },
})
// ゲームのアクティビティを友達と共有する。
Wortal.context.shareAsync({
image: 'data:base64image',
text: 'Share text',
cta: 'Play',
data: { exampleData: 'yourData' },
}).then(result => console.log(result));
アプリ内課金
アプリ内課金(IAP)APIは、プラットフォームでのゲーム内トランザクションの際に使用されます。このプロセスは、プレイされているプラットフォームによって異なりますが、IPは変わりません。
// プレイヤーが購入可能なアイテムリストを確認する。
Wortal.iap.getCatalogAsync()
.then(products => console.log(products));
// アイテムを購入する。
Wortal.iap.makePurchaseAsync({
productID: 'my_product_123',
}).then(purchase => console.log(purchase));
リーダーボード
Leaderboard APIを活用すると、プラットフォームのリーダーボード機能にアクセスが可能に。プレイヤーたちのスコアを追跡し、ランク付けすることができます。
// 上位10位にランクづけられたリーダーボードを取得する。
Wortal.leaderboard.getEntriesAsync('global', 10)
.then(entries => console.log(entries));
// プレーヤーのスコアをリーダーボードに追加する。
Wortal.leaderboard.sendEntryAsync('global', 100);
通知
Notifications API は、プレイヤーに通知を送信するために使用されます。これは、ゲーム内のイベントをプレイヤーに通知したり、再びプレイするよう促したりするために使用できます。
// プレイヤーに送信する通知をスケジュールします。
Wortal.notifications.scheduleAsync({
title: "Your energy is full!",
body: "Come back and play again.",
mediaURL: "https://example.com/image.png",
label: "resources-full",
scheduleInterval: 300 // 5 minutes
}).then((result) => {
console.log(result.id);
});
// スケジュール設定された通知をキャンセルする。
Wortal.notifications.cancelAsync('notification-id-123')
.then((result) => {
console.log(result);
});
プレイヤー
現在のプレーヤーに関する詳細は、Player APIにて確認できます。
// プレイヤーの名前を取得する。
Wortal.player.getName();
// プレイヤーの友達で、ゲームをプレイことがある人のリストを取得する。
Wortal.player.getConnectedPlayersAsync({
filter: 'ALL',
size: 20,
hoursSinceInvitation: 4,
}).then(players => console.log(players.length));
セッション
現在のセッションの状態に関する詳細は、Session API でアクセスできます。
// ゲームが開始されたエントリポイントを取得する。
Wortal.session.getEntryPointAsync()
.then(entryPoint => console.log(entryPoint));
//招待やシェアからエントリーポイントのデータを取得します。
// こちらは、プレイヤーがどこから来たのかを追跡するのに役立ちます。
// 招待されたプレイヤーへ報酬を与えます。
const data = Wortal.session.getEntryPointData();
console.log(data);
スタッツ
Stats API は、プレーヤーの統計情報を追跡し、ハイスコアを記録するために使用します。
// レベルごとのプレイヤーのハイスコアを取得します。
wortal.stats.getStatsAsync("level1")
.then(stats => console.log(stats.value));
// ゲームのハイスコアを設定します。
wortal.stats.postStatsAsync("level1", 1000)
.then(() => console.log("High score set!"));
トーナメント
Tournament API は、あなたのゲームのトーナメントを作成し、管理するために使用されます。
// Create a tournament.
const payload = {
initialScore: 100,
config: {
title: "Level 1 Tournament",
},
data: {
level: 1,
},
};
Wortal.tournament.createAsync(payload)
.then(tournament => console.log(tournament.payload["level"]));
// Post a score to a tournament.
Wortal.tournament.postScoreAsync(200)
.then(() => console.log("Score posted!"));