网站大量收购独家精品文档,联系QQ:2885784924

9w-动画工具包介绍by张艳梅.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9w-动画工具包介绍by张艳梅

动画工具包介绍 -Egg库、EasyX;提纲;图形库函数EGG简介;可共享的库文件-静态库文件;可共享的库文件-动态库文件;Egg库使用方法;Egg-创建并初始化动画窗口;Egg窗口坐标;动画实现 盘子: Egg图形窗口的昵称 蛋egg:透明的图形元素篮子、可以控制移动。 所绘制的图形元素都是画在egg上。初始有一个背景egg,之后你可以自己LayEgg,生多少egg都可以。 每个egg是独立移动,不会影响其它的egg。;可以下多个egg蛋,当两个蛋重合,后下的蛋会覆盖先下的蛋。使用ChangeEggLayer()可以改变egg的层次,调整互相之间的覆盖关系。 需要特别注意的是,在egg上绘画时,所采用的坐标系是每个egg自己的独立坐标,而不是盘子坐标。也就是说,绘画时,不需要考虑egg在盘子内的位置(egg会移动),egg自己的左下角永远是坐标原点。 ;如何下蛋: 每次调用LayEgg()都会生成一个新的egg,并把这个egg的句柄返回给你。 HEGG LayEgg(void); 执行完EggStart()后,便已经偷偷建立了一个背景蛋,所有的绘图操作,都是在这个egg上进行的。当LayEgg()后,再执行绘图操作,就是在新的egg上绘图了。 ;Egg-生成动画对象 画蛋;Egg-画笔;画笔相关函数;Egg-画蛋;Egg-画蛋;Egg-画蛋;;#include egg.h #define NUMBER_OF_EGG 5 int main(void) { HEGG hEggs[NUMBER_OF_EGG]; int i; EggStart(100,50); for (i=0; iNUMBER_OF_EGG; i++) { hEggs[i] = LayEgg(); DrawArc(i+10, 180, 180);//在当前活动的蛋上画一个半圆 } WaitForExit(); //等待用户关闭窗口 return 0; } ;Egg-画蛋;Egg-画蛋;Egg-画蛋;;如何设置活动蛋(被激活的蛋): 绘图和移动都是在活动蛋上进行的; 如果想回头在旧egg上绘图,可以使用 void SetActiveEgg(HEGG hEgg)函数 将旧的egg变成活动蛋 因此,需要把每次LayEgg()的返回值(egg的句柄)保存下来,从而将旧蛋变成活动蛋; ;如何动蛋 移动是在活动蛋上进行的。移动一个蛋时,该蛋上所有的图形都会一起动。 如果只是想动整个图形的一部分(如电梯、小火车),则该部分一定要在一个独立的egg上绘制。 void MoveEgg(double x, double y); 在盘子上移动活动egg到盘子内的坐标x,y处 void OffsetEgg(double dx, double dy); 在盘子上把活动egg移动 (dx,dy) 位移;//画5个能分别动起来的半圆 void donghua1(void) { HEGG hEggs[NUMBER_OF_EGG]; int i; EggStart(100,50); //画5个不同半径的半圆 for (i=0; iNUMBER_OF_EGG; i++){ hEggs[i] = LayEgg(); DrawArc(i+10, 180, 180); } ; //让5个半圆分别移动 i = 0; while (WaitFor(100)){ SetActiveEgg(hEggs[i]); OffsetEgg((NUMBER_OF_EGG - i - 1) * 10, 0); if (i NUMBER_OF_EGG - 1) i++; else i = 0; } } ;//画5个能同时动起来的半圆 void donghua2(void) { HEGG hEggs[NUMBER_OF_EGG]; int i; EggStart(100,50); SetAutoUpdate(0); //设置不自动更新屏幕 for (i=0; iNUMBER_OF_EGG; i++){ hEggs[i] = LayEgg(); DrawArc(i+10, 180, 180); }; Update();//也可以不要 i = 0; while (WaitFor

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档