Skip to content

源码提供的方法和属性说明

数学

Custom.RNV()

1
2
3
4
public static Vector2 RNV()
        {
            return Custom.DegToVec(UnityEngine.Random.value * 360f);
        }

返回一个随机的Vector2。

Custom.DirVec()

1
2
3
4
5
6
7
8
public static Vector2 DirVec(Vector2 p1, Vector2 p2)
{
    if (p1 == p2)
    {
       return new Vector2(0f, 1f);
    }
    return new Vector2(p2[0] - p1[0], p2[1] - p1[1]).normalized;
}

返回向量\(p1\)指向\(p2\)的单位向量。

视觉

CosmeticSprite

CosmeticSprite.cs
using System;
using MoreSlugcats;
using UnityEngine;

public class CosmeticSprite : UpdatableAndDeletable, IDrawable, IRunDuringDialog
{
    public override void Update(bool eu)
    {
        this.lastPos = this.pos;
        this.pos += this.vel;
        base.Update(eu);
    }

    public virtual void InitiateSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam)
    {
    }

    public virtual void DrawSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, float timeStacker, Vector2 camPos)
    {
        if (!sLeaser.deleteMeNextFrame && (base.slatedForDeletetion || this.room != rCam.room))
        {
            sLeaser.CleanSpritesAndRemove();
        }
    }

    public virtual void PausedDrawSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, float timeStacker, Vector2 camPos)
    {
        if (!sLeaser.deleteMeNextFrame && (base.slatedForDeletetion || this.room != rCam.room))
        {
            sLeaser.CleanSpritesAndRemove();
        }
    }

    public virtual void ApplyPalette(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, RoomPalette palette)
    {
    }

    public virtual void AddToContainer(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, FContainer newContatiner)
    {
        if (newContatiner == null)
        {
            newContatiner = rCam.ReturnFContainer("Midground");
        }
        foreach (FSprite fsprite in sLeaser.sprites)
        {
            fsprite.RemoveFromContainer();
            newContatiner.AddChild(fsprite);
        }
    }

    public Vector2 pos;
    public Vector2 lastPos;
    public Vector2 vel;
}

基类,为游戏中所有“纯视觉、轻量级、无需复杂物理碰撞计算”的装饰性特效(如火花、烟雾、碎片、灰尘粒子等)提供标准化的运动和渲染模板。

它继承/实现了UpdatableAndDeletable、IDrawable和IRunDuringDialog,受游戏主循环管理,有实例化和销毁的生命周期,在对话期间会持续运行(即动效会持续存在),且介入了游戏的自定义渲染管线。

字段

字段名 类型 含义
pos vector2 当前帧位置
lastPos vector2 上一帧位置
vel vector2 速度

实体

weapon