コード例 #1
0
        public void Multipliceras_med_yta(int bredd1, int höjd1, int bredd2, int höjd2, int resultatbredd, int resultathöjd)
        {
            var yta      = new Skärmyta(bredd1, höjd1);
            var annanYta = new Skärmyta(bredd2, höjd2);

            Assert.That(yta.MultipliceratMed(annanYta), Is.EqualTo(new Skärmyta(resultatbredd, resultathöjd)));
        }
コード例 #2
0
        public void Är_likvärdig_med_annan_skärmyta_med_samma_dimensioner(int bredd, int höjd)
        {
            var yta        = new Skärmyta(bredd, höjd);
            var likadanYta = new Skärmyta(bredd, höjd);

            Assert.That(yta.Equals(likadanYta), Is.True);
        }
コード例 #3
0
        public void Har_inte_samma_hashcode_som_vissa_andra_ytor(int bredd, int höjd, int annanBredd, int annanHöjd)
        {
            var yta      = new Skärmyta(bredd, höjd);
            var annanYta = new Skärmyta(annanBredd, annanHöjd);

            Assert.That(yta.GetHashCode(), Is.Not.EqualTo(annanYta.GetHashCode()));
        }
コード例 #4
0
        public void Är_inte_likvärdig_med_annan_skärmyta_med_andra_dimensioner(int bredd, int höjd, int annanBredd, int annanHöjd)
        {
            var yta      = new Skärmyta(bredd, höjd);
            var annanYta = new Skärmyta(annanBredd, annanHöjd);

            Assert.That(yta.Equals(annanYta), Is.False);
        }
コード例 #5
0
        public void Har_samma_hashcode_som_likadan_yta(int bredd, int höjd)
        {
            var yta        = new Skärmyta(bredd, höjd);
            var likadanYta = new Skärmyta(bredd, höjd);

            Assert.That(yta.GetHashCode(), Is.EqualTo(likadanYta.GetHashCode()));
        }
コード例 #6
0
        public void Addera_position_med_yta(int x, int y, int bredd, int höjd, int resultatX, int resultatY)
        {
            var position = new Skärmposition(x, y);
            var yta      = new Skärmyta(bredd, höjd);

            var resultat = position.Plus(yta);

            Assert.That(resultat, Is.EqualTo(new Skärmposition(resultatX, resultatY)));
        }
コード例 #7
0
ファイル: SkärmSpec.cs プロジェクト: Ziretech/neural-vortex
        public void Beräknar_position_för_bricka_centrerad_i_botten(int brickbredd, int brickhöjd, int skärmbredd, int skärmhöjd, int x, int y)
        {
            var brickansDimensioner = new Skärmyta(brickbredd, brickhöjd);
            var skärmensDimensioner = new Skärmyta(skärmbredd, skärmhöjd);
            var brickansPosition    = new Skärmposition(x, y);

            _skärm.ÄndraStorlek(skärmensDimensioner);
            Assert.That(_skärm.PositionCentreradIBotten(brickansDimensioner), Is.EqualTo(brickansPosition));
        }
コード例 #8
0
        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)));
        }
コード例 #9
0
 public Positionskonverterare(Skärmyta brickyta)
 {
     if (brickyta.Bredd < 1)
     {
         throw new ArgumentException($"Bredden för brickyta för positionskonverterare får inte vara mindre än 1 (angiven yta {brickyta.Bredd}x{brickyta.Höjd}).");
     }
     if (brickyta.Höjd < 1)
     {
         throw new ArgumentException($"Höjden för brickyta för positionskonverterare får inte vara mindre än 1 (angiven yta {brickyta.Bredd}x{brickyta.Höjd}).");
     }
     _brickyta = brickyta;
 }
コード例 #10
0
        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);
        }
コード例 #11
0
        public void ÄndraStorlek(int bredd, int höjd)
        {
            var yta = new Skärmyta((int)(bredd / _scaleFactor), (int)(höjd / _scaleFactor));

            _kamera.Dimensioner = yta;
            _skärm.ÄndraStorlek(yta);

            _gl.VäljProjektionmatris();
            _gl.NollställMatris();
            _gl.OrtogonalProjektion(0.0, bredd / _scaleFactor, 0.0, höjd / _scaleFactor, 0.0, 4.0);
            _gl.VäljModellmatris();
            _gl.Visningsområde(0, 0, bredd, höjd);
        }
コード例 #12
0
        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)));
        }
コード例 #13
0
 public Brickfält(Bricka[] definitioner, int[] karta, int kartbredd, Skärmyta brickstorlek)
 {
     _definitioner = definitioner ?? throw new ArgumentException("Brickfält kan inte skapas utan brickdefinition.");
     _karta        = karta ?? throw new ArgumentException("Brickfält kan inte skapas utan karta.");
     _brickstorlek = brickstorlek ?? throw new ArgumentException("Brickfält kan inte skapas utan brickstorlek.");
     if (kartbredd < 1)
     {
         throw new ArgumentException("Brickfält kan inte ha en kartbredd mindre än 1.");
     }
     if (_karta.Count() < 1)
     {
         throw new ArgumentException("Brickfält måste ha en minst ett kartelement.");
     }
     _kartstorlek = new Skärmyta(kartbredd, karta.Count() / kartbredd);
 }
コード例 #14
0
        public void Visar_full_hälsomätare_när_huvudkaraktären_har_full_hälsa()
        {
            var hälsomätarram    = Substitute.For <IGrafik>();
            var hälsomätare      = Substitute.For <IGradvisGrafik>();
            var skärm            = Substitute.For <ISkärm>();
            var dimensioner      = new Skärmyta(1, 2);
            var beräknadPosition = new Skärmposition(3, 4);

            hälsomätarram.Dimensioner.Returns(dimensioner);
            skärm.PositionCentreradIBotten(dimensioner).Returns(beräknadPosition);

            new VisaStatus(hälsomätarram, hälsomätare, new Huvudkaraktär(), skärm)
            .Visa();

            hälsomätare.Received().Visa(beräknadPosition, new Andel(1.0));
        }
コード例 #15
0
        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);
            });
        }
コード例 #16
0
        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);
            });
        }
コード例 #17
0
 public Skärmområde(Skärmyta yta) : base(new Position(0, 0), yta)
 {
 }
コード例 #18
0
 public Bricka(IGrafikkommandon gl, Skärmposition texturPosition, Skärmyta dimensioner)
 {
     _gl             = gl ?? throw new ArgumentException("Bricka kan inte skapas utan grafikkommando.");
     _texturPosition = texturPosition ?? throw new ArgumentException("Bricka kan inte skapas utan texturposition.");
     Dimensioner     = dimensioner ?? throw new ArgumentException("Bricka kan inte skapas utan dimensioner.");
 }
コード例 #19
0
 public Skärmområde(Skärmposition position, Skärmyta yta) : base(position, yta)
 {
 }
コード例 #20
0
        public void Har_angiven_bredd()
        {
            var yta = new Skärmyta(2, 5);

            Assert.That(yta.Bredd, Is.EqualTo(2));
        }
コード例 #21
0
ファイル: Skärm.cs プロジェクト: Ziretech/neural-vortex
 public void ÄndraStorlek(Skärmyta skärmyta)
 {
     _skärmyta = skärmyta;
 }
コード例 #22
0
ファイル: Skärm.cs プロジェクト: Ziretech/neural-vortex
        public Skärmposition PositionCentreradIBotten(Skärmyta dimensioner)
        {
            int x = (_skärmyta.Bredd - dimensioner.Bredd) / 2;

            return(new Skärmposition(x, 0));
        }
コード例 #23
0
        public void Har_angiven_höjd()
        {
            var yta = new Skärmyta(2, 5);

            Assert.That(yta.Höjd, Is.EqualTo(5));
        }