环境设置
1. 初始化 Steamworks API
greenworks.initAPI()
返回 Boolean
,表示是否成功初始化Steam API。
注意:测试时,您需要启动并登录Steam客户端,并在应用程序目录下创建一个带有Steam APP ID(或steamworks示例APP ID)的Steam_appid.txt文件。
4. 在需要的时候重启应用
greenworks.restartAppIfNecessary(appId)
-
appId
Integer: 游戏的APP ID
如果你的应用程序不是通过Steam启动的,这将向Steam发出启动应用程序的信号,然后导致你的应用退出。 调用 restartAppIfNecessary()
后,您不会有任何损失,但如果它返回 true
,则您的应用程序正在重新启动。
7. 获取SteamId对象
greenworks.getSteamId()
返回一个表示当前用户的 SteamID 的对象。
11. 获取应用安装目录
greenworks.getAppInstallDir(app_id, buffer, buffer_size)
-
app_id Integer: 游戏的APP ID
返回一个 String
值,表示应用安装目录的绝对路径。
12. 获取玩家数量
greenworks.getNumberOfPlayers(success_callback, [error_callback])
-
success_callback
Function(num_of_players)-
num_of_players
Integer: Steam上当前游戏的玩家数量。
-
-
error_callback
Function(err)
13. 打开Steam遮罩层
greenworks.activateGameOverlay(option)
-
option
String: 有效的选项宝坤Friends
,Community
,Players
,Settings
,OfficialGameGroup
,Stats
和Achievements
。
激活 option
指定的游戏遮罩层。
15. 判断Steam是否处于大屏幕模式
greenworks.isSteamInBigPictureMode()
返回一个 Boolean
值,表示Steam是否处于大屏幕模式。如果应用程序不在Steam的 游戏
类别中,则始终返回 false
。
16. 通过Steam遮罩层打开Web页面
greenworks.activateGameOverlayToWebPage(url)
-
url
String: 完整的url,例如。http://www.steamgames.com.
在steam游戏遮罩层中打开指定的url。
18. 判断应用是否已安装
greenworks.isAppInstalled(appId)
-
appId
Integer: 应用的APP ID
返回一个 Boolean
,表示应用是否已安装。该应用实际上可能不属于用户。
仅适用于应用本体,DLC使用的是 isDLCInstalled
。
20. 获取图像字节
greenworks.getImageRGBA(handle)
-
handle
Integer: 图片句柄
返回一个 Buffer
,表示RGBA格式的图片数据。
下面是保存 png
格式图片的示例:
var greeenworks = require('./greenworks');
// Relies on 'jimp' module. Install it via 'npm install jimp'.
var Jimp = require('jimp');
var friends = greenworks.getFriends(greenworks.FriendFlags.Immediate);
if (friends.length > 0) {
var handle = greenworks.getSmallFriendAvatar(friends[0].getRawSteamID());
if (!handle) {
console.log("The user don't set small avartar");
return;
}
var image_buffer = greenworks.getImageRGBA(handle);
var size = greenworks.getImageSize(handle);
if (!size.height || !size.width) {
console.log("Image corrupted. Please try again");
return;
}
console.log(size);
var image = new Jimp(size.height, size.width, function (err, image) {
for (var i = 0; i < size.height; ++i) {
for (var j = 0; j < size.width; ++j) {
var idx = 4 * (i * size.height + j);
var hex = Jimp.rgbaToInt(image_buffer[idx], image_buffer[idx+1],
image_buffer[idx+2], image_buffer[idx+3]);
image.setPixelColor(hex, j, i);
}
}
});
image.write("/tmp/test.png");
}