AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tetris rotation

Ein Thema von pustekuchen · begonnen am 2. Mär 2011 · letzter Beitrag vom 3. Mär 2011
 
Benutzerbild von pustekuchen
pustekuchen

Registriert seit: 27. Aug 2010
268 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Tetris rotation

  Alt 3. Mär 2011, 09:31
Hallo,

hab das ganze jetzt mal für den ' ---- '-Stein angepasst.
Nur ein Problem besteht jetzt noch, wenn ich öfters hintereinander nach rechts drehe Bewegt der Spielstein sich nach rechts.
Bei der Linksdrehung bleibt alles okay.

Hier mal die jetzige Methode:
Code:
public override void rotate(RotateDirection rotDir)
        { 
            Point AB;
            int Dimension = 5;

            Mittelpunkt = (Fields[2].X > Fields[1].X || Fields[2].Y > Fields[1].Y) ? Fields[2] : Fields[1];

            bool[] fieldIsRefreshed = {false,false,false,false};
            for (int i = Mittelpunkt.X - 2; i < Mittelpunkt.X - 2 + Dimension - 1; i++)
            {
                for (int j = Mittelpunkt.Y - 2; j < Mittelpunkt.Y - 2 + Dimension - 1; j++)
                {
                    for (int k = 0; k < Fields.Length ; k++)
                    {
                        if (!fieldIsRefreshed[k])
                        {
                            if (i == Fields[k].X && j == Fields[k].Y)
                            {
                                AB = new Point(i - Mittelpunkt.X, j - Mittelpunkt.Y);
                                AB = (rotDir == RotateDirection.Right) ? AB = new Point(-AB.Y, AB.X) : new Point(AB.Y, -AB.X);
                                Fields[k] = new Point(AB.X + Mittelpunkt.X, AB.Y + Mittelpunkt.Y);
                                fieldIsRefreshed[k] = true;
                            }
                        }
                    }
                }
            }
        }
Jetzt nur noch verallgemeinern für die anderen Spielsteine und dann sollte es klappen
Delphi programming is awesome.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz