infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Tudose Bogdan din Mai 12, 2008, 13:33:44



Titlul: Buton (help plz)
Scris de: Tudose Bogdan din Mai 12, 2008, 13:33:44
Am mai jos o parte din program in care as vrea sa fac un buton sa se miste de la niste coordonate la altele. XMIJ reprezinta mijlocul ecranului pe axa Ox (getmaxx()/2) si YMIJ mijlocul pe Oy (getmaxy()/2). Si m-am gandit sa pun butonul intr-un for si sa scad din coordonata pentru axa Oy, ca sa il misc in sus...doar ca ce face el...pune butonul direct la ultima valoare a lui "i" si anume: bar(xmij-50,ymij-60-200,xmij+50,ymij-40-200); Ceva sfaturi sa il fac sa apara pe ecran pentru fiecare valoare a lui "i"??

for(i=0;i<=200;i+=10);
    {
     delay(50);
     setfillstyle(1,8);
     bar(xmij-50,ymij-60-i,xmij+50,ymij-40-i);
     setcolor(10);
     outtextxy(xmij-45,ymij-53-i,"BUTON");
    }


Titlul: Răspuns: Buton (help plz)
Scris de: Cristian Strat din Mai 12, 2008, 18:55:21
Pune un delay mai mare si curata ecranul la fiecare frame. Se misca.


Titlul: Răspuns: Buton (help plz)
Scris de: Simionescu Andrei din August 21, 2008, 23:24:24
nu e bine sa dai clrscr() sau ceva asemanator la fiecare actualizare, o sa se vada ca naiba
la primul pas desenezi apoi in for faci ceva gen:
Cod:
bucla:
    sterge_desen_anterior
    deseneaza_pe_pozitia_urmatoare(curenta)
    delay
intr-un for e f usor sa manevrezi pozitiile curenta si anterioara
trebuie sa calculezi tu delay-ul * nr de pasi din for, ca sa se vada bine; delay mai mic => smoothness mai mare :P

de asemenea, cauta in GRAPHICS.H functiile getimage si putimage, sunt si ele utile

un alt fel in care poti sa "stergi" e un
Cod:
bar(x_obj-50,y_obj-50,x_obj+50,y_obj+50);

sper sa te descurci  :peacefingers:


Titlul: Răspuns: Buton (help plz)
Scris de: Simionescu Andrei din August 21, 2008, 23:40:01
Cod:
int x=320,y=240;
void drawButton(int x, int y,int mode=0){
setfillstyle(SOLID_FILL,(mode)?getbkcolor():LIGHTRED);
bar(x-50,y-20,x+50,y-20);
settextstyle(3,0,3);//cel mai bun :P
outtextxy(x-40,y-8,"BUTON");
}

[...]

drawButton(x,y);
for(i=0;i<48;++i)
    {
    drawButton(x,y,1);
    y-=5;
    drawButton(x,y);
    delay(125);   
    }
e foarte probabil sa mearga :D
poti sa pui si un x=rand(600);y=rand(440); in loc de y-=5; inveti sa implementezi mouse-ul si gata, ti-ai facut primu' joc  :harhar: