Skip to content

Class "EntityLaser"⚓︎

Info

You can get this class by using the following function:

Example Code

local brimstoneEntity = Isaac.GetPlayer():FireBrimstone(Vector(1, 0))

Class Diagram⚓︎

    classDiagram
    class Entity:::diagramCurrentPage
    class EntityBomb
    class EntityEffect
    class EntityFamiliar
    class EntityKnife
    class EntityLaser
    class EntityNPC
    class EntityPickup
    class EntityPlayer
    class EntityProjectile
    class EntityTear
    Entity <|-- EntityBomb
    Entity <|-- EntityEffect
    Entity <|-- EntityFamiliar
    Entity <|-- EntityKnife
    Entity <|-- EntityLaser
    Entity <|-- EntityNPC
    Entity <|-- EntityPickup
    Entity <|-- EntityPlayer
    Entity <|-- EntityProjectile
    Entity <|-- EntityTear
    link Entity "Entity.html" "Go to page for 'Entity' class"
    link EntityBomb "EntityBomb.html" "Go to page for 'EntityBomb' class"
    link EntityEffect "EntityEffect.html" "Go to page for 'EntityEffect' class"
    link EntityFamiliar "EntityFamiliar.html" "Go to page for 'EntityFamiliar' class"
    link EntityKnife "EntityKnife.html" "Go to page for 'EntityKnife' class"
    link EntityLaser "EntityLaser.html" "Go to page for 'EntityLaser' class"
    link EntityNPC "EntityNPC.html" "Go to page for 'EntityNPC' class"
    link EntityPickup "EntityPickup.html" "Go to page for 'EntityPickup' class"
    link EntityPlayer "EntityPlayer.html" "Go to page for 'EntityPlayer' class"
    link EntityProjectile "EntityProjectile.html" "Go to page for 'EntityProjectile' class"
    link EntityTear "EntityTear.html" "Go to page for 'EntityTear' class"

Functions⚓︎

Add·Tear·Flags ()⚓︎

void AddTearFlags ( TearFlags Flags )⚓︎


Calculate·End·Point ()⚓︎

static Vector CalculateEndPoint ( Vector Start, Vector Dir, Vector PositionOffset, Entity Parent, float Margin )⚓︎


Clear·Tear·Flags ()⚓︎

void ClearTearFlags ( TearFlags Flags )⚓︎


Get·End·Point ()⚓︎

const Vector GetEndPoint ( )⚓︎


Get·Non·Optimized·Samples ()⚓︎

const VectorList GetNonOptimizedSamples ( )⚓︎

返回一个向量表(VectorList)用于表达激光的路径。通常会返回沿激光路径均匀分布的51个点,相对于GetSamples()只返回表示激光路径所需的最少点。

Example Usage
1
2
3
4
5
6
local samplePoints = laser:GetNonOptimizedSamples()

for i=0, #samplePoints-1 do
    local pos = samplePoints:Get(i)
    ...
end

Get·Render·Z ()⚓︎

int GetRenderZ ( )⚓︎


Get·Samples ()⚓︎

const VectorList GetSamples ( )⚓︎

返回一个向量表(VectorList)表示激光的路径。与 GetNonOptimizedSamples() 不同,此函数返回尽可能少的点,同时仍然正确表示激光的路径。

例如,对于完全直的激光,GetNonOptimizedSamples() 将始终返回 51 个点,但此函数仅返回 2 个。

Example Usage
1
2
3
4
5
6
local samplePoints = laser:GetSamples()

for i=0, #samplePoints-1 do
    local pos = samplePoints:Get(i)
    ...
end

Has·Tear·Flags ()⚓︎

boolean HasTearFlags ( TearFlags Flags )⚓︎


Is·Circle·Laser ()⚓︎

boolean IsCircleLaser ( )⚓︎

Note

此函数无法区分不同类型的圆形激光,但可以通过其子类型进行识别:

  • 0 - 线性激光(典型的激光,具有起点和终点)
  • 1 - 环形鲁多维科(用于鲁多维科科技协同的受控激光环)
  • 2 - 环形投射物(科技X)
  • 3 - 环形跟随父物体(虚空之喉)
  • 4 - 无碰撞(无碰撞溅射,例如科技零)

Is·Sample·Laser ()⚓︎

boolean IsSampleLaser ( )⚓︎


Set·Active·Rotation ()⚓︎

void SetActiveRotation ( int Delay, float AngleDegrees, float RotationSpd, boolean TimeoutComplete )⚓︎


Set·Black·Hp·Drop·Chance ()⚓︎

void SetBlackHpDropChance ( float Chance )⚓︎


Set·Homing·Type ()⚓︎

void SetHomingType ( LaserHomingType Type )⚓︎


Set·Max·Distance ()⚓︎

void SetMaxDistance ( float Distance )⚓︎


Set·Multidimensional·Touched ()⚓︎

void SetMultidimensionalTouched ( boolean Value )⚓︎


Set·One·Hit ()⚓︎

void SetOneHit ( boolean Value )⚓︎


Set·Timeout ()⚓︎

void SetTimeout ( int Value )⚓︎


Shoot·Angle ()⚓︎

static EntityLaser ShootAngle ( int Variant, Vector SourcePos, float AngleDegrees, int Timeout, Vector PosOffset, Entity Source )⚓︎

简单化静态助手以简化激光的生成


Variables⚓︎

Angle⚓︎

float Angle⚓︎


Angle·Degrees⚓︎

float AngleDegrees⚓︎


Black·Hp·Drop·Chance⚓︎

float BlackHpDropChance⚓︎

For maw of void.


Bounce·Laser⚓︎

Entity BounceLaser⚓︎


Curve·Strength⚓︎

float CurveStrength⚓︎

My Reflection.


Disable·Follow·Parent⚓︎

boolean DisableFollowParent⚓︎

设置为其他激光的子项时使用,例如橡胶胶水的反弹。禁用 m_ParentOffset。


End·Point⚓︎

Vector EndPoint⚓︎

将会保存终点,以便在外部访问时不需要重新计算。


First·Update⚓︎

boolean FirstUpdate⚓︎


Grid·Hit⚓︎

boolean GridHit⚓︎

返回 true 如果激光可以被网格实体阻挡,并且在该帧被阻挡。


Homing·Laser⚓︎

HomingLaser HomingLaser⚓︎


Homing·Type⚓︎

LaserHomingType HomingType⚓︎


Is·Active·Rotating⚓︎

boolean IsActiveRotating⚓︎


Laser·Length⚓︎

float LaserLength⚓︎


Last·Angle·Degrees⚓︎

float LastAngleDegrees⚓︎


Max·Distance⚓︎

float MaxDistance⚓︎

Used to trim brimstone for Azazel (0 - off)


One·Hit⚓︎

boolean OneHit⚓︎

Laser hits only once.


Parent·Offset⚓︎

Vector ParentOffset⚓︎


Radius⚓︎

float Radius⚓︎


Rotation·Degrees⚓︎

float RotationDegrees⚓︎


Rotation·Delay⚓︎

int RotationDelay⚓︎


Rotation·Spd⚓︎

float RotationSpd⚓︎


Sample·Laser⚓︎

boolean SampleLaser⚓︎


Shrink⚓︎

boolean Shrink⚓︎


Start·Angle·Degrees⚓︎

float StartAngleDegrees⚓︎

一些激光在旋转时会有随机变化,因此它们需要记住起始点。


Tear·Flags⚓︎

TearFlags TearFlags⚓︎


Timeout⚓︎

int Timeout⚓︎



Last update: September 6, 2025