Delphi pohyby

Programovacie jazyky, rady, poradňa...
SC0U7
Amateur
Amateur
Príspevky: 32
Registrovaný: 06 júl 2009, 8:01
Kontaktovať používateľa:

Delphi pohyby

Príspevok od používateľa SC0U7 »

Cfte ako spravim aby sa v delphi nejaky objekt pohyboval ked zmagnem sipku dolu aj objekt pojde dole
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

každý objekt (trošku nepresné pomenovanie, ale používam tvoj jazyk) má pozíciu top a left. Takže dole bude:

objekt.top:=objekt.top+1;

hore bude tak isto ale mínus, dolava a doprava zas meníš left
SC0U7
Amateur
Amateur
Príspevky: 32
Registrovaný: 06 júl 2009, 8:01
Kontaktovať používateľa:

Príspevok od používateľa SC0U7 »

ok skusim :) thanks len to som potreboval
a ako to nastvaim na šípky??
a ako nastavim panaka ktori ked sa dotkne napr panelu1 Umre :D ??
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

ehm? hodíš button na form, a dvakrát naň klikneš :roll: potom zapíšeš príšlušný kod
SC0U7
Amateur
Amateur
Príspevky: 32
Registrovaný: 06 júl 2009, 8:01
Kontaktovať používateľa:

Príspevok od používateľa SC0U7 »

audiotrack napísal:ehm? hodíš button na form, a dvakrát naň klikneš :roll: potom zapíšeš príšlušný kod
:D že mi napíšeš príslušný kód :D :) PL
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

tak mi napíš čo za objekt chceš pohybovať :)
SC0U7
Amateur
Amateur
Príspevky: 32
Registrovaný: 06 júl 2009, 8:01
Kontaktovať používateľa:

Príspevok od používateľa SC0U7 »

audiotrack napísal:tak mi napíš čo za objekt chceš pohybovať :)
Image1 xD aby sa pohyboval a to tak že :

sipkami a to
UP-hore
Down-dole
Right-Vpravo
Lefr-Vlavo

Dúfam chapes napr ked zmagnes sipku na klavesnici(Hore) Image1 pojde hore
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

:roll:

Kód: Vybrať všetko

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  case key of
    vk_UP: shape1.Top:=shape1.top-3;
    vk_DOWN: shape1.Top:=shape1.top+3;
    vk_LEFT: shape1.left:=shape1.left-3;
    vk_RIGHT: shape1.left:=shape1.left+3;
  end;
end;
(dal som to na shape, lebo image by si nevidel kým nemá načítaný obrázok)
Prílohy
omg.rar
(159.78 KiB) 31 stiahnutí
SC0U7
Amateur
Amateur
Príspevky: 32
Registrovaný: 06 júl 2009, 8:01
Kontaktovať používateľa:

Príspevok od používateľa SC0U7 »

yEAAA ide thx :D :D :D a ece neporadis jak by sa dalo spravit keby shape tzv nabural do panelu1 tak by sa vypisalo Showmessage('Koniec hry!!')
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

tak ako má súradnice shape, tak ich má aj panel. Jendoduché porovnávania <= a >= čo sa preberá na základnej škole (prípadne sa to dá zjednodušiť cez absolútne hodnoty nech máš menej písania ale musíš viac potrápiť hlavu :) )
SC0U7
Amateur
Amateur
Príspevky: 32
Registrovaný: 06 júl 2009, 8:01
Kontaktovať používateľa:

Príspevok od používateľa SC0U7 »

oks skušal som toto :D stými suradnicami

if shape1.Top:=Panel1.top then
... **na bodky som skúšal dať Showmessage('Koniec hry!!')

asi blbost že? :D ja že šak ked bude mat shape1 výšku ako Panel1 tak vipíše Koniec hry ale niečo bud zle v tom (( := )) lebo to je priradenie a ešte asi treba doplnit left lebo ked bude mat len výšku tak ju môže mat zarovne ale nemusí sa ho dotíkať :) ! :roll:
feromakovi
Expert
Expert
Príspevky: 165
Registrovaný: 24 okt 2008, 14:16
Bydlisko: Bánovce nad Bebravou

odpoveď

Príspevok od používateľa feromakovi »

tuto to máš cez procedúru na forme:

Kód: Vybrať všetko

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
case key of
'w':if image1.top>0 then image1.Top:=image1.Top-2;
's':if image1.Top+image1.height<form1.clientheight then image1.Top:=image1.Top+2;
'a':if image1.left>0 then image1.left:=image1.left-2;
'd':if image1.left+image1.width<form1.clientwidth then image1.left:=image1.left+2;
end;
end;
len zádrhel že som to spravil na tlačídka w,a,s,d,
lebo ordinálne hodnoty klasických šípiek si už nepametám a na internete sa mi to nepodarilo nájsť....a tak by si aj podobne opodmienkoval že nie < ale = a to by znamenalo že tvoja fotka narazila a tedy by zomrela.
Napísať odpoveď