Skocz do zawartości

[Omega][Delphi] GUI nad mapą


YokTu-Ki

Polecane posty

Witam!

Czy w omedze jest możliwość wykorzystania OmegaGUI ponad mapą, bez konieczności stosowania surface'ów i "wydzielania" pola dla GUI i gry (jako takiej) osobno?

Wszystkie próby wciśnięcia panelu (z podstawowych przykładów) bezpośrednio nad grę się kończyły się błedem. :mellow:

Pozdrawiam!

Link do komentarza
Udostępnij na innych stronach

  • 1 month later...

Żeby nie zakładać nowego tematu:

Natknąłem się na problem z wyświetlaniem GUI ponad Spritem.

 

Chodzi o to, że mam panel, na którym wyświetlany jest sprite, i drugi panel, który musi być wyświetlany ponad spritem.

Próbowałem z kolejnością, ale nie przyniosło zamierzonego efektu.

Da radę jakoś to zrobić?

 

Kod jest dość brudny to nie wrzucam na razie, bo wstyd :P

Link do komentarza
Udostępnij na innych stronach

KOD

procedure TMain.Timer1Timer(Sender: TObject);

var

P: TPoint;

MousePoint: TPoint;

Sprite: TSprite;

begin

 

if not oScreen.CanDraw then Exit

else

begin

oScreen.BeginRender;

oMainImages.BeginDraw;

oScreen.ClearScreen(200,200,200,0);

oGUI.Draw;

oSprite.Draw;

 

P := ScreenToClient(Mouse.CursorPos);

MousePoint.X := P.X;

MousePoint.Y := P.Y;

Pole.X := (MapPanel.X + 90);

Pole.Y := (MapPanel.Y + 200);

 

if MapPanel.X < 0 then MapPanel.X := 0;

If MapPanel.Y < 0 then MapPanel.Y := 0;

 

Sprite := oSprite.GetSpriteAt(MousePoint.X, MousePoint.Y, True, False);

if Sprite <> nil then

begin

oFont1.BeginFont;

oFont1.Print((MapPanel.X + 13), (MapPanel.Y + 290), 'Owner: --- None ---', 255,255,255,155);

oFont1.EndFont;

end;

 

oMainImages.EndDraw;

oScreen.EndRender;

oInput.Update;

end;

end;

 

To jest fragment timera.

Gdyby było potrzebne coś więcej:

Plik

 

Mi już brak pomysłów jak to pogodzić, poza przeniesieniem tego na buttony... Ech

Link do komentarza
Udostępnij na innych stronach

Jak dobrze rozumiem chcesz przykryc panelem CommandPanel punkt na mapie To najłatwiej Ci będzie to zrobić przez powtórne narysowanie CommandPanel. Wstaw do swojego kodu taką zmianę

   oScreen.ClearScreen(200,200,200,0);
   oGUI.Draw;
   ]K][X[[[]ZŁ67&VVF6ĆVBW6R7W'6%2

pozdrawiam oksal

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...