AGB  ·  Datenschutz  ·  Impressum  







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

projekt "reflect it"

Ein Thema von deinemudda · begonnen am 21. Feb 2006 · letzter Beitrag vom 22. Feb 2006
Antwort Antwort
deinemudda

Registriert seit: 21. Feb 2006
1 Beiträge
 
#1

projekt "reflect it"

  Alt 21. Feb 2006, 21:31
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:
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;
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.

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]
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: projekt "reflect it"

  Alt 22. Feb 2006, 08:01
Herzlich willkommen in der Delphi-PRAXiS.

Zitat von deinemudda:
nur das setzen von balken funktioniert nicht
wenn alles andere nach deiner Aussage funktioniert, dann solltest du genau den Code zeigen, der die Balken setzt. Der von dir gezeigte Code kann noch ein wenig aufgeräumt werden, aber da ich die Spielidee nicht kenne, kann ich auch keinen konzeptionellen Fehler sehen.

Delphi-Quellcode:
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;
Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort


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 15:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz