PDA

View Full Version : سوال: screensaver c++



mohmmad6006
چهارشنبه 23 تیر 1389, 16:30 عصر
سلام

چطوری میشه تو c++ یک اسکرین سیور درست کرد

مرجعی با مثال دارید که توضیح داده باشه؟

LORD AELX
چهارشنبه 23 تیر 1389, 16:45 عصر
http://www.dreamincode.net/forums/topic/17214-write-your-own-windows-screen-saver/
http://www.functionx.com/visualc/applications/screensaver1.htm
http://www.wischik.com/scr/howtoscr.html

mehdi.mousavi
چهارشنبه 23 تیر 1389, 17:04 عصر
سلام.
می تونید به مقاله من رجوع کنید (http://www.codeproject.com/KB/graphics/ballfusion.aspx). نسخه فارسی اونو هم می تونید در یکی از شماره های مجله برنامه نویس پیدا کنید.

موفق باشید.

mortaza_ngz
پنج شنبه 24 تیر 1389, 12:24 عصر
سلام

من یک پروژه میان ترم داشتم که اسکرین سیور حرکت توپ بود و من با هزار زحمت تونستم بنویسم.
اگه تو هم همین پروژه رو داری یه کمی تلاش کن می تونی بنویسی راحته ؟
من یه کدی رو می زارم که خودم نوشتم ولی کامل نیست یعنی اونی که به استاد دادم نیست ولی این کمکت می کنه ؟

/* creat by : mortaza najaf goli zade */
/* www.mahsoft.blogfa.com (http://www.mahsoft.blogfa.com) */
/* www.taktazsoft.vcp.ir (http://www.taktazsoft.vcp.ir) */
#include<math.h>
#include<graphics.h>
#include<conio.h>
#include<dos.h>
class ball
{
int r;
public:
int x,y,i,j;
ball()
{
i=1;j=1;
}
void inputxy(int m,int n) // gereftane moktas`sate x and y
{
x=m;
y=n;
}
void colorball(int a) // range toop
{
r=a;
}
void clearball(); // pak kardane range toop
void moveball(); // harakat kardane toop
void drawball(); // keshidane toop
};
void ball::clearball()
{
for(int l=1;l<=20;l++)
{
setcolor(0);
circle(x,y,l);
}
}
void ball::moveball()
{
if(x>609) i=-1;
if(x<21) i=1;
if(y>459) j=-1;
if(y<31) j=1;
x+=i*5;
y+=j*5;
}
void ball::drawball()
{
for(int k=1;k<=20;k++)
{
setcolor(r);
circle(x,y,k);
}
}
/*MAIN*/
void main()
{
int gdriver = DETECT, gmode;
initgraph(&gdriver,&gmode,"c:\\tc\\bgi"); /*INITIALIZE GRAPHICS*/
ball ob1,ob2,ob3,ob4;
ob1.inputxy(20,40);
ob2.inputxy(4,221);
ob3.inputxy(103,150);
ob4.inputxy(450,350);
// Background color
// setbkcolor(1);
while(!kbhit())
{
setcolor(15);
rectangle(1,1,635,478);
delay (20); // sorate toop
ob1.clearball();ob1.moveball();ob1.colorball(3);ob 1.drawball();
ob2.clearball();ob2.moveball();ob2.colorball(6);ob 2.drawball();
ob3.clearball();ob3.moveball();ob3.colorball(9);ob 3.drawball();
ob4.clearball();ob4.moveball();ob4.colorball(10);o b4.drawball();
// barkorde toop`ha ba yekdygar
if(sqrt(pow(ob1.x-ob2.x,2)+pow(ob1.y-ob2.y,2))<45)
{ ob1.i*=-1;ob2.i*=-1;ob1.j*=-1;ob2.j*=-1;}
if(sqrt(pow(ob1.x-ob3.x,2)+pow(ob1.y-ob3.y,2))<45)
{ ob1.i*=-1;ob3.i*=-1;ob1.j*=-1;ob3.j*=-1;}
if(sqrt(pow(ob1.x-ob4.x,2)+pow(ob1.y-ob4.y,2))<45)
{ ob1.i*=-1;ob4.i*=-1;ob1.j*=-1;ob4.j*=-1;}
if(sqrt(pow(ob2.x-ob3.x,2)+pow(ob2.y-ob3.y,2))<45)
{ ob2.i*=-1;ob3.i*=-1;ob2.j*=-1;ob3.j*=-1;}
if(sqrt(pow(ob2.x-ob4.x,2)+pow(ob2.y-ob4.y,2))<45)
{ ob2.i*=-1;ob4.i*=-1;ob2.j*=-1;ob4.j*=-1;}
if(sqrt(pow(ob3.x-ob4.x,2)+pow(ob3.y-ob4.y,2))<45)
{ ob4.i*=-1;ob3.i*=-1;ob4.j*=-1;ob3.j*=-1;}
}
closegraph();/*EXIT FROM GRAPHICS MODE*/
}
اگه توضیح خواستی بگو تا بدم؟