steamworks.getUserImageInfo()

类型 函数
返回值 ImageInfo
版本 版本 2024.3703
关键词 steam, steamworks, getUserImageInfo
另请参阅 steamworks.newImageRect()
steamworks.newTexture()
steamworks.*

概述

返回一个 ImageInfo 对象。该对象提供有关一个用户头像图像的信息,例如其像素宽度、像素高度和唯一图像句柄。该对象的 imageHandle 属性是通过 steamworks.newImageRect()steamworks.newTexture() 函数加载图像所需的。

注意事项

当尝试获取有关 184×184 像素 "largeAvatar" 图像的信息时,此函数通常会返回 nil。这是因为 Steam 客户端通常不会缓存这些大图像。

此外,在以下情况下,此函数将始终返回 nil

语法

steamworks.getUserImageInfo( type [, userSteamId] )
type (必填)

字符串 要从用户获取的图像的唯一名称。 必须是以下之一

类型 像素大小 (宽×高)
"smallAvatar" 32×32
"mediumAvatar" 64×64
"largeAvatar" 184×184
userSteamId (可选)

字符串 用户的唯一字符串 ID。如果未提供此参数,则 ID 将默认为当前用户。

示例

local steamworks = require( "plugin.steamworks" )

-- Forward-reference the last displayed avatar image
local avatarImage

-- Displays the currently logged in user's avatar image
local function displaySteamUserAvatar()
    -- Fetch information about the user's medium-sized avatar image
    local imageInfo = steamworks.getUserImageInfo( "mediumAvatar" )
    if ( imageInfo == nil ) then
        -- Image is not available yet; wait for a "userInfoUpdate" event
        return
    end

    -- Display the avatar image
    local newAvatarImage = steamworks.newImageRect( imageInfo.imageHandle, 64, 64 )
    if ( newAvatarImage == nil ) then
        return
    end
    newAvatarImage.x = display.contentCenterX
    newAvatarImage.y = display.contentCenterY

    -- Remove the last displayed avatar image, if it exists
    if ( avatarImage ) then
        avatarImage:removeSelf()
    end

    -- Store a reference to the new avatar image
    avatarImage = newAvatarImage
end

-- Attempt to show the currently logged in user's avatar image on startup
-- Note that this will likely fail on the first app launch by the Steam client
displaySteamUserAvatar()

-- Called when a Steam user's information/avatar has changed
local function onSteamUserInfoUpdated( event )
    -- Display current user's medium-sized avatar if it changed or loaded for the first time
    if ( ( event.userSteamId == steamworks.userSteamId ) and event.mediumAvatarChanged ) then
        displaySteamUserAvatar()
    end
end
steamworks.addEventListener( "userInfoUpdate", onSteamUserInfoUpdated )