Exemple #1
0
        public static void Main()
        {
            var world = new World(9);

            var seed = world.Generation(new List <Coordinate>()
            {
                new Coordinate(1, 2),
                new Coordinate(2, 2),
                new Coordinate(3, 2),

                new Coordinate(4, 5),
                new Coordinate(5, 5),
                new Coordinate(6, 5),

                new Coordinate(0, 6),
                new Coordinate(0, 7),
                new Coordinate(1, 6),
                new Coordinate(1, 7),
            }).ToList().AsReadOnly();


            var queue = new WorldQueue <IReadOnlyCollection <Coordinate> >();

            var sourceToken = new CancellationTokenSource();

            queue.PerformLogicAsync(sourceToken.Token, (newGeneration) => world.Generation(newGeneration).ToList().AsReadOnly(), seed);

            // The 'using' idiom guarantees proper resource cleanup.
            // We request 30 UpdateFrame events per second, and unlimited
            // RenderFrame events (as fast as the computer can handle).
            using (Game game = new Game(queue))
            {
                game.Run(30.0);
            }
            sourceToken.Cancel();
        }
Exemple #2
0
 internal Game(WorldQueue <IReadOnlyCollection <Coordinate> > worldQueue)
     : base(700, 600, GraphicsMode.Default, "OpenTK Quick Start Sample")
 {
     VSync       = VSyncMode.On;
     _worldQueue = worldQueue;
 }