用C++代码写一个粉红色可跳动的爱心
时间: 2023-11-05 18:04:15 浏览: 240
以下是使用C++和图形库graphics.h实现的一个粉色可跳动的爱心:
```cpp
#include <graphics.h>
int main()
{
initwindow(800, 600, "Jumping Heart");
int x = 400, y = 300, r = 150;
int dy = 0, ay = 1;
while (true) {
cleardevice();
setfillstyle(SOLID_FILL, MAGENTA);
setcolor(MAGENTA);
fillellipse(x, y, r, r);
fillellipse(x + r, y, r, r);
setfillstyle(SOLID_FILL, RED);
setcolor(RED);
int px[] = { x - r, x + r, x };
int py[] = { y + r, y + r, y + r * 2 };
fillpoly(3, px, py);
delay(10);
dy += ay;
y += dy;
if (y >= 600 - r * 2) {
dy = -dy * 0.8;
y = 600 - r * 2;
}
}
getch();
closegraph();
return 0;
}
```
解释一下代码:
- `initwindow(800, 600, "Jumping Heart")`:创建一个800×600的窗口,并设置标题为"Jumping Heart"。
- `setfillstyle(SOLID_FILL, MAGENTA)`:设置填充样式为实心填充,颜色为洋红色。
- `fillellipse(x, y, r, r)`:绘制一个以(x, y)为中心,半径为r的圆形。
- `fillpoly(3, px, py)`:绘制一个由3个点(px[0], py[0])、(px[1], py[1])、(px[2], py[2])组成的多边形。
- `delay(10)`:延迟10毫秒,使得爱心实现跳动的效果。
- `dy += ay`:每次循环更新dy的值,表示爱心的跳跃速度。
- `if (y >= 600 - r * 2)`:如果爱心跳到了窗口底部,则将dy取反并衰减0.8倍,使得爱心实现弹跳效果。
- `getch()`和`closegraph()`:等待用户按下任意键,然后关闭图形窗口。
阅读全文