目录
1.需求
2.运动的小球
3.碰到边缘反弹
4.圆周撞击或越过边界反弹
5.绘制和移动挡板
6.小球碰到挡板反弹
7.游戏失败时该如何处理
8.随机初始条件
9.完整代码
我们这一节将结合动画和键盘交互的知识来做一个小游戏
1.需求
我们先看需求:小球在窗体内运动,撞到除了底边外的另外三个边缘就反弹一次,如果小球撞到底边,游戏结束。玩家可以控制在底边上的一个挡板,让小球撞击到挡板上而反弹,阻止小球撞到底边
2.运动的小球
这里我们先绘制好一个圆形
#include<easyx.h>
#include<stdio.h>
int main()
{
initgraph(800, 600);
setorigin(400, 300);
setaspectratio(1, -1);
setbkcolor(RGB(164, 225, 202));
cleardevice();
setfillcolor(WHITE);
solidcircle(0, 0, 40);
getchar();
return 0;
}
接下来我们想让小球一开始就往右上方运动,也就是说它的速度和x轴的夹角是45度
我们假设vx=5,vy=5,则
我们再考虑一下帧率的问题
这样子,小球就可以往右上方运动了
我们看代码
#include<easyx.h>
#include<stdio.h>
int main()
{
initgraph(800, 600);
setorigin(400, 300);
setaspectratio(1, -1);
setbkcolor(RGB(164, 225, 202));
cleardevice();
setfillcolor(WHITE);
solidcircle(0, 0, 40);
int x = 0, y = 0;
int vx = 5, vy = 5;
int r = 40;
while (1)
{
cleardevice();
solidcircle(x, y, r);
Sleep(40);
x += vx;
y +