collisionFilters.getFilter()

类型 函数
返回值
修订 版本 2024.3703
关键词 物理, 碰撞, 过滤器, getFilter
另请参阅 collisionFilters.setupFilters()
collisionFilters.viewAllFilters()

概述

仅使用有效的 filterName 调用此函数将返回一个,该表应该作为 physics.addBody() 函数的 filter 参数被引用,用于将过滤器与对象关联。

或者,将 humanReadableFormat 设置为 true 调用此函数,将返回一个包含所有相应掩码类别名称的,以便清晰地理解过滤器的内容。

语法

collisionFilters.getFilter( filterName [, humanReadableFormat] )
filterName (必填)

字符串一个有效的过滤器名称,先前已使用 collisionFilters.setupFilters() 定义。

humanReadableFormat (可选)

布尔值如果设置为 true,则返回值将是一个包含所有相应掩码类别名称的,以便清晰地理解过滤器的内容。此表不能physics.addBody() 函数中使用 — 它的主要用途是检查过滤器的关系。

示例

物理实体过滤器用法
local collisionFilters = require( "plugin.collisionFilters" )

collisionFilters.setupFilters(
{
    player = { "enemies", "powerUps" },
    enemies = "playerBullets",
})
 
-- Create the player object
local thisPlayer = display.newImageRect( "player.png", 64, 64 )
thisPlayer.x, thisPlayer.y = 100, 100

-- Add a physics body using the player filter
local playerFilter = collisionFilters.getFilter( "player" )
physics.addBody( thisPlayer, "dynamic", { filter=playerFilter } )
人类可读格式用法
local collisionFilters = require( "plugin.collisionFilters" )

collisionFilters.setupFilters(
{
    player = { "enemies", "powerUps" },
    enemies = "playerBullets",
})

-- Display the player filter in an understandable format
local playerFilter = collisionFilters.getFilter( "player", true )
print( "'player' is set to collide with: " .. table.concat( playerFilter, ", " ) )