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)); }
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); }
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))); }