c语言动画代码大全
C语言并不是一个专门用于图形和动画的编程语言,但你可以使用一些库来创建简单的动画效果。一个常用的库是graphics.h
,它是Turbo C编译器中的一部分,提供了一些用于图形编程的函数。graphics.h
是特定于Turbo C的,并且不是标准C的一部分,因此在其他编译器中可能无法正常工作。
c#include <graphics.h>
#include <conio.h>
int main() {
int gd = DETECT, gm;
initgraph(&gd, &gm, "C:\\Turboc3\\BGI");
int x = getmaxx() / 2;
int y = getmaxy() / 2;
int radius = 50;
while (!kbhit()) {
setcolor(RED);
circle(x, y, radius);
delay(100);
cleardevice();
x += 10;
if (x > getmaxx() + radius)
x = -radius;
}
closegraph();
return 0;
}
此代码使用graphics.h
库在屏幕上绘制一个红色的圆,并通过改变圆的横坐标来创建动画效果。动画将持续直到用户按下任意键。
graphics.h
在现代编译器中可能无法使用。如果你使用的是较新的编译器,你可能需要考虑使用其他图形库,比如SFML、SDL或OpenGL,这些库支持更现代的图形编程。
如果你想尝试使用其他图形库,
c#include <SDL2/SDL.h>
int main() {
SDL_Init(SDL_INIT_VIDEO);
SDL_Window *window = SDL_CreateWindow("Simple Animation", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SDL_WINDOW_SHOWN);
SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
SDL_Event event;
int quit = 0;
int x = 0;
int speed = 5;
while (!quit) {
while (SDL_PollEvent(&event) != 0) {
if (event.type == SDL_QUIT) {
quit = 1;
}
}
SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
SDL_RenderClear(renderer);
SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255);
SDL_Rect rect = {x, 300, 50, 50};
SDL_RenderFillRect(renderer, &rect);
SDL_RenderPresent(renderer);
SDL_Delay(30);
x += speed;
if (x > 750 || x < 0) {
speed = -speed;
}
}
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
这个例子使用SDL库创建了一个窗口,并在窗口中绘制一个红色的矩形。矩形的位置会随着时间的推移而改变,创建出一个简单的动画效果。