Wie ktoś może np jeśli piszę grę to potrzebne jest często scrollowanie mapy. Wie ktoś może jak to zrobić jeśli tak to proszę wysłać gotowy projekt na urbi@poludnie.ksiezyc.pl albo powiedzieć jak to zrobić.plis

- Rejestracja:około 22 lata
- Ostatnio:prawie 13 lat
trzeba obsłużyc zdarzenia systemowe myszy WM_MoveMouse(chyba)
podczepic sie podnie i robisz sobie forme więksża jak ekran, wyłączasz widoczne skrole, w funkcjach od WM_MoveMouse sprawdzasz pozycje myszy i porownujesz z wymiarami form i w zaleźnosci z ktorej strony jest mysz przesuwasz Scrollbary, ktore teraz są niewidoczne

- Rejestracja:ponad 22 lata
- Ostatnio:ponad 12 lat
globalne zmienne:
mx,my,lx,ly : integer;
mapa : tbitmap;
OnShow formy:
mapa:=tbitmap.create;
mapa.loadfromfile('mapka.bmp');
mx:=0;
my:=0;
lx:=160;
ly:=130;
image1.canvas.brush.style:=bssolid;
image1.canvas.brush.color:=clblack;
Image1.canvas.draw(mx,my,mapa);
Image1.canvas.rectangle(lx,ly,lx+10,ly+10);
OnKeyDown Image:
if (key=vk_right) then
if (mximage1.width-mapa.width) then begin
mx:=mx-10;
image1.canvas.FillRect(image1.Canvas.ClipRect);
Image1.canvas.draw(mx,my,mapa);
Image1.canvas.rectangle(lx,ly,lx+10,ly+10);
end;
if (key=vk_left) then
if mx0 then begin
mx:=mx+10;
image1.canvas.FillRect(image1.Canvas.ClipRect);
Image1.canvas.draw(mx,my,mapa);
Image1.canvas.rectangle(lx,ly,lx+10,ly+10);
end;
if (key=vk_up) then
if (my0) then begin
my:=my+10;
image1.canvas.FillRect(image1.Canvas.ClipRect);
Image1.canvas.draw(mx,my,mapa);
Image1.canvas.rectangle(lx,ly,lx+10,ly+10);
end;
if (key=vk_down) then
if (myimage1.height-mapa.height) then begin
my:=my-10;
image1.canvas.FillRect(image1.Canvas.ClipRect);
Image1.canvas.draw(mx,my,mapa);
Image1.canvas.rectangle(lx,ly,lx+10,ly+10);
end;
A nie lepiej zamiast DelphiX użyć zwykłych komponentów??
Wstawiasz se dwa Image - jeden jako tło, czyli np. nazwa "World", drugi to gościu którym się chodzi, czyli np. nazwa "Gostek".
zapomniałem - jeszcze 4 Image - Down, czyli gościu jak idzie w dół, Up, czyli jak idzie w górę, Left, czyli jak idzie w lewo i Right, czyli jak idzie w prawo.
W oncreate formy dajesz
Form1.DoubleBuffered := True;
.
Wtedy w OnKeyDown tylko dajesz taki kodzik:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
const
v = 4;
begin
case key of
vk_right :
begin
World.Left := World.Left - v;
Gostek.Picture := Right.Picture;
end;
vk_left :
begin
World.Left := World.Left + v;
Gostek.Picture := Left.Picture;
end;
vk_down :
begin
World.Top := World.Top - v;
Gostek.Picture := Down.Picture;
end;
vk_up :
begin
World.Top := World.Top + v;
Gostek.Picture := Up.Picture;
end;
end;
end;
I nie musisz mieć żadnych dodatkowych komponentów prócz Image.

- Rejestracja:prawie 22 lata
- Ostatnio:ponad 14 lat
- Postów:2998
(...)
wiem ze pascal jest podobny do pascala
(...)
No... Zgadza się... Nawet bardzo ;p. A wracając do tematu, to różne gotowe kody i wskazówki na ten temat widziałem... Zarówno na 4p jak i innych stronkach. Wystarczy poszukać...
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.