Доработка официального сайта Yezi Esports https://www.xxe.io/Совершенно новый В egret вы можете напрямую вызвать API игр wechat. С помощью кода платформы, добавленного в egret, вы можете вызывать различные API платформы.
В новом проекте будет обнаружено, что папка SRC содержит Platform.ts Если нет, пожалуйста, создайте.
/**
Интерфейс данных платформы. Поскольку каждая игра обычно должна публиковаться на нескольких платформах, разработчикам требуется единый интерфейс для получения информации о данных платформы. Рекомендуется, чтобы разработчики инкапсулировали логику платформы таким образом, чтобы обеспечить стабильность общей структуры, поскольку формы интерфейса разных платформ различны, egret рекомендует разработчикам инкапсулировать все интерфейсы в асинхронные формы на основе обещания */объявить платформу интерфейса { getUserInfo(): Обещание; login(): Обещание } класс DebugPlatform реализует платформу { async getUserInfo() { возвращает { псевдоним: “имя пользователя” } } асинхронный логин() { } } если (!window.platform) { window.platform DebugPlatform(); } объявить платформу: Платформа; объявить окно интерфейса { платформа: Платформа } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 И скопируйте код на носитель Platform.ts.
2 wechat. Упакуйте и опубликуйте проект wechat и откройте его в инструменте разработчика wechat. Вы можете видеть platform.js Файл, если нет, пожалуйста, создайте platform.js Документы. Другие интерфейсы wechat также должны быть записаны в файл, такие как общий доступ, щелчок wechat для входа и т.д.
/**
Пожалуйста, по адресу egret engine Main.ts Вызовите платформу.войдите, метод () вызывается здесь. */*/игровая платформа класса { имя входа() { вернуть новое обещание((разрешить, отклонить) = > { wx.вход({ успех: (разрешение) => { разрешение(разрешение) } }) }) }
getUserInfo() {
return new Promise((resolve, reject) => {
wx.getUserInfo({
withCredentials: true,
success: function (res) {
var userInfo = res.userInfo
var nickName = userInfo.nickName
var avatarUrl = userInfo.avatarUrl
var gender = userInfo.gender //Gender 0: unknown, 1: male, 2: female
var province = userInfo.province
var city = userInfo.city
var country = userInfo.country
resolve(userInfo);
}
})
})}
открытый текст данных W x игровой Контекст открытых данных(); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 }
класс WxgameOpenDataContext { Созданный объект воспроизведения(тип,ширина,высота){ постоянная цапля. BitmapData(общий холст); bitmapdata.$удалить источник; постоянная цапля. Текстура(); текстура._setBitmapData(растровые данные); постоянная цапля. Растровое изображение(текстура); растровое изображение.ширина; растровое изображение.высота;
egret.startTick((timeStarmp) => {
egret.WebGLUtils.deleteWebGLTexture(bitmapdata.webGLTexture);
bitmapdata.webGLTexture = null;
return false;
}, this);
return bitmap;}
Сообщение(данные){
const openDataContext = wx.getOpenDataContext(); openDataContext.postMessage(data);
} 1 2 3 4 5 6 7 8 9 10 11 12 }
окно.платформа WxgamePlatform(); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 Платформа объявляет функцию платформы, которую можно вызвать непосредственно в egret, и код может быть реализован на каждой платформе.
В-третьих, вызов входа в систему цапли и получение информации о пользователе WeChat. оставайтесь главным.ts, напишите следующий код.
платформа ожидания.вход () вызовите API входа в систему, const platform.getUserInfo (); получите информацию о пользователе wechat и верните информацию о пользователе, Ожидание вызывается асинхронно, и возвращается результат вызова. Следующий шаг выполнен.
класс Main расширяет цаплю. DisplayObjectContainer {
публичный конструктор() {
super(); this.addEventListener(egret.Event.ADDED_TO_STAGE, this.onAddToStage, this);
}
частная страница onaddedtostage(событие: цапля. Событие) {
this.runGame().catch(e => {
console.log(e);
})}
частная асинхронная игра() {
await platform.login(); const userInfo = await platform.getUserInfo(); this.createGameScene(userInfo);
}
личное текстовое поле: цапля. ТексТовое поле;
/**
- Создайте игровую сцену
- Создайте игровую сцену
*/private createGameScene(информация пользователя: любая) {
let bg: eui.Rect = new eui.Rect(); this.addChild(bg); bg.width = this.stage.width; bg.height = this.stage.height; bg.fillColor = 0xF8F8F8; let avatar: eui.Image = new eui.Image(); avatar.x = 100; avatar.y = 100; avatar.width = 120; avatar.height = 120; avatar.source = userInfo.avatarUrl; this.addChild(avatar); let nickName: eui.Label = new eui.Label(); nickName.x = 100; nickName.y = 250; nickName.textColor = 0xff0000; nickName.text = userInfo.nickName; this.addChild(nickName);
} 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 Упакуйте проект wechat и откройте его в инструменте разработчика. Запустите, чтобы получить информацию о пользователе wechat. ————————————————