Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Clonovi objekata u Delphi 7

[es] :: Pascal / Delphi / Kylix :: Clonovi objekata u Delphi 7

[ Pregleda: 2765 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vladaboy93
Vladimir Makaric
Novi Sad

Član broj: 137777
Poruke: 376
*.73.eunet.yu.

Sajt: vladimirmakaric.110mb.com


Profil

icon Clonovi objekata u Delphi 707.05.2007. u 19:31 - pre 206 meseci
Imam jedan problem hocu da napravim da jedan mali objekat pritiskom na space puca metkove.
Kada ja pritisnem SPACE on ispali metak,ali kad ponovo pritisnem Space on vrati taj isti metak na poziciju na kojo bi trebao da ispali drugi metak.
(nadam se da sam bio dovoljno jasan)
Kako ja da napravim da kad on puca da on ispuca vise desetina metkova jedan za drugim (da klonira ovaj prvi metak i da svi njegovi klonovi imaju iste osobine kao i on)
Isti takav problem imam sa XO za 5?

Molim vas da mi odgovorite treba mi resenje sto pre?

Unapred hvala!!!!!!!

[Ovu poruku je menjao vladaboy93 dana 07.05.2007. u 21:26 GMT+1]
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Clonovi objekata u Delphi 707.05.2007. u 20:52 - pre 206 meseci
Pogledaj primer koji sam ti dao u temi gde trazis pomoc za igru. Postavi Reload promenljivu na neku malu vrednost (recimo 0.1) i gledaj kako metkovi izlecu. Pogledaj kod i videces kako se to radi.
 
Odgovor na temu

vladaboy93
Vladimir Makaric
Novi Sad

Član broj: 137777
Poruke: 376
*.227.eunet.yu.

Sajt: vladimirmakaric.110mb.com


Profil

icon Re: Clonovi objekata u Delphi 707.05.2007. u 21:26 - pre 206 meseci
Hvala.
Ali to neresava problem XO kako da stavim clonove iste komponente?SA istim osobinama?
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Član broj: 32202
Poruke: 4391
77.46.245.*

Sajt: https://avramovic.info


+46 Profil

icon Re: Clonovi objekata u Delphi 707.05.2007. u 21:48 - pre 206 meseci
Pogledaj ovo. Samo obavezno uništi "metkove" kad izađu sa ekrana ili udare u nešto.
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

vladaboy93
Vladimir Makaric
Novi Sad

Član broj: 137777
Poruke: 376
*.130.eunet.yu.

Sajt: vladimirmakaric.110mb.com


Profil

icon Re: Clonovi objekata u Delphi 708.05.2007. u 17:29 - pre 206 meseci
Ovaj kod mi nije jasan kako bi on mogao da pomogne mom problemu sto se tice XO?
i problem sa metkovima?

Code:

with TTimer.Create(Self) do
begin
   Interval := 1000;
   Enabled := False;
   OnTimer := MyTimerEventHandler;
end

FTimer := TTimer.Create(Self) ;
with FTimer do
begin
   Interval := 1000;
   Enabled := False;
   OnTimer := MyInternalTimerEventHandler;
end;

localTable := TTable.Create(nil) ;
try
   with localTable do
     begin
       DataBaseName := 'MyAlias';
       TableName := 'MyTable';
     end;
   ...
   // Later, if we want to explicitly specify scope:
   localTable.Open;
   localTable.Edit;
   localTable.FieldByName('Busy').AsBoolean := True;
   localTable.Post;
finally
   localTable.Free;
   localTable := nil;
end;
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Clonovi objekata u Delphi 708.05.2007. u 19:35 - pre 206 meseci
Idemo iz pocetka... pitas kako da napravis "klon" objekat. Da bi dobio nov objekat koji je kao neki drugi sve sto treba da uradis je da sve njegove promenljive postavis na vrednost koju ima objekat koji kloniras.

Ako uzmemo npr. integer tip, da bi napravio klon dovoljno je da napises Klon := Stari.

Kad imas npr. niz, onda moras da iskopiras svaki element jednog niza u drugi.

Kad imas neku klasu, moras svaku promenljivu podesiti da bude ista. Neke klase u VCL imaju Assign proceduru koja radi bas to sto ti treba, ali ako pravis sam neku klasu onda moras da implementiras tu sposobnost sam.

Recimo da imas klasu TMetak koja ima poziciju, pravac, brzinu i sliku... npr:
Code:
type
  TMetak = class
    X, Y: Integer;
    Dir: Integer;
    Speed: Integer;
    Pic: TBitmap;
    .
    .
    .
  end;

Kada kreiras klon ovog objekta moras svaku ovu promenljivu da prosledis novom objektu:
Code:
Nov.X := Stari.X;
Nov.Y := Stari.Y;
Nov.Dir := Stari.Dir;
Nov.Speed := Stari.Speed;
Nov.Pic.Assign(Stari.Pic);

Da ne bi morao svaki put da pises ovo, ti napravis ili copy constructor (constructor koji kao parametar uzima instancu klase i kopira podatke iz nje kao sto sam ti sad objasnio) ili neku funkciju koja ce to da uradi.

Eto... ne znam kako detaljnije da ti opisem sve ovo
 
Odgovor na temu

vladaboy93
Vladimir Makaric
Novi Sad

Član broj: 137777
Poruke: 376
*.214.eunet.yu.

Sajt: vladimirmakaric.110mb.com


Profil

icon Re: Clonovi objekata u Delphi 708.05.2007. u 23:15 - pre 206 meseci
Hvala srki jasno mi je!
da li recimo mogu 10 ili vise objekata da idu pod istim imenom?

Na primer za iks oks mi treba da se svi objekti jednako zovu pa da mogu da ih brojim jednako?
Da li mogu da ttaj jedan objekat koji je npr.X da svaki put kada kliknem misem na neko polje da se on kopira pod istim imenom da bi mogo da proveravam kolko ih ima u nizu?

Hvala na dosadasnjoj pomoci (pogotovo srki)
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Clonovi objekata u Delphi 708.05.2007. u 23:44 - pre 206 meseci
Ne razumem bas sta mislis kad kazes "da se on kopira pod istim imenom". Ako mislis na ime promenljive onda je odgovor ne. Ne mozes da imas 5 brojeva i svi da su u promenljivoj I. Mozes da napravis niz koji se zove I i da u nizu cuvas koliko god hoces istih elemenata. Ako mislis na neki property onda mozes svima da postavis isto ime pod uslovom da kod koji se mozda nalazi iza kreiranih objekata dozvoljava da svi objekti imaju ista imena.

Ako bi malo bolje objasnio sta zelis, mozda bi dobio malo precizniji odgovor.
 
Odgovor na temu

vladaboy93
Vladimir Makaric
Novi Sad

Član broj: 137777
Poruke: 376
*.50.eunet.yu.

Sajt: vladimirmakaric.110mb.com


Profil

icon Re: Clonovi objekata u Delphi 709.05.2007. u 12:17 - pre 206 meseci
Ako je bilo nejasno ja se izvinjavam

Probacu malo da pojasnim.

Hocu da napravim igru XO i da kada kliknem na neko polje da se pojavi jos jedan X npr. i da se svi X-evi isto zovu da bi lakse mogao da proveravam da li su sastavljena 3 X-a vodoravno,uspravno i koso.I da bih mogao da brojim kolko ih ima.

 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
77.46.196.*

ICQ: 246436949


+10 Profil

icon Re: Clonovi objekata u Delphi 709.05.2007. u 12:54 - pre 206 meseci
Ok... idemo opet iz pocetka, ali sad malo drugacije.

Kazi nam prvo koje sve objekte imas i sta bi oni trebali da sadrze... dakle... objekat za tablu... sadrzi poziciju, imena igraca, trenutnog igraca, itd, itd... objekat za polje... sadrzi stanje polja, poziciju polja, itd, itd... ostali objekti i sta trebaju da sadrze.

Prvo nam to daj pa cemo da vidimo sta ti se tacno mota po glavi

BTW kako cuvas podatke vezane za tabelu?
 
Odgovor na temu

vladaboy93
Vladimir Makaric
Novi Sad

Član broj: 137777
Poruke: 376
*.237.eunet.yu.

Sajt: vladimirmakaric.110mb.com


Profil

icon Re: Clonovi objekata u Delphi 709.05.2007. u 18:44 - pre 206 meseci
Pravim XO sa 15 sa 15 polja (cilj je skupiti 5 X ili O u nizu). Znaci ima 225 praznih belih kvadrata na koje klkom se taj kvadrat popuni iksom ili oksom i njegova vrednost bude true (tako proveravam da li je popunjen).Bilo bi jako glupo i besmisleno da recimo proveravam svake kombinacije ikseva i oksova preko svih 225 polja a pogotovo bi to bilo glupo ako bi svaki X ili O imao drugacije ime, trebalo bi mi najmanje 10 godina i jos bi se pogubio u tolkom besmislenom kodu.
Pa me zanima kako recimo ja da proveravam da li negde ima pet uzastopnih ikseva bilo gde nije bitno, da nebi morao da za svoku mogucu kombinaciju proveravam?
Pretpostavljam da bi svaki X trrebao da ima isto ime?

Hocu da napravim da se igra protiv kompjutera.

>BTW kako cuvas podatke vezane za tabelu?

Ovo pitanje mi nije jasno?
Ako mislis na tabelu nema je to su sve odvojeni kvadrati spojeni tako da lici na tabelu.

Pozdrav!


 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Clonovi objekata u Delphi 709.05.2007. u 18:54 - pre 206 meseci
Ispravi me ako gresim... imas 255 image ili nekih drugih komponenti za crtanje na formi. Kad igrac klikne na neku od njih tu se pojavi slika (X ili O) i ti bi da se onda ta komponenta nazove po znaku koji iscrtava?
 
Odgovor na temu

vladaboy93
Vladimir Makaric
Novi Sad

Član broj: 137777
Poruke: 376
*.237.eunet.yu.

Sajt: vladimirmakaric.110mb.com


Profil

icon Re: Clonovi objekata u Delphi 709.05.2007. u 19:06 - pre 206 meseci
Da tako je samo sto ne znam kako da proveravam da li je 5 ikseva uzastopno postavljeno na tabli vodoravno, uspravno ili koso.
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Clonovi objekata u Delphi 709.05.2007. u 19:49 - pre 206 meseci
Definitivno sve radis na najtezi moguci nacin. Programeri su poznati po tome da sve rade samo da nista ne rade. Radi i ti tako :)

Evo... napisao sam jedan vrlo kratak i prost program... imas samo 2 komponente na formi. Jedan TImage na kojem se vidi tabela i jedan TImageList u kojem su slike za polja. Podaci za tabelu se cuvaju u jednom nizu. Levi klik postavlja X, desni O, a srednji brise ono sto je u polju.

Pogledaj kod i probaj da pogodis kako da vidis da li ima 5 u nizu.
Prikačeni fajlovi
 
Odgovor na temu

vladaboy93
Vladimir Makaric
Novi Sad

Član broj: 137777
Poruke: 376
*.230.eunet.yu.

Sajt: vladimirmakaric.110mb.com


Profil

icon Re: Clonovi objekata u Delphi 710.05.2007. u 20:21 - pre 206 meseci
Srki nije mi jasno kako si sve to mogao da uradis u tako malo koda, svaka cast!

Vladaboy93: Is it possible to learn this power?

Srki_82: Not from a beginner!

Star Wars na stranu, nije mi stvarno jasno kako si to uspeo, nikad pre nisam koristio ImageList jer bi mogao malo kod da mi pojasnis?












Code:


unit MainUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, ImgList;

type
  E_XO = (
    XO_X,
    XO_O,
    XO_E
  );

  TfrmMain = class(TForm)
    imgField: TImage;
    lstImages: TImageList;
    procedure FormPaint(Sender: TObject);
    procedure imgFieldMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormCreate(Sender: TObject);  private
    { Private declarations }
    FField: array [0..14, 0..14] of E_XO;
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.dfm}

procedure TfrmMain.FormPaint(Sender: TObject);
var
  X, Y: Integer;
  tmpBmp: TBitmap;
begin
  tmpBmp := TBitmap.Create;

  for Y := 0 to 14 do
    for X := 0 to 14 do
    begin
      lstImages.GetBitmap(Ord(FField[X, Y]), tmpBmp);
      imgField.Canvas.Draw(X * 32, Y * 32, tmpBmp);
    end;

  tmpBmp.Free;
end;

procedure TfrmMain.imgFieldMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  fX, fY: Integer;
begin
  fX := X div 32;
  fY := Y div 32;
  FField[fX, fY] := E_XO(Button);
  imgField.Repaint;
end;

procedure TfrmMain.FormCreate(Sender: TObject);
begin
  FillChar(FField, SizeOf(FField), Ord(XO_E));
end;

end.

 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Clonovi objekata u Delphi 710.05.2007. u 20:42 - pre 206 meseci
Delphi je RAD okruzenje... malo kuckas, mnogo dobijes. Zbog toga se razlikuje od ostalih okruzenja. Evo kako je islo pravljenje ovog programcica od pocetka do kraja.

Na formu sam stavio TImage (imgField). Odlucio sam da svako polje bude velicine 32x32 i nacrtao u Paintu slicice za prazno polje, X i O. Postavio sam TImageList (lstImages) i ucitao slike tako da na prvom mestu bude X, na drugom O i na kraju prazno. TImageList mi sluzi samo za cuvanje slika... da ne moram da ih ucitavam sa diska. Kad sam sredio vizualni deo, bacio sam se na pisanje koda. Prvo sam odlucio da podatke o tabeli cuvam u dvovimenzionalnom nizu koji sadrzi tip podatka E_XO. Mogao sam da koristim i Integer neki slican tip... bilo je bitno samo da moze da ima bar 3 stanja. U OnCreate event sam napisao da se podaci o tabeli inicijalizuju na prazna polja. Na OnMouseDown na osnovu koordinata gde je kliknuto odredim na koje polje je korisnik kliknuo (posto znam da su sva polja 32x32 nije bilo problema oko pronalazenja polja) i na osnovu tastera postavljam polje na zeljenu vrednost. Posto su se podaci promenuli, kazem da se imgField ponovo iscrta. Kod za crtanje samo protrci kroz niz i na osnovu vrednosti koju nadje odluci koju sliku da nacrta na koordinati do koje je stigao... nema niceg komplikovanog u kodu.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Clonovi objekata u Delphi 7

[ Pregleda: 2765 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.