public void Har_dimensioner() { var glMock = Substitute.For <IGrafikkommandon>(); var bricka = new Bricka(glMock, new Skärmposition(0, 0), new Skärmyta(16, 16)); Assert.That(bricka.Dimensioner, Is.EqualTo(new Skärmyta(16, 16))); }
public void Visar_inte_bilden_om_delen_som_ska_visas_är_mindre_än_1() { var gl = Substitute.For <IGrafikkommandon>(); var bricka = new Bricka(gl, new Skärmposition(0, 0), new Skärmyta(16, 16)); bricka.Visa(new Skärmposition(0, 0), new Andel(1.0 / 16.0 - 0.01)); gl.DidNotReceive().DefinieraFyrkanter(); }
public void Visar_bilden_klippt_enligt_andel(double procent, int maxBredd, int bredd) { var gl = Substitute.For <IGrafikkommandon>(); var bricka = new Bricka(gl, new Skärmposition(0, 0), new Skärmyta(maxBredd, 16)); bricka.Visa(new Skärmposition(0, 0), new Andel(procent)); gl.Received().KopieraTexturrektangelTillRityta(0, 0, 0, 0, bredd, 16); }
public void Visar_bild_med_rätt_dimensioner(int bredd, int höjd) { var gl = Substitute.For <IGrafikkommandon>(); var bricka = new Bricka(gl, new Skärmposition(0, 0), new Skärmyta(bredd, höjd)); bricka.Visa(new Skärmposition(0, 0)); gl.Received().KopieraTexturrektangelTillRityta(0, 0, 0, 0, bredd, höjd); }
public void Visar_bild_på_rätt_skärmposition(int x, int y) { var gl = Substitute.For <IGrafikkommandon>(); var bricka = new Bricka(gl, new Skärmposition(0, 0), new Skärmyta(1, 1)); bricka.Visa(new Skärmposition(x, y)); gl.Received().KopieraTexturrektangelTillRityta(0, 0, x, y, 1, 1); }
public void Har_samma_dimensioner_som_rutan_när_det_bara_är_en_ruta(int x, int y) { var gl = Substitute.For <IGrafikkommandon>(); var brickstorlek = new Skärmyta(x, y); var definitioner = new Bricka[] { new Bricka(gl, new Skärmposition(0, 0), brickstorlek) }; var fält = new Brickfält(definitioner, new int[] { 0 }, 1, brickstorlek); Assert.That(fält.Dimensioner, Is.EqualTo(new Skärmyta(x, y))); }
public void Visa_enda_brickan_i_1x1_brickfält_på_position(int x, int y) { var gl = Substitute.For <IGrafikkommandon>(); var brickstorlek = new Skärmyta(1, 1); var definitioner = new Bricka[] { new Bricka(gl, new Skärmposition(0, 0), brickstorlek) }; var karta = new int[] { 0 }; var fält = new Brickfält(definitioner, karta, 1, brickstorlek); fält.Visa(new Skärmposition(x, y)); gl.Received().KopieraTexturrektangelTillRityta(0, 0, x, y, 1, 1); }
public void Har_samma_dimensioner_som_rutans_storlek_multiplicerad_med_kartans_dimensioner( int brickbredd, int brickhöjd, int antal, int kartbredd, int fältbredd, int fälthöjd) { var gl = Substitute.For <IGrafikkommandon>(); var brickstorlek = new Skärmyta(brickbredd, brickhöjd); var definitioner = new Bricka[] { new Bricka(gl, new Skärmposition(0, 0), brickstorlek) }; var karta = new int[antal]; var fält = new Brickfält(definitioner, karta, kartbredd, brickstorlek); Assert.That(fält.Dimensioner, Is.EqualTo(new Skärmyta(fältbredd, fälthöjd))); }
public void Gör_undantag_för_att_skapas_med_karta_utan_element() { var definition = new Bricka[] { new Bricka(Substitute.For <IGrafikkommandon>(), new Skärmposition(0, 0), new Skärmyta(1, 1)) }; try { new Brickfält(definition, new int[0], 1, new Skärmyta(4, 4)); Assert.Fail("Inget undantag gjordes."); } catch (ArgumentException undantag) { Assert.That(undantag.Message.ToLower(), Does.Contain("kartelement")); } }
public void Gör_undantag_för_att_skapas_utan_brickdefinition(string parameter) { var definition = new Bricka[] { new Bricka(Substitute.For <IGrafikkommandon>(), new Skärmposition(0, 0), new Skärmyta(1, 1)) }; try { new Brickfält( parameter == "brickdefinition" ? null : definition, parameter == "karta" ? null : new int[1], 1, parameter == "brickstorlek" ? null : new Skärmyta(4, 4)); Assert.Fail("Inget undantag gjordes."); } catch (ArgumentException undantag) { Assert.That(undantag.Message.ToLower(), Does.Contain(parameter)); } }
public void Visar_två_brickor_i_1x2_brickfält() { var gl = Substitute.For <IGrafikkommandon>(); var brickstorlek = new Skärmyta(2, 2); var definitioner = new Bricka[] { new Bricka(gl, new Skärmposition(1, 2), brickstorlek), new Bricka(gl, new Skärmposition(3, 4), brickstorlek) }; var karta = new int[] { 0, 1 }; var fält = new Brickfält(definitioner, karta, 1, brickstorlek); fält.Visa(new Skärmposition(0, 0)); Received.InOrder(() => { gl.KopieraTexturrektangelTillRityta(1, 2, 0, 0, 2, 2); gl.KopieraTexturrektangelTillRityta(3, 4, 0, 2, 2, 2); }); }
public void Visar_brickfält_där_typ_bestäms_av_kartan() { var gl = Substitute.For <IGrafikkommandon>(); var definitioner = new Bricka[] { new Bricka(gl, new Skärmposition(4 * 1, 4 * 1), new Skärmyta(4, 4)), new Bricka(gl, new Skärmposition(4 * 2, 4 * 1), new Skärmyta(4, 4)) }; var brickstorlek = new Skärmyta(4, 4); var kartbredd = 2; var karta = new int[] { 0, 1 }; var fält = new Brickfält(definitioner, karta, kartbredd, brickstorlek); fält.Visa(new Skärmposition(0, 0)); Received.InOrder(() => { gl.KopieraTexturrektangelTillRityta(4, 4, 0, 0, 4, 4); gl.KopieraTexturrektangelTillRityta(8, 4, 4, 0, 4, 4); }); }
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 } }; }