[ Príspevkov: 2 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 05.01.12
Prihlásený: 05.01.12
Príspevky: 1
Témy: 1 | 1
NapísalOffline : 05.01.2012 19:32 | padajuce gulicky

zdravim,
dostal som za ulohu spravit projekt, s ktorym mam mensie problemy:

Vytvorte program zobrazujúci padajúce červené bodky. Nová bodka sa vytvára kliknutím do kresliacej plochy a jej počiatočný polomer je 6. Ak klikneme na už existujúcu bodku, jej polomer sa zväčší o 2. Každých 200 milisekúnd sa všetky bodky posunú smerom nadol o 4 pixely. Ak pri páde nadol vyjde bodka z kresliacej plochy, objaví sa v hornej časti kresliacej plochy.
Upravte program tak, aby pri zväčšení za istú hraničnú veľkosť bodka zmizla.

A teraz moje otazky: viem, ze tam treba pouzit udalost on mouse down ale ako si mam uchovat hodnoty x,y ? treba pole alebo ako?
a este ako mam urobit to, aby sa polomer zvacsil o 2. napada ma len prikaz if Pixels[x,y]=clRed ale to sa mi zda prilis zlozite a nerobi to presne to, co by malo, lebo ked su dve gulicky cez seba a kliknem na hociktoru z nich, zvacsia sa obidve.
za kazdu radu vopred dakujem


Offline

Skúsený užívateľ
Skúsený užívateľ
padajuce gulicky

Registrovaný: 11.01.09
Prihlásený: 15.02.25
Príspevky: 1397
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 05.01.2012 20:25 | padajuce gulicky

Poziciu si uchovas jednoducho - staci gulicky reprezentovat ako instancie objektu, ktore budu mat poziciu ako svoj datovy clen. Ukazka:
Kód:
TGulicka = class
private
    x, y: integer;    // koordinaty
    procedure SetX( newX: integer );
    procedure SetY( newY: integer );
    precedure Redraw();
public
    constructor Create( x, y: integer );
    property Left: integer read x write SetX;
    property Top: integer read y write SetY;
end;


( konstruktor si uz napis sam, taktiez metody SetX a SetY, tam len nastavis premenne x a y na newX a newY ). Gulicky budes jednoducho vytvarat volanim konstruktora triedy TGulicka a zmenu pozicie cez jej vlastnost Left a Top. Ukazka:
Kód:
var
  gulicka1, gulicka2, gulicka3: TGulicka;     // neviem, kolko ich mas mat, ak viac, jednoducho pouzi pole

Volanie konstrutkora:
Kód:
gulicka1 := TGulicka.Create( 100, 100 );

Funkcia redraw bude prekreslovat gulicku na nove pozicie. Tu si tiez dopln sam, akurat ti poradim, ze ich neznazornuj pixelmi - je to zdlhave a zbytocne. Pouzi metodu Ellipse triedy TCanvas:
Kód:
Form1.Canvas.Ellipse( 100, 100, 120, 120 );


Jej prve dva parametre su x1 a x2, dalsie dve x2 a y2. To znamena, x2 - x1 dostanes priemer gulicky. Na ten som zabudol, tiez si ho predaj ako datovy clen triedy TGulicka + potrebne metody na jeho zvacsovanie/zmensovanie.


 [ Príspevkov: 2 ] 


padajuce gulicky



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie.

K:Neocube magneticke gulicky

v Kúpim

1

486

02.08.2010 20:36

LoveJoy

V tomto fóre nie sú ďalšie neprečítané témy.

Padajuce PCCKO?

v Obchody, reklamácie a právo

6

729

25.05.2011 14:25

EXIREXT

V tomto fóre nie sú ďalšie neprečítané témy.

padajuce listy

v JavaScript, VBScript, Ajax

7

881

08.10.2009 20:39

Snacker

V tomto fóre nie sú ďalšie neprečítané témy.

GeForce 7300GS - padajuce FPS

v nVidia grafické karty

4

309

20.01.2013 14:41

venom2

V tomto fóre nie sú ďalšie neprečítané témy.

Antik+D-Link DIR-605L+Padajúce wifi

v Siete

4

434

14.03.2016 12:09

Parohata

V tomto fóre nie sú ďalšie neprečítané témy.

MSI GTX 1070 - padajuce hry pri vysokej zatazi

v nVidia grafické karty

20

1069

29.10.2018 18:31

2pacavely



© 2005 - 2025 PCforum, edited by JanoF