![]() |
projekt "reflect it"
hallo leute
ich soll für info das spiel "reflect it" programmieren. für windows heißt das "a whole new ball game". ich bin soweit auch fertig, nur das setzen von balken funktioniert nicht und ich weiß einfach nicht woran es liegen könnte. vor allem weil der keinen fehler anzeigt. ich zeig euch mal einen ausschnitt aus meinem quelltext.
Delphi-Quellcode:
das ist die prozedur mit der die balken gesetzt werden sollen. die prozedur pruefesetzbarkeit schaut nur ob das feld leer ist und man somit einen stein draufsetzen kann.
procedure TfrmReflect.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); var x2,y2: integer; begin x2:= X div 20; //hier findet er heraus auf welches feld geklickt wurde. jedes feld ist 20x20 pixel groß y2:= Y div 20; PruefeSetzbarkeit(x2,y2); if setzbar= true then begin if balken1= true then begin //ballken1 und balken2 werden true sobald der benutzer auf einen dafür vorgesehnen button klickt sf[x2,y2]:= 10; //der wert steht für den einen balken und 11 für den anderen ZeichneBalken1(x2,y2); //an dieser prozedur kann es nicht liegen, da das zeichnen reibungslos funktioniert balken1:= false; end; if balken2= true then begin sf[x2,y2]:= 11; ZeichneBalken2(x2,y2); balken2:= false; end; end; end;
Delphi-Quellcode:
procedure TfrmReflect.PruefeSetzbarkeit(x,y: integer);
begin if sf[x,y]= 0 then //wenn sf= 0 heißt das, dass das feld leer ist setzbar:= true else setzbar:= false; end; ich hoffe ihr findet den fehler. schon mal im vorraus danke an alle die mir weiterhelfen wollen [edit=alcaeus]Delphi-Tags eingefuegt. Mfg, alcaeus[/edit] |
Re: projekt "reflect it"
Herzlich willkommen in der Delphi-PRAXiS.
Zitat:
Delphi-Quellcode:
Grüße vom marabu
const
SF_LEER = 0; SF_BALKEN_1 = 10; SF_BALKEN_2 = 11; function TfrmReflect.FeldIstLeer(iSpalte, iZeile: Integer): Boolean; begin Result := SF[iSpalte, iZeile] = SF_LEER; end; function TfrmReflect.BestimmeFeld(X, Y: Integer): TPoint; begin Result.X := X div 20; Result.Y := Y div 20; end; procedure TfrmReflect.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var p: TPoint; begin p := BestimmeFeld(X, Y); if FeldIstLeer(p) then begin if Balken1 then begin SF[p.x, p.y] := SF_BALKEN_1; ZeichneBalken1(p.x, p.y); Balken1 := False; end; if Balken2 then begin SF[p.x, p.y] := SF_BALKEN_2; ZeichneBalken2(p.x, p.y); Balken2 := False; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 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