public void VisaBilder_borde_inte_generera_visning_för_spelvärld_utan_bilder()
        {
            var       spelvärld = new Spelvärld();
            Visningar visningar = new VisaBilder(spelvärld).HämtaVisningar();

            Assert.That(visningar.AntalVisningar(), Is.EqualTo(0));
        }
        public void VisaSpelet_borde_inte_visa_någonting_när_spelvärlden_är_tom()
        {
            var ritareMock = new Mock <IRitare>();
            var spelvärld  = new Spelvärld();

            VisaSpelet(ritareMock.Object, spelvärld).Visa();
            ritareMock.Verify(ritare => ritare.KopieraBildTillSkärmen(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>()), Times.Never);
        }
        private ISpelvärld SkapaSpelvärldMedKaraktärenVid(Position position)
        {
            var spelvärld      = new Spelvärld();
            var spelarkaraktär = new Objekt {
                Position = position
            };

            spelvärld.LäggTill(spelarkaraktär, Objekttyp.Spelarkaraktären);
            return(spelvärld);
        }
        private Spelvärld SkapaSpelvärld(params Objekt[] lista)
        {
            var spelvärld = new Spelvärld();

            foreach (var objekt in lista)
            {
                spelvärld.LäggTill(objekt);
            }
            return(spelvärld);
        }
        public void VisaBilder_borde_generera_visning_för_spelvärld_med_en_bild()
        {
            var spelvärld = new Spelvärld();

            spelvärld.LäggTill(new Objekt {
                Position = new Position(1, 2, 0), Bild = new Bild(new Bildmängdskoordinat(12, 34), new Bildstorlek(56, 78))
            });
            Visningar visningar = new VisaBilder(spelvärld).HämtaVisningar();

            Assert.That(visningar.AntalVisningar(), Is.EqualTo(1));
            Assert.That(visningar.HämtaVisning(0), Is.EqualTo(new Visning(1, 2, 0, 12, 34, 56, 78)));
        }
        public void VisaBilder_borde_generera_visningar_för_spelvärld_med_1000_bilder()
        {
            var spelvärld = new Spelvärld();

            for (var i = 0; i < 1000; i++)
            {
                spelvärld.LäggTill(new Objekt {
                    Position = new Position(1, 2, 0), Bild = new Bild(new Bildmängdskoordinat(12, 34), new Bildstorlek(56, 78))
                });
            }
            Visningar visningar = new VisaBilder(spelvärld).HämtaVisningar();

            Assert.That(visningar.AntalVisningar(), Is.EqualTo(1000));
        }
示例#7
0
        private static ISpelvärld SkapaSpelvärld()
        {
            var tile = new Bildstorlek(32, 32);

            var väggar = new int[][]
            {
                new int[] { 1, 1, 1, 1, 1 },
                new int[] { 1, 2, 2, 2, 1 },
                new int[] { 1, 2, 2, 2, 1 },
                new int[] { 1, 2, 2, 2, 1 },
                new int[] { 1, 1, 1, 1, 1 }
            };

            var spelvärld = new Spelvärld();

            var spelarkaraktär = new Objekt {
                Position = new Position(3 * 32, 3 * 32, 1), Bild = new Bild(new Bildmängdskoordinat(0, 0), new Bildstorlek(32, 32))
            };

            spelvärld.LäggTill(spelarkaraktär, Objekttyp.Spelarkaraktären);

            for (var y = 0; y < 5; y++)
            {
                for (var x = 0; x < 5; x++)
                {
                    if (väggar[x][y] == 1)
                    {
                        spelvärld.LäggTill(new Objekt {
                            Position = new Position(x * 32, y * 32, 0), Bild = new Bild(new Bildmängdskoordinat(1 * 32, 3 * 32), tile)
                        });
                    }
                    else if (väggar[x][y] == 2)
                    {
                        spelvärld.LäggTill(new Objekt {
                            Position = new Position(x * 32, y * 32, 0), Bild = new Bild(new Bildmängdskoordinat(0 * 32, 3 * 32), tile)
                        });
                    }
                }
            }


            return(spelvärld);
        }
示例#8
0
        private void Initiera()
        {
            var tileset = new BildWrapper("Images/tiles.png");

            var inställningar = new SpelfönsterInställningar
            {
                Fullskärm   = true,
                DoldaKanter = true,
                VSync       = true,
                Bredd       = 16 * 32,
                Höjd        = 16 * 32
            };
            var tangentmappning = new Dictionary <Key, Tangent> {
                { Key.Right, Tangent.Höger },
                { Key.Left, Tangent.Vänster },
                { Key.Up, Tangent.Upp },
                { Key.Down, Tangent.Ner },
                { Key.Escape, Tangent.Escape }
            };

            _fönster = new Spelfönster(tangentmappning, inställningar);
            var spelvärld             = new Spelvärld();
            var grafikkommandon       = new GLWrapper();
            var brickstorlek          = new Rektangel(16, 16);
            var kamera                = new Kamera(new Skärmyta(100, 100));
            var positionskonverterare = new Positionskonverterare(new Skärmyta(16, 16));

            var radioaktivInsektBricka = new Bricka(grafikkommandon, new Skärmposition(5 * 16, 0), new Skärmyta(16, 16));
            var tomBricka           = new Bricka(grafikkommandon, new Skärmposition(15 * 16, 15 * 16), new Skärmyta(16, 16));
            var takBricka           = new Bricka(grafikkommandon, new Skärmposition(2 * 16, 1 * 16), new Skärmyta(16, 16));
            var kabel1Bricka        = new Bricka(grafikkommandon, new Skärmposition(3 * 16, 1 * 16), new Skärmyta(16, 16));
            var kabel2Bricka        = new Bricka(grafikkommandon, new Skärmposition(4 * 16, 1 * 16), new Skärmyta(16, 16));
            var takMedRevaBricka    = new Bricka(grafikkommandon, new Skärmposition(1 * 16, 1 * 16), new Skärmyta(16, 16));
            var ammoBricka          = new Bricka(grafikkommandon, new Skärmposition(0 * 16, 1 * 16), new Skärmyta(16, 16));
            var huvudkaraktärBricka = new Bricka(grafikkommandon, new Skärmposition(0 * 16, 0 * 16), new Skärmyta(16, 16));
            var medicinBricka       = new Bricka(grafikkommandon, new Skärmposition(3 * 16, 2 * 16), new Skärmyta(16, 16));
            var paradisBricka       = new Bricka(grafikkommandon, new Skärmposition(3 * 16, 3 * 16), new Skärmyta(16, 16));
            var hälsomätarram       = new Bricka(grafikkommandon, new Skärmposition(80, 32), new Skärmyta(80, 16));
            var hälsomätargrönt     = new Bricka(grafikkommandon, new Skärmposition(80, 48), new Skärmyta(80, 16));

            spelvärld.Huvudkaraktär = new Huvudkaraktär(4)
            {
                Position = new Spelvärldsposition(1, 1),
                Grafik   = huvudkaraktärBricka
            };

            var skärm = new Skärm();

            var ucVisaSpelvärld = new VisaSpelvärld(spelvärld, positionskonverterare);
            var ucVisaStatus    = new VisaStatus(hälsomätarram, hälsomätargrönt, spelvärld.Huvudkaraktär, skärm);

            var karta       = SkapaKarta();
            var hinderlista = new[] { 0 };
            var hinderkarta = karta.SkapaHinderkarta(hinderlista);

            var ucFlyttaVarelser      = new FlyttaVarelser(spelvärld, hinderkarta);
            var ucUtdelaSkada         = new UtdelaSkada(spelvärld);
            var ucDödaKritisktSkadade = new DödaKritisktSkadade(spelvärld);
            var ucUppdateraSpelvärld  = new UppdateraSpelvärld(ucFlyttaVarelser, ucUtdelaSkada, ucDödaKritisktSkadade);
            var openTKHanterare       = new GrafikHändelser(grafikkommandon, tileset, _fönster, ucVisaSpelvärld, kamera, ucVisaStatus, skärm);
            var kontrollhändelser     = new KontrollHändelser(ucUppdateraSpelvärld, _fönster);

            _fönster.Laddare(openTKHanterare);
            _fönster.StorleksÄndrare(openTKHanterare);
            _fönster.Uppdaterare(openTKHanterare);
            _fönster.Visare(openTKHanterare);
            _fönster.Tangentbordsmottagare(kontrollhändelser);

            var omgivningensBrickor = new Bricka[] {
                tomBricka,
                takBricka,
                kabel1Bricka,
                kabel2Bricka,
                takMedRevaBricka,
                paradisBricka
            };

            spelvärld.MiljöGrafik = new Brickfält(omgivningensBrickor, karta.Indexar, karta.Bredd, new Skärmyta(16, 16));

            var slumpgenerator = new Random();
            var väderstrecken  = new List <Spelvärldsposition>
            {
                new Spelvärldsposition(1, 0),
                new Spelvärldsposition(0, 1),
                new Spelvärldsposition(-1, 0),
                new Spelvärldsposition(0, -1)
            };

            var irraRunt = new SekvensFörflyttning(väderstrecken, new SekvensFörflyttning.SlumpmässigIndexgenerator(slumpgenerator));

            spelvärld.Fienden = new List <Fiende>
            {
                new Fiende {
                    Position           = new Spelvärldsposition(5, 5),
                    Grafik             = radioaktivInsektBricka,
                    Riktningsgenerator = irraRunt
                },
                new Fiende {
                    Position           = new Spelvärldsposition(13, 5),
                    Grafik             = radioaktivInsektBricka,
                    Riktningsgenerator = irraRunt
                }
            };
        }
 private IVisaSpelet VisaSpelet(IRitare ritare, Spelvärld spelvärld, VisaBilder visaBilder = null)
 {
     return(new VisaSpelet(ritare, spelvärld, visaBilder ?? new VisaBilder(spelvärld)));
 }