コード例 #1
0
    public void ReLayout()
    {
        Vector3 tempTxtPos    = orgTextPos;
        Vector3 tempOptPos    = orgOptPos;
        Vector3 tempRewardPos = orgActionPos;

        for (int i = 0; i < allWindows.Count; i++)
        {
            CmConfig item = allWindows[i];
            if (item is TxtConfig)
            {
                TxtConfig txtConfig = item as TxtConfig;
                AddTextWind(ref orgTextPos, txtConfig);
            }
            else if (item is OptionConfig)
            {
                OptionConfig op = item as OptionConfig;
                AddOption(ref tempOptPos, op);
            }
            else if (item is ActionConfig)
            {
                ActionConfig action = item as ActionConfig;
                AddAction(ref tempRewardPos, action);
            }
            else if (item is SpaceConfig)
            {
                SpaceConfig space = item as SpaceConfig;
                orgTextPos.y -= space.LineCount * space.LineHeight;
            }
        }
    }
コード例 #2
0
        public LogicController(SpaceConfig spaceConfig)
        {
            InitSingleton(this);

            CurrentConfig = spaceConfig;
            IPhysicsUpdater physicsUpdater;

            switch (spaceConfig)
            {
            case ParticleLifeConfig c:
                ParticleController = new ParticleLifeParticleController(spaceConfig);
                physicsUpdater     = new ParticleLifePhysicsUpdater(c);
                break;

            case GravityConfig c:
                ParticleController = new GravityParticleController(spaceConfig);
                physicsUpdater     = new GravityPhysicsUpdater(c);
                break;

            default:
                throw new System.Exception("Unknown config type: " + spaceConfig.GetType().Name);
            }


            SpaceController   = new SpaceController(spaceConfig);
            PhysicsController = new PhysicsController(spaceConfig, physicsUpdater);
            TaskController    = new TaskController(spaceConfig.BatchCount);
        }
コード例 #3
0
    internal void AddSpaceLine(int count)
    {
        SpaceConfig space = new SpaceConfig();

        space.LineCount = count;

        allWindows.Add(space);
    }
コード例 #4
0
        public Window(SpaceConfig spaceConfig)
        {
            this.spaceConfig = spaceConfig;

            isGravityConfig = spaceConfig is GravityConfig;

            defaultFont = new Font("arial.ttf");
            shapes      = new Dictionary <int, CircleShape>();
        }
コード例 #5
0
 public GravityPhysicsUpdater(SpaceConfig config)
 {
     particleDataCache = new Dictionary <int, GravityParticleData>();
 }
コード例 #6
0
 public Space(SpaceConfig config, List <Particle> particles)
 {
     SpaceConfig = config;
     Particles   = particles;
 }
コード例 #7
0
 public GravityParticleController(SpaceConfig spaceConfig) : base(spaceConfig)
 {
     this.spaceConfig = spaceConfig;
 }
 public ParticleLifeParticleController(SpaceConfig spaceConfig) : base(spaceConfig)
 {
     this.spaceConfig = spaceConfig;
 }
コード例 #9
0
 public SpaceController(SpaceConfig spaceConfig)
 {
     this.spaceConfig = spaceConfig;
 }
コード例 #10
0
 public ParticleController(SpaceConfig spaceConfig)
 {
     this.spaceConfig = spaceConfig;
 }
コード例 #11
0
 public PhysicsController(SpaceConfig config, IPhysicsUpdater physicsUpdater)
 {
     this.physicsUpdater = physicsUpdater;
 }