Ocena i poprawa kodu

0

Witam!
Uprzedzam, że to moja pierwsza gra, więc proszę o wyrozumiałość :) Prosiłbym Was tylko o zajrzenie do kodu i zobaczenia, czy można byłoby coś poprawić lub z czym mogę mieć problem w przyszłości. Nadmienię tylko, że jest to gra w stylu Bombermana. Z góry dziękuje za pomoc i fatygę.

0

Ja chyba przeszedłem ją od razu, bo pokazał mi się wynik:

LudzikError.png

Co wygrałem?

0

Nie mogę tego uruchomić, więc tylko popatrzę trochę na kod:

type TGracz = class(TImageSprite)
  public
    xpos,ypos: integer; // współrzędne kafelków potrzebne do poprawnego ruchu
    Function CanMoveX:boolean;
    Function CanMoveY:boolean;
    procedure DoMove(MoveCount: Integer); override;
    //procedure DoCollision(Sprite: TSprite; var Done: Boolean); override;

end;

type TGracz_2 = class (TImageSprite)
  public
    xpos_2, ypos_2: integer;
    Function CanMoveX_2:boolean;
    Function CanMoveY_2:boolean;
    procedure DoMove(MoveCount: Integer); override;
end;

Dwa takie same typy?
Dodatkowo z nazwami zakończonymi na "_2"?
Wiesz do czego służą klasy i jak się nimi posługiwać?

pic,pic_2,pic_3,pic_4:TBitmap;

Tablica...

  ShowMessage('szerokosc ekranu '+Inttostr(GetSystemMetrics(SM_CXSCREEN)));
  ShowMessage('długosc ekranu '+Inttostr(GetSystemMetrics(SM_CYSCREEN)));

  ShowMessage(Inttostr(x1));
  ShowMessage(Inttostr(y1));

To jakaś przedpotopowa wersja debuggera czy co?

var a,b:smallint;
    a2,b2: smallint;

Nigdzie w kodzie na zauważyłem, abyś jednocześnie korzystał i z a oraz a2, czy b oraz b2.

If ypos mod 2=1 then

Chyba tak jest nieco szybciej:

if (ypos and 1)=0 then

Ale ręki nie dam sobie uciąć.

No i zasada DRY w pewnych momentach...

0

Znaczy ja dałem tylko plik .pas, aby zajrzeć tylko do kodu... a co fragmentu z "ShowMessage" to byłoby mi potrzebne czy dobrze odczytuje mi GetSystemMetrics, bo coś było nie tak... A co do klasy to już poprawione i zrozumiane..

1 użytkowników online, w tym zalogowanych: 0, gości: 1