int main(void){ int week,day,i=1,j,space,end; int year,month; printf("please input the year and month that you want to show:\n"); scanf("%d%d",&year,&month); if(is_run(year)) day=run_month[month-1]; else day=ping_month[month-1]; week=week_day(year,month); //控制输出格式 printf("\n\n\t\t=========%d年%d月=========\t\t\n",year,month); printf("\tSUN\tMON\tTUE\tWED\tTHU\tFRI\tSAT\n"); while(i<=day){ space=week%7; end = 6-space+i; for(j=1;j<=7;++j){ if (j<=space) { printf("\t "); week=7; } else if(i<=end&&i<=day){ printf("\t%d ", i); ++i; } } putchar('\n'); } return 0; }
void mainloop() { const int MAXOBJ = 30; AniObj obj[MAXOBJ]; //定义对象数组 int n; for (n = 0; n < MAXOBJ; ++n) { initobj(&obj[n]); //初始化 } for ( ; is_run(); delay_fps(60) ) { for (n = 0; n < MAXOBJ; ++n) { updateobj(&obj[n]); //更新位置 } cleardevice(); for (n = 0; n < MAXOBJ; ++n) { drawobj(&obj[n]); //绘画 } } for (n = 0; n < MAXOBJ; ++n) { releaseobj(&obj[n]); //释放 } }
int main() { initgraph(640, 480); fps f; for(double r = 0; is_run(); delay_fps(100000)) { r += 0.02; if(r > PI * 2) r -= PI * 2; cleardevice(); setcolor(EGERGB(0xFF, 0xFF, 0xFF)); setfillcolor(EGERGB(0, 0, 0xFF)); [](double x, double y, double r, double a){ int pt[10]; for(int n = 0; n < 5; ++n) { pt[n * 2] = -std::cos(PI * 4 / 5 * n + a) * r + x, pt[n * 2 + 1] = std::sin(PI * 4 / 5 * n + a) * r + y; } fillpoly(5, pt); }(300, 200, 100, r); } }
int main(void) { { setinitmode(INIT_ANIMATION); initgraph(LEN, WID); setcaption("碰撞小球"); randomize(); } int i; BALL ball[MAXBALL]; for ( ; is_run(); delay_fps(60)) { dealMouse(ball); for(i = 0; i < MAXBALL; ++i) ball[i].update(); cleardevice(); for(i = 0; i < MAXBALL; ++i) ball[i].drawball(); } closegraph(); return 0; }
void mainloop(Screen &screen) { setcolor(EGERGB(255,255,255)); int temp1,temp2,temp3,temp4; MyRectangle tempreg(0,0,0,0,&screen); cleardevice(); int i,j; j =getInteger("How many rectangle?"); MyRectangle *rectangle=new MyRectangle[j]; for(i=0;i<j;i++) { rectangle[i] =tempreg; } for(i=0;i<j;i++) { temp1 =getInteger("Set x1"); temp2 =getInteger("Set y1"); temp3 =getInteger("Set x2"); temp4 =getInteger("Set y2"); (rectangle+i)->setCoordinations(temp1,temp2,temp3,temp4); } for ( ; is_run(); delay_fps(60) ) { cleardevice(); for(i=0;i<j;i++) { (rectangle+i)->Draw(); } } delete[] rectangle; }
TestHttpClient::TestHttpClient() : stop_(false) { std::atomic_bool is_run(false); on_text_ = [](struct mg_connection*, const std::string & text) {}; on_binary_ = [](struct mg_connection*, const std::vector<uint8_t> & bytes) {}; on_closed_ = [](struct mg_connection*) {}; mg_mgr_init(&mgr_, this); boost::mutex mutex; boost::condition_variable cond; boost::thread t([&]() { mutex.lock(); is_run = true; cond.notify_one(); mutex.unlock(); while(!stop_) { mg_mgr_poll(&mgr_, 1000); } mg_mgr_free(&mgr_); }); thread_.swap(t); while (!is_run) { const boost::chrono::seconds d(1); boost::mutex::scoped_lock lock(mutex); cond.wait_for(lock, d); } }
int main() { initgraph(640, 480); setfont(18, 0, "宋体"); int k = 0; // 这个循环,is_run判断窗口是否还在,delay_fps是延时 // 后面讲动画的时候会详细讲解,现不要在此纠结 for ( ; is_run(); delay_fps(60)) { char str[32]; int x, y; //获取鼠标坐标,此函数不等待。若鼠标移出了窗口,那么坐标值不会更新 //特殊情况是,你按着鼠标键不放,拖出窗口,这样坐标值会依然更新 mousepos(&x, &y); //格式化输出为字符串,用于后面输出 sprintf(str, "%4d %4d", x, y); outtextxy(0, 0, str); } closegraph(); return 0; }
void mainloop() { //x,y记录当前位置,dx,dy记录速度向量,r记录圆半径 int x = 0, y = 0, dx = 1, dy = 1, r = 100; for ( ; is_run(); delay_fps(60) ) { // todo: 逻辑更新 // 当前位置 + 速度 x += dx; y += dy; if (x < r) dx = 1; //碰左 if (y < r) dy = 1; //碰上 if (x >= ege::getwidth() - r) dx = -1; //碰右 if (y >= ege::getheight() - r) dy = -1; //碰下 // todo: 图形更新 cleardevice(); setcolor(GREEN); setfillcolor(BLUE); fillellipse(x, y, r, r); {// 画帧率文字 char str[20]; sprintf(str, "fps %.02f", getfps()); //调用getfps取得当前帧率 setcolor(WHITE); outtextxy(0, 0, str); } } }
// 主函数 int main( int argc, char* argv[] ) { int i, ms_x = -1024, ms_y = -1024, exitflag = 0; int fps = 60; double dtime; int mode = preinit( argc, argv ); // 记录初始化模式 if ( mode < 0 ) return 0; randomize(); // 初始化随机种子 initgraph( -1, -1 ); // 打开图形窗口,以全屏模式 showmouse( mode ); sc_width = getwidth(); sc_heigh = getheight(); // 初始化所有星星 for ( i = 0; i < g_max; i++ ) { InitStar( i ); star[i].x = randomf(); } // 绘制星空,按任意键或移动鼠标退出 setfont( 12, 6, "宋体" ); setrendermode( RENDER_MANUAL ); dtime = fclock(); while ( kbmsg() ) getkey(); for ( ; !exitflag && is_run() && kbmsg() == 0; delay_fps( fps ) ) { //每秒画120帧,kbhit(1)是获取键盘任意键的消息,详见pdf // 如果有鼠标消息 while ( mousemsg() ) { mouse_msg msg = getmouse(); if ( ms_x <= -1024 ) { ms_x = msg.x; ms_y = msg.y; } // 处理鼠标,移动超出范围就退出 if ( mode == 0 ) { // 仅全屏模式才处理鼠标 int x = msg.x, y = msg.y; x -= ms_x; y -= ms_y; if ( x * x + y * y > 400 ) exitflag = 1; } } // 显示星星 double dt = 1.0 / fps; //fclock() - dtime; dtime += dt; for ( int i = 0; i < g_max; i++ ) { MoveStar( i, dt ); } // 显示FPS { char str[60]; sprintf( str, "%8.2f FPS", getfps()); outtextxy( 0, 0, str ); //显示fps } } closegraph(); // 关闭图形窗口 return 0; }
void mainloop() { for (; is_run(); delay_fps(5)) { setfillcolor(EGERGB(random(255),random(255), random(255))); cleardevice(); fillellipse(200, 200, 50, 30); } }
//计算某年内from月到to月的天数 count_day(int year,int from , int to){ int i,d=0; for(i=from;i<to;++i){ d+=ping_month[i-1]; } if(is_run(year)) d+=1; return d; }
void LifeGamev2::play() { for (; is_run(); delay_fps(SPEED)) { if (kbhit()) { changeSetting(getch()); } //原始宇宙为universe,进化后为_universe evolve(); cleardevice(); render(); } }
void mainloop() { // is_run ¼ì²â³ÌÐòÊÇ·ñÊÕµ½¹Ø±ÕÏûÏ¢£¬ÊÕµ½µÄ»°»á·µ»Øfalse£¬¼´Ó¦¸ÃÍ˳ö³ÌÐò // delay_fps ¿ØÖÆÖ¡ÂÊ£¬60±íʾ¡°Æ½¾ùÑÓʱ¡±Îª1000/60ºÁÃë // ΪʲôʹÓÃ60£¿ÒòΪ60ÊÇÏÔʾÆ÷µÄĬÈÏË¢ÐÂÂÊ£¬99.9%µÄÏÔʾÆ÷¶¼ÊÇÕâ¸öÉèÖà for ( ; is_run(); delay_fps(5) ) { // todo: Âß¼¸üРsetfillcolor(EGERGB(random(255), random(255), random(255))); // todo: ͼÐθüР// ÇåÆÁ cleardevice(); fillellipse(200, 200, 50, 30); } }
//返回指定年月的的1号是周几 //已知1970年1月1日为周四,6月1日为周一 int week_day(int year, int month){ int week_map[] = {3,4,5,6,7,1,2}; int days = 1; int i,w; for (i=1970; i<year; i++) {//求年的天数 if(is_run(i)) days+=366; else days+=365; } days+=count_day(year,1,month); return week_map[days%7]; }
void mainloop() { // x,y记录当前位置,dx,dy记录速度的方向,r记录圆半径 int x = 0, y = 0, dx = 1, dy = 1, r = 100; // alpha记录当前alpha值,da为alpha变化增量 int alpha = 0, da = 1; // 需要借助img实现透明半透明 PIMAGE img; // img 创建为 w=r*2, h=r*2大小 img = newimage(r * 2, r * 2); setcolor(0x00FF00, img); setfillcolor(0xFF0000, img); // 画在img上 fillellipse(r, r, r, r, img); setbkcolor(DARKGRAY); for ( ; is_run(); delay_fps(60) ) { // todo: 逻辑更新 // 当前位置 + 速度 x += dx; y += dy; if (x < 0) dx = 1; //碰左 if (y < 0) dy = 1; //碰上 if (x >= ege::getwidth() - r * 2) dx = -1; //碰右 if (y >= ege::getheight() - r * 2) dy = -1; //碰下 // 改变alpha值,参数范围为 0 ~ 0xFF(255) alpha += da; if (alpha <= 0) da = 1; if (alpha >= 0xFF) da = -1; // todo: 图形更新 cleardevice(); putimage_alphatransparent(NULL, img, x, y, BLACK, (unsigned char)alpha); } // 释放img delimage(img); }
int main() { initgraph( 640, 480 ); setrendermode(RENDER_MANUAL); PIMAGE img = newimage(); getimage(img, "F://Pictures//12264878375.jpg"); double r = 0; fps f; for ( ; is_run(); delay_fps(6000) ) { r += 0.02; if (r > PI * 2) r -= PI * 2; cleardevice(); putimage_rotatezoom(NULL, img, 320, 240, 0.5f, 0.5f, r, 0.5f, 0, -1, 1); } return 0; }
int main() { setinitmode(0); JigsawView view; view.init(DEFAULT_WINDOW_WIDTH, DEFAULT_WINDOW_HEIGHT); setrendermode(RENDER_MANUAL); setbkmode(TRANSPARENT); setcaption("SpriteGenerator V1.2 by wang yang"); setfont(20, 10, "宋体"); for(view.render(); is_run(); ) { view.update(); if(!view.getSmoothMode()) delay_fps(60); else Sleep(1); } return 0; }
int main() { static struct polys p[10] = {{0}}; int n_points[10] = {3,3,3,6,7}; int n_poly[10] = {1,1,1,1,1}; int n_polys = 3, i; randomize(); //图形初始化 { setinitmode(INIT_ANIMATION); initgraph(width, height); width = getmaxx(); height = getmaxy(); setrendermode(RENDER_MANUAL); } //多边形对象初始化 for (i=0; i< n_polys; ++i) { initpolys(&p[i], n_poly[i], n_points[i]); } fps ui_fps; //主循环 for ( ; is_run(); delay_fps(60)) { if (kbhit() > 0) //有按键按下就退出 { break; } for (i=0; i< n_polys; ++i) { movepoly(p[i].p); } cleardevice(); for (i=0; i< n_polys; ++i) { draw_poly(p[i].p); } //imagefilter_blurring(NULL, 0xff, 0x100); } closegraph(); return 0; }