예제 #1
0
        /// <summary>
        /// Wird aufgerufen, wenn auf den Menüpunkt "Neues Spiel" geklickt wird
        /// </summary>
        private void miNeuesSpiel_Click(object sender, EventArgs e)
        {
            if (this.a.isRunning)
            {
                bool h = this.a.isPause;
                this.a.isPause = true;
                DialogResult res = MessageBox.Show(
                    this, "Willst du das laufende Spiel wirklich beenden?", this.Text, MessageBoxButtons.YesNo);
                this.a.isPause = h;
                if (res == System.Windows.Forms.DialogResult.No)
                {
                    return;
                }
            }
            TSegmentBase.stopAnimation();
            this.a.stopGame();

            this.Display.reset();
            this.Data.reset();
            this.a = new TArena(this.Display, this.Data);
            this.Segment.registerArena(this.a);
            this.myArena = new TVisualArena(a, this.paTetris, this.Data, this.Segment);
            this.paTetris.Refresh();
            this.paNext.Refresh();
        }
예제 #2
0
        /// <summary>
        /// Standard-Konstruktor
        /// </summary>
        public foMain()
        {
            InitializeComponent();

            this.Data    = new TSharedData();
            this.Display = new TDisplayFoMain(this, this.Data);
            this.a       = new TArena(this.Display, this.Data);
            this.Segment = new TVisualSegment(this.paTetris);
            this.Segment.registerArena(this.a);
            this.myArena = new TVisualArena(a, this.paTetris, this.Data, this.Segment);
            TSegmentBase.registerForm(this);
        }
예제 #3
0
 /// <summary>
 /// Zeichnet das Teil mit allen seinen Segmenten
 /// </summary>
 /// <param name="g">Graphics-Objekt zum Zeichnen</param>
 /// <param name="t">Das zu zeichnende Teil</param>
 /// <param name="c">Die Farbe des Teils</param>
 /// <param name="segment">Das Segment-Objekt, mit dem gezeichnet wird</param>
 public static void drawTeil(Graphics g, TTeil t, Color c, TSegmentBase segment)
 {
     for (int i = 0; i < TTeil.MaxBreite; i++)
     {
         for (int k = 0; k < TTeil.MaxHoehe; k++)
         {
             if (t.hasSegment(i, k))
             {
                 int positionSektor  = (t.PositionSektor + i) % TArena.AnzahlSektoren;
                 int positionSchicht = t.PositionSchicht - k;
                 segment.drawSegment(positionSektor, positionSchicht, g, c);
             }
         }
     }
 }
예제 #4
0
 /// <summary>
 /// Löscht das Teil und alle seine Segmente
 /// </summary>
 /// <param name="g">Graphics-Objekt zum Zeichnen</param>
 /// <param name="t">Das zu zeichnende Teil</param>
 /// <param name="backColor">Hintergrundfarbe des Panels</param>
 /// <param name="arena">Verweis auf die Arena</param>
 /// <param name="segment">Verweis auf das Segment zum Zeichnen</param>
 public static void deleteTeil(Graphics g, TTeil t, Color backColor, TVisualArena arena, TSegmentBase segment)
 {
     for (int i = 0; i < TTeil.MaxBreite; i++)
     {
         for (int k = 0; k < TTeil.MaxHoehe; k++)
         {
             if (t.hasSegment(i, k))
             {
                 int positionSektor  = (t.PositionSektor + i) % TArena.AnzahlSektoren;
                 int positionSchicht = t.PositionSchicht - k;
                 segment.deleteSegment(positionSektor, positionSchicht, g, backColor);
                 arena.repairNachbarn(positionSektor, positionSchicht, g);
             }
         }
     }
 }
예제 #5
0
 /// <summary>
 /// Wird aufgerufen, wenn das Fenster geschlossen wird
 /// </summary>
 private void foMain_FormClosed(object sender, FormClosedEventArgs e)
 {
     TSegmentBase.stopAnimation();
     this.a.stopGame();
 }