www.domaci.de Forum Indeks Home
Portal • Forum • Novi upisi • Pretraga • Link do nas • Domaći filmovi • Lista korisnika • Tim sajta • Proverite privatne poruke • Prijava • Registracija
Pravilnik • FAQ • Profil • Favorites • Galerija slika • Top lista • Download MP3 • MP3 razno • Spotovi • Noviteti 2013 • Muzički noviteti 2014

Igra u Delphiju
Strana 1, 2  sledeća
Upišite novu temu   Odgovorite na temu    www.domaci.de Forum Indeks -> ~ Programiranje ~
::  
Autor Poruka
dreams
Upućeni član
Upućeni član



Godine: 33

Datum registracije: 27 Jun 2005
Poruke: 352
Mesto: Paviljoni!

serbia.gif
PorukaPostavljena: Ned Feb 12, 2006 1:17 am    Naslov poruke: Igra u Delphiju Na vrh strane Na dno strane

Posto sam pokusao da uradim nesto u Delphiju ( File Manager ) ali sam to batalio, odlucio sam da radim igru avanturistickog karaktera, znate ono ide cikica skuplja zlato uzme kljuc i predje na sledeci nivo.
E sada mene interesuje, kako ja da uradim sledece:
Kada zelim da mi se npr. shape ili slika krecu na OnKeyPress sta treba da otkucam, ja znam da nesto treba prvo staviti ( ako je slika )
Image1.Left:= Image1.Left+5
Ali gde treba ovo da stavim...

pozz


 
Pedjanbg
Početnik Domaćeg.de
Početnik Domaćeg.de



Godine: 42

Datum registracije: 20 Jan 2006
Poruke: 229
Mesto: Novi Beograd

blank.gif
PorukaPostavljena: Ned Feb 12, 2006 12:45 pm    Naslov poruke: Na vrh strane Na dno strane

Ja Pascal i Delphi ne znam uopste, ali to bi valjda trebalo da se nalazi u metodi koja se poziva pri podizanju event-a KeyPress, ili kako se vec zove. Ali ja stvarno ne znam kako su ove stvari resene u datom okruzenju...
 
dreams
Upućeni član
Upućeni član



Godine: 33

Datum registracije: 27 Jun 2005
Poruke: 352
Mesto: Paviljoni!

serbia.gif
PorukaPostavljena: Uto Feb 14, 2006 7:11 pm    Naslov poruke: Na vrh strane Na dno strane

Znam nesto da ide:
On Key Press:
case key of
37: ;// ovde postavim vrednost
38: ;// ovde postavim vrednost
39: ;// ovde postavim vrednost
40: ;// ovde postavim vrednost

E sad da li ima nesto u privatnim ili public deklaracijama, ili nesto drugo... Rolling Eyes

pozz
 
Pedjanbg
Početnik Domaćeg.de
Početnik Domaćeg.de



Godine: 42

Datum registracije: 20 Jan 2006
Poruke: 229
Mesto: Novi Beograd

blank.gif
PorukaPostavljena: Uto Feb 14, 2006 10:06 pm    Naslov poruke: Na vrh strane Na dno strane

Nisam siguran da sam razumeo. Ti hoces da ti se na pritisak tastera, staticna slika povecava, smanjuje, ide levo, ili ide desno. Metoda koja se poziva pri pritisku tastera trebalo bi da za argument ima podatak koji u sebi kao public clan ima Ascii pritisnutog tastera, na osnovu kog bi ti trebalo da odradis odgovarajucu akciju. U C#-u je to instanca klase KeyPressEventArgs. Ne znam za Delphi.
 
dreams
Upućeni član
Upućeni član



Godine: 33

Datum registracije: 27 Jun 2005
Poruke: 352
Mesto: Paviljoni!

serbia.gif
PorukaPostavljena: Uto Feb 14, 2006 11:01 pm    Naslov poruke: Na vrh strane Na dno strane

Ja zelim da kada pritisnem levo desno gore ili dole da mi slika ide u tom pravcu, ali sta bi ja trebalo da postavljam u public ili private? I one brojke 37, 38... to su kada se pretvori funkcijom IntToStr.
 
Pedjanbg
Početnik Domaćeg.de
Početnik Domaćeg.de



Godine: 42

Datum registracije: 20 Jan 2006
Poruke: 229
Mesto: Novi Beograd

blank.gif
PorukaPostavljena: Uto Feb 14, 2006 11:26 pm    Naslov poruke: Na vrh strane Na dno strane

Odakle ti te brojke?
Jel mozes da das deo koda?
 
dreams
Upućeni član
Upućeni član



Godine: 33

Datum registracije: 27 Jun 2005
Poruke: 352
Mesto: Paviljoni!

serbia.gif
PorukaPostavljena: Sre Feb 15, 2006 12:58 am    Naslov poruke: Na vrh strane Na dno strane

Taj deo koda kada se odredjuje vrednost ( 37, 38...), nisam siguran kako ide, mislim da je ovako nesto:

...Label1.Caption:= Key IntToStr...
Tako nesto
 
Pedjanbg
Početnik Domaćeg.de
Početnik Domaćeg.de



Godine: 42

Datum registracije: 20 Jan 2006
Poruke: 229
Mesto: Novi Beograd

blank.gif
PorukaPostavljena: Sre Feb 15, 2006 12:29 pm    Naslov poruke: Na vrh strane Na dno strane

Pazi. U C#-u bi moglo da se napise nesto ovako:

Code:

private void KeyPress1(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
   switch((int)e.KeyChar)
   {
      case 37:
         //radi nesto
         break;
      case 38:
         //radi nesto
         break;
      case 39:
         //radi nesto
         break;
      case 40:
         //radi nesto
         break;
   }
}


Castovanje char-a u int bi trebalo da daje Ascii datog karaktera. Ne znam koje tastere ti hoces da koristis, i ne znam kakav potpis ova funkcija ima u Delphi-u.
 
tomipriest
Početnik Domaćeg.de
Početnik Domaćeg.de



Godine: 48

Datum registracije: 24 Feb 2006
Poruke: 4
Mesto: Osijek

croatia.gif
PorukaPostavljena: Sub Feb 25, 2006 3:42 pm    Naslov poruke: Na vrh strane Na dno strane

ma daj čovječe uzmi c++ i riješi se drugih gluposti
 
Doktor
~Sanjicino*slculence~
~Sanjicino*slculence~



Godine: 38

Datum registracije: 17 Nov 2005
Poruke: 4264
Mesto: Novi Sad

blank.gif
PorukaPostavljena: Uto Feb 28, 2006 10:30 pm    Naslov poruke: Re: Igra u Delphiju Na vrh strane Na dno strane

dreams je napisao/la sledeće:
Posto sam pokusao da uradim nesto u Delphiju ( File Manager ) ali sam to batalio, odlucio sam da radim igru avanturistickog karaktera, znate ono ide cikica skuplja zlato uzme kljuc i predje na sledeci nivo.
E sada mene interesuje, kako ja da uradim sledece:
Kada zelim da mi se npr. shape ili slika krecu na OnKeyPress sta treba da otkucam, ja znam da nesto treba prvo staviti ( ako je slika )
Image1.Left:= Image1.Left+5
Ali gde treba ovo da stavim...

pozz


Ovako Dreams...

Tu si u pravu to je kod koji pomera sliku za 5 pixela napred. Uz to moras ubaciti i ogranicenje da bi definisao kraj sekvence kojom tvoja slika (tj. sprajt) moze da se krece. Da ne bi dobio efekat da ti "taj cikica" ne ude u zid ili izadje van ekrana. OK to ces ti resiti u zavisnosti od toga kako si definisao teren ili podlogu.

Taj kod kucas u nekom od OnKey dogadjaja (event). Od tebe zavisi da li ces raditi sa OnKeyPress, OnKeyDown ili OnKeyUp. To ti ja ne mogu reci posto ti najbolje znas sta ti treba. Ali ta metoda ima jednu manu. Radi se o intervalu koji windows koristi da bi detektovao pritisak izmedju dva tastera (repeat time). To ti je u konkretnom slucaju brzina kojom se recimo ispisuje neki znak u vordu ako drzis pritisnut taster. U delfiju je malo tesko postaviti taj interval na vrednost 0 ali je ipak moguce. Najbolji nacin je da koristis prekidne rutine tastature koje ces "na zalost" morati da kontrolises iz Assemblera. Koriscenjem assemblerskih funkcija, poruka da je neki taster pritisnut se skenira u realnom vremenu i na njega ne utice repeat-interval. Ako ne znas assembler probaj da konsultujes neku skriptu ili neki izvor sa neta kako bi pronasao tacan nacin kako se to radi. Inace kod iz assemblera mozes u izvornom obliku koristiti u Delphiju na sledeci nacin:

Code:

PROCEDURE ili FUNCTION tvoja_rutina(tvoji_parametri: TNeki_tip);
ASSEMBLER ili ASM
... {assembler code}...
END;


Obrati paznju da sa assemblerom nema igranja. Dakle ne pokusavaj nesto u sta nisi 100 % siguran ili posledice po tvoj racunar mogu da budu katastrofalne.

Pozzzzz Wink

_________________
~*~Vojim svoje srculence najvise na svetu ~*~ :322:

 
dreams
Upućeni član
Upućeni član



Godine: 33

Datum registracije: 27 Jun 2005
Poruke: 352
Mesto: Paviljoni!

serbia.gif
PorukaPostavljena: Uto Mar 07, 2006 11:27 am    Naslov poruke: Na vrh strane Na dno strane

E sve je ok resio sam i radi

Code:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  Form1.DoubleBuffered:=true;
    case key of
    37: Image2.Left:=Image2.Left-5;{levo}
    38: Image2.Top:=Image2.Top-5;{gore}
    39: Image2.Left:=Image2.Left+5;{desno}
    40: Image2.Top:=Image2.Top+5;{dole}
  end;
end;


Sada mi treba nesto drugo, kada se Image2 nalazi na odredjenoj poziciji, da se npr. na Label-u ispise neki tekst?
 
Doktor
~Sanjicino*slculence~
~Sanjicino*slculence~



Godine: 38

Datum registracije: 17 Nov 2005
Poruke: 4264
Mesto: Novi Sad

blank.gif
PorukaPostavljena: Sre Mar 08, 2006 5:46 pm    Naslov poruke: Na vrh strane Na dno strane

E sad ta odredjena pozicija moze biti precizno odredjena recimo nekim koordinatama (x, y) ili nekim opsegom pozicija recimo x in [min..max]. Inace ako radis sa slikom kako si je ti nazvao Image2 njene koordinate kontrolises preko Top i Left parametara.... Ako sam dobro shvatio sta hoces, to se moze uraditi ovako:

Uzmi na primer da je Label na kome zelis da ispises tekst Label1: TLabel:


x := //left koordinata
y := //top koordinata
...
If (Image2.Left = x) and (Image2.Top = y) Then Label1.Caption := 'Neki Tekst';

Ovo je primer ako tacno odredis poziciju sa x i y. Ali u opstem slucaju to se moze raditi i sa opsegom polozaja.

Umesto uslova Label2.Left = x mozes koristiti Label2.Left in [350..500]. Brojevi 350 i 500 su uzeti kao primer ali u principu to znaci da ce se odredjeni tekst na labelu ispisati ako je Left parametar slike Image2 u intervalu od 300 do 500.

Nadam se da je to to sto trazis.

Pozzzz Wink

_________________
~*~Vojim svoje srculence najvise na svetu ~*~ :322:

 
Prikaz poruka:   
Upišite novu temu   Odgovorite na temu    www.domaci.de Forum Indeks -> ~ Programiranje ~ -> Igra u Delphiju Vreme je podešeno za GMT + 1 sat
Strana 1, 2  sledeća
Strana 1 od 2

 
Pređite u:  
Vi ne možete otvarati nove teme u ovom forumu
Vi ne možete odgovarati na teme u ovom forumu
Vi ne možete menjati Vaše poruke u ovom forumu
Vi ne možete brisati Vaše poruke u ovom forumu
Vi ne možete glasati u anketama u ovom forumu
Vi ne možete postavljati fajlove u ovom forumu
Vi ne možete preuzeti fajlove sa ovog foruma





- Burek Forum - Doček Nove 2018. godine - Venčanja, svadbe - Proslave - TipoTravel - Kuda večeras - Anwalt - legal -

Bookmark to: Twitter Bookmark to: Facebook Bookmark to: Digg Bookmark to: Del.icio.us Bookmark to: StumbleUpon