当我们用很快的速度翻书时,因为相邻的两页图画是连续且不同的,所以就会产生动画的效果。
这个例子告诉我们:动画其实是由一系列相似但不同的图画快速切换形成的,包括位置的移动画面的切换位置的移动一个最简单的动画可以这样制作:大家在一页纸上画一个吃豆人然后再下一页纸上画同样的吃豆人,只是小球在纸上的位置不同重复第2步,直到画够了因为每次吃豆人的位置不同,所以在快速翻动的时候会形成移动的效果因为吃豆人的位置是会变的,所以我们用变量来存放它的位置画面的切换在奔跑的吃豆人中,我们总共只用到了两张图片。
吃豆人的嘴巴吧唧吧唧的效果就是通过在这两张图片之间的不断切换形成的用C++画出上面的两个吃豆人有些复杂,所以在我们用其他方式画好这两个吃豆人之后,将它们保存成图片,接下来我们需要把图片加载到程序里循环——重复的艺术循环就是重复地做某些事情,计算机做起重复的事情来要比人类优雅很多吃豆人在跑起来的时候,只做了两件事情。
整个过程其实就是这两件事情的循环往复,也就是1,2,1,2,1,2…………位置在前一次的基础上右移10个单位张嘴或者闭嘴,也就是呈现一张图片计算机很擅长做重复的事情的,只要你通过正确的语句告诉他怎么做,做多少次for循环——重复指定的次数我们让吃豆人图片每次向右移动10,当第奇数次移动时张嘴,第偶数次移动时闭嘴。
做50次。
用for循环可以这样写全部代码以下就是我们完整的代码,你学会了吗?#include <graphics.h> #include <conio.h>#include <stdio.h>int main(){initgraph(1000, 1000);int left = 10;int top = 50;setbkcolor(WHITE);cleardevice();IMAGE img1, img2;loadimage(&img1, L"C:\Users\ginger\Desktop\ball.png", 200, 200); //载入图片,使用L+"绝对路径"loadimage(&img2, L"C:\Users\ginger\Desktop\ball2.png", 200, 200);for (int i = 1; i <= 50; i++) {if (i % 2 == 0) {cleardevice();putimage(left, top, &img1);}else if (i % 2 == 1) {cleardevice();putimage(left, top, &img2);}left += 10;Sleep(150);}_getch(); closegraph(); return 0;}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)