c语言中的简单动画(带有源码)
动画
1. 怎样实现动画
相信大家已经对动画的原理已经不陌生了。想要目标物体动起来,只需要逐个播放目标物体每一时刻位
置的图片。只要播放的速度足够快,人们就会在视觉上认为目标物体动起来了。一般来说电视每秒会播
放24帧静态画面,而游戏则更高60 120。
#include<stdio.h>
#include<easyx.h>
int main() {
//初始化画布
initgraph(800, 600);
//设置原点
setorigin(400,300);
//调整坐标系
setaspectratio(1, -1);
//设置背景色
setbkcolor(RGB(164, 225, 202));
cleardevice();
setfillcolor(WHITE);
//绘制圆
solidcircle(-400, 0, 70);
//关闭拦截
getchar();
//关闭画布
closegraph();
}
实现圆的移动
//实现圆的移动 就会不断的改变圆心位置 进行绘制
//实现圆的移动 就会不断的改变圆心位置 进行绘制
for (int i = -400; i < 400; i+=25)
{
solidcircle(i, 0, 70);
getchar();
cleardevice();
}
按一次回车 就会执行循环体
把圆心的x +25 清空画布在绘制
就实现动起来了
实现自动的动
使用sleep()
for (int i = -400; i < 400; i+=5)
{
solidcircle(i, 0, 70);
Sleep(10);
cleardevice();
}
速度和帧数的计算
1000ms=1s 1000毫秒=1秒
1000/10 =100 每秒100次执行 也就是100个帧
x+=5 每一帧移动5
动画要想流畅 帧数需要提高60 就是每秒执行的次数
和移动的距离要适当 不可过大
移动的星星
#include<stdio.h>
#include<easyx.h>
#include<math.h>
#define PI 3.14
void fivePointedStarts() {
//变化角度
double delta = 2 * PI / 5;
//起始角度
double start = PI / 2;//90度
//半径
int r = 90;
//绘制五个点
POINT points[5];
for (int i = 0; i < 5; i++)
{
points[i].x = cos(start + i * delta * 2) * r;
points[i].y = sin(start + i * delta * 2) * r;
}
//链接 五个点
polygon(points, 5);
}
int main() {
//初始化画布
initgraph(800, 600);
//设置原点
setorigin(400,300);
//调整坐标系
setaspectratio