·设为首页
·收藏本站  
·错误报告
您现在的位置: 首页>>理工论文>>计算机论文>>新闻

站长欢迎各位朋友投稿6366083#163.com(#换成@),本站永久免费,请各位朋友记住本站网址:www.lwen.net,别忘记介绍新朋友过来奥^_^

会员登陆
最近更新
有广告才有收入,网站才能发展。
多页动画技术
  发表时间:2005-9-28 15:04:02  浏览人次: 我要投稿
> 1.选择一种至少有两个可用显示页的视频模式(示例中为EGA640×200,16色4页)。 2.使用-setvideomode()函数获取选择的视频模式。在当前显示页(0页)上绘制出序列中的第一帧。 3.在需要绘制出序列中下一帧时,使用-setactivepage()函数设置激活页为备用显示项,仅仅改变激活页(不是可见页)。 4.绘制出下一帧。此帧将被绘制在备用显示页(页1)上,而当前页(页0)继续被显示。在以后重复这一步时在绘制新的一帧前擦除掉已有的帧。 5.绘制出新的一帧以后,使用-setvisualpage()函数将可见页设置为备用页。此时,备用页成为当前页。 6.重复步骤3到5直到完成了动画序列为止。以下程序(采用Visual C++)演示了实际的多页动画,例子中的动画序列读者自行设计。#include <conio.h>#include <graph.h}#include <time.h}#define LAST-FRAME 4/* Total frames in the sequence. */#define DRAW 1 /* Code for the draw operation. */#define DELTA-X 10 /* Pixels moved per frame change. */#define HALF-SECOND 500 /* 500 msec delay between frames. */#define MAX-X 600 /* Max X position before termination. */#define SETUP-DISPLAY \par\par -setvideomode(-HRES16COLOR); \par#define EXIT-TO-DOS \par\par -setvideomode (-DEFAULTMODE); \par/****页切换和绘制动画序列****/#define PAGE-FLIP(v) \par\par if(v==0) v=1; \parelse v=0; \par-setactivepage(v); \par-clearscreen(-GCLEARSCREEN); \par-settextposition(1,16); \par-outtext( \par "Example:Multiple Page Animation"); \pardraw-frame(current-frame,px,py); \par-setvisualpage(page); \parcreate-delay(HALF-SECOND); \parint px,py; /* Current character position. */int page; /* Current page displayed. */int current-frame; /* Current frame displayed. */main()SETUP-DISPLAYcycle-frames();EXIT-TO-DOScycle-frames()current-frame=0;px=0;py=85;page=0;while(px<=MAX-X)current-frame++;if (current-frame>LAST-FRAME)current-frame=2;PAGE-FLIP(page)px=px+DELTA-X;current-frame=1;PAGE-FLIP(page)draw-frame(frame,x,y)int frame,x,y;switch(frame)case 1:frame-1(DRAW,x,y);break;case 2:frame-2(DRAW,x,y);break;case 3:frame-3(DRAW,x,y);break;case 4:frame-4(DRAW,x,y);break;create-delay(td)/**同Borland C++中的delay(td)函数**/int td;time-t ts1,ts2;ts2=ts1=clock();while(ts1+td>ts2)ts2=clock(); 作者:黄向明
文章搜索
关键字:
Copyright ©2005 - 2006 Lwen.Net      广告合作—QQ 1573351 Email:6366083#163.com(#换成@)