AGB  ·  Datenschutz  ·  Impressum  







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

Tetris erstellen - wie ?

Ein Thema von Destroxi · begonnen am 3. Nov 2011 · letzter Beitrag vom 6. Nov 2011
 
Destroxi

Registriert seit: 29. Okt 2011
55 Beiträge
 
Delphi 7 Enterprise
 
#18

AW: Tetris erstellen - wie ?

  Alt 4. Nov 2011, 11:58
Zitat:
Aber wofür benutzt du ALengthX noch?
Damit ich ohne viele Abfragen die Mitte der X-Achse bestimmen kann.
Zitat:
... sondern darüber was wann wo gezeichnet werden müsste!
... solltest du dir ein ganz einfaches Ausgabe-Modul bauen.
Werd ich machen
:: Hab ich gemacht, rausgekommen sind 2 Fehler:
- FormBlocks Y-Wert muss "BlockY-i2" gerechnet werden
- Fehler im FormBlocks format, da im Textdokument steht
Code:
x
x
xx
aber auf der Form ein Platz zuviel zischen dem untersten Block und dem abzweigendem Block (1 weiter rechts); habe aber noch keine Lösung

Jetziger Code:
Delphi-Quellcode:
For i1 := 0 to 3 do s[i1] := '';
 For i1 := 0 to 3 do // Block aussehen angeben
  For i2 := 0 to 3 do
   If ObjType[FallingObject.aType].VMatrix[i1][i2] then
   begin
    s[i2] := s[i2] + 'x';
    FormBlocks
    [Round(FallingObject.pX+i1)]
    [Round(FallingObject.pY-i2)]
    := 1;
   end;
 For i1 := 0 to 3 do sl.Add(s[i1]);
 sl.SaveToFile('C:\VMatrix2.txt');
 sl.Free;
:: Fehler liegt in der Größer der Blöcke; bei Größer 30x30 passt alles; Ich gucke mal was da falsch ist...
:: Fehler gefunden: Es muss einzeln gerundet werden, also:
Delphi-Quellcode:
FormBlocks
    [Round(FallingObject.pX)+Round(i1)]
    [Round(FallingObject.pY)-Round(i2)]
    := 1;
Vielen Dank, an alle die mir bis jetzt mit der Vorgehensweise geholfen haben
Werde jetzt mich ans bewegen der Objekte machen...
:: So... Jez hab ich kleines bisschen gemacht, funzt auch, nur dass der Block anhält wenn da schon einer is funzt net...
:: Der 1. Code war mist xD ^^ hier ist mein neuer Code (Timer):
Delphi-Quellcode:
// Bewegung
procedure TForm1.tiBewegungTimer(Sender: TObject);
procedure NewBlock;
var
 i1, i2: Integer;
begin
 FallingObject.aType := 2;
 FallingObject.pX := (SizeX/2-BlockSizeX*ObjType[FallingObject.aType].ALengthX/2)/BlockSizeX;
 FallingObject.pY := (SizeY-50)/BlockSizeY;
 For i1 := 0 to 3 do // Block aussehen angeben
  For i2 := 0 to 3 do
   If ObjType[FallingObject.aType].VMatrix[i1][i2] then
    FormBlocks
    [Round(FallingObject.pX)+i1]
    [Round(FallingObject.pY)-i2]
    := 1;
end;
const
 Verkleinerung = 1;
begin
 If FallingObject.pY <= ObjType[FallingObject.aType].ALengthY then
 begin
  FallingObject.pY := ObjType[FallingObject.aType].ALengthY;
  SetFormBlockColors;
  NewBlock;
 end
 {else if FormBlocks[Round(FallingObject.pX)]
                    [Round(FallingObject.pY -Verkleinerung)]
                    <> 0 then
      begin
        SetFormBlockColors;
        NewBlock;
       end}
 // FUNZT NIT!!!
 else
 begin
  FallingObject.pY := FallingObject.pY - Verkleinerung;
  SetFormBlockColors;
 end;
end;
Bloß wie kriege ich's hin, dass das funzt, wo steht "FUNZT NIT!!!"?
Also, mit welchem "Gedanken"? ^^

Mfg, Destroxi

Geändert von Destroxi ( 4. Nov 2011 um 16:07 Uhr)
  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 16:39 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