コード例 #1
0
            public void Run()
            {
                System.Threading.Thread.CurrentThread.Name = "Producer";

                int max = 10;

                for (int i = 0; i < max; i++)
                {
                    System.Threading.Thread.Sleep(Random.Next(100, 150));
                    ProduceEvent?.Invoke(i, (i == (max - 1)));
                    Console.WriteLine("Data {0} produced successfully.", i);
                }
            }
コード例 #2
0
ファイル: GameMaster.cs プロジェクト: Ostblock/Ostzone
        protected virtual void CreateHeadQuaters(IEnumerable<IArtificialIntelligence> artificialIntelligences)
        {
            var startOffset = 30;
            var aiList = artificialIntelligences.ToList();
            foreach (var artificialIntelligence in aiList) {
                Vector2 position = Vector2.Zero;

                var hq = new HeadQuater();
                var indexOf = aiList.IndexOf(artificialIntelligence);
                if(indexOf == 0)
                    position = new Vector2(startOffset, startOffset);

                if (indexOf == 1)
                    position = new Vector2(GameBoard.GetBoundings().X - hq.Size.X - startOffset , startOffset);
                if (indexOf == 2)
                    position = new Vector2(GameBoard.GetBoundings().X - hq.Size.X - startOffset, GameBoard.GetBoundings().Y - hq.Size.Y - startOffset);
                if (indexOf == 3)
                    position = new Vector2(startOffset, GameBoard.GetBoundings().Y - hq.Size.Y - startOffset);
                var headQuaterEvent = new ProduceEvent<HeadQuater>(artificialIntelligence.Id, artificialIntelligence.Id, position.X,position.Y);
                Agent.Enqueue(headQuaterEvent);
            }
        }