protected override void AddLayer(ActorLayer layer) { // 让角色渐进式出现 FadeTo fade = FadeOut(); fade.SetActionListener(new RotationAction()); }
internal static unsafe IReadOnlyCollection <Actor> Invoke(UObject WorldContextObject, ActorLayer ActorLayer) { long *p = stackalloc long[] { 0L, 0L, 0L, 0L, 0L, 0L }; byte *b = (byte *)p; *((IntPtr *)(b + 0)) = WorldContextObject; *((ActorLayer *)(b + 8)) = ActorLayer; Main.GetProcessEvent(LayersBlueprintLibrary.DefaultObject, GetActors_ptr, new IntPtr(p));; //TODO: array TArray ReturnValue return(UObject.ToUObjectCollection <Actor>(b + 24)); } }
// 首次注入Layer时调用此函数 protected override void AddLayer(ActorLayer layer) { // 坐标矫正,用以让角色居于瓦片中心 int offsetX = (GetLLayer().GetField2D().GetTileWidth() - this .GetWidth()) / 2; int offsetY = (GetLLayer().GetField2D().GetTileWidth() - this .GetHeight()) / 2; // 初始化角色在Layer中坐标 SetLocation(startX + offsetX, startY + offsetY); // 命令角色向指定坐标自行移动(参数为false为四方向寻径,为true时八方向),并返回移动控制器 // PS:endX与endY非显示位置,所以不必矫正 MoveTo move = MoveTo(endX, endY, false); // 矫正坐标,让角色居中 move.SetOffset(offsetX, offsetY); // 启动角色事件监听 move.SetActionListener(new MoveAction(move, layer)); // 设定移动速度 move.SetSpeed(speed); }
public World(Game game, int seed, GameSave save) { Game = game; Map = new Map(this, game.MapType, seed, save.Level, save.Difficulty); var bounds = Map.Bounds; TerrainLayer = new TerrainLayer(bounds); ShroudLayer = new ShroudLayer(bounds); WallLayer = new WallLayer(bounds, ShroudLayer); PhysicsLayer = new PhysicsLayer(bounds); SmudgeLayer = new SmudgeLayer(); ActorLayer = new ActorLayer(bounds); WeaponLayer = new WeaponLayer(); ParticleLayer = new ParticleLayer(bounds); PathfinderLayer = new PathfinderLayer(bounds); WeatherManager = new WeatherManager(this, game.MapType); }
protected override void AddLayer(ActorLayer layer) { this.x = this.GetX(); this.y = this.GetY(); }
public MoveAction(MoveTo move, ActorLayer layer) { this.move = move; this.layer = layer; }