HI,
Zitat von
Fabbe:
Und wo wir schon dabei sind: Wie kann ich mit Canvas abfragen was für eine Farbe an einer bestimmten Stelle ist?
Das gebt mit Canvas.Pixel
s[X, Y] mit dem Rückgabewert TColor.
Zitat von
Fabbe:
Delphi-Quellcode:
if runter=1 then {nichts, da es in dem ersten durchlauf nichts zu löschen gibt} else rectangle(x,y,x1,y2); {löschen des voherigen Blockes, also der vorherigen Position}
Brush.color:=clmaroon; {ändern der Farbe}
rectangle(x,y1,x1,y3);{neue Position}
Ich werd bald wahnsinnig...
wenn diese doofe Tastenerkennung gehen würde wäre der rest schon viel einfacher
Hier feht bei code glaub ich ein begin und end, da der neue Stein ja nur dann gezeichnet werden soll, wenn runter <> 1.
Ich glaub, du weist nicht wirklich viel mit
type TTaste = (ttNone,ttLeft,ttRight,ttDown,ttTurn); anzufangen, oder?
Ftaste kannst du im Timer-Event wie eine normale Variable auswerten. Die einzige Einschränkungbesteht lediglich darin, dass du die definierten Werte (ttNone, ttLeft, ...) verwenden musst. Das ganze geht auch mit Case.
Beispiel:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: Tobject);
begin
case FTaste of
ttNone: ; // nix (lass dir was einfallen oder lass es weg)
ttLeft: Stein_nach_links;
ttRight: Stein_nach_rechts;
ttDown: Stein_nach_unten;
ttUp: Stein_drehen;
end;
fTaste := ttNone;
end;
Es wäre zu empfehlen, wenn du jede Steinbewegung in eine extra Prozedur auslagerst, um den Code übersichtlich zu halten. Dort kannst du dann auch die Gültigkeitsabfrage deines Zuges machen (und Zeichnen)
rollstuhlfahrer
Hoffe doch mal, dass es verständlich ist.
Nachtrag:
Zitat von
Fabbe:
Könnts mir ja gerne Versuchen zu erklären
Hab ich versucht