接着前面的成果,我们继续为我们的弹球游戏添加挡板(即玩家控制的挡板)及右墙,想一想我们的游戏机,游戏除了游戏画面区域,是不是还有个显示分数成绩的区域?没错这个右墙就是分离用的

游戏机


那么要知道easyX的中绘制一条线比较窄不好看,我们选择绘制一个像一条线的矩形,方法是使用fillrectangle函数,原型如下:

void fillrectangle(
	int left,
	int top,
	int right,
	int bottom);

我们分别传入其左上和右下两个点的坐标位置即可,宽度设置为5个像素,默认白色就可以,大家也可以根据自己喜好修改

参考代码如下:

//弹球游戏
//www.dotcpp.com
#include <graphics.h>        // 引用图形库头文件
#include <conio.h>

#define WIDTH 640
#define HIGH 480
#define R 10
int main()
{
    int i;
	int Vx=3,Vy=3;
    int x=(WIDTH-200)/2,y=HIGH/2;                //表示小球初始圆心坐标
    initgraph(WIDTH, HIGH);    // 创建绘图窗口 640x480 像素
	fillrectangle(WIDTH-200,0,WIDTH-195,HIGH);//绘制右墙
    BeginBatchDraw();

	while(1)
    {  
        //绘制小球图案
        setfillcolor(GREEN);   
        fillcircle(x,y,R);

		setfillcolor(YELLOW);
		fillrectangle(150,HIGH-5,250,HIGH);//绘制挡板

		FlushBatchDraw();
        Sleep(5);
        //原位置擦除小球图案
        setcolor(BLACK);
        setfillcolor(BLACK);
        fillcircle(x,y,R);
        
        x=x+Vx;
        y=y+Vy;
		if(x<=R || x>=WIDTH-203-R)
		{
			Vx=-Vx;
		//	getch();
		}
		if(y<=R || y>=HIGH-R)
			Vy=-Vy;
    }
    EndBatchDraw();
    getch();                // 按任意键继续
    closegraph();           // 关闭绘图窗口
    return 0;
}


注意代码每次除了新增功能外,还会修改原先的代码,进行优化或统一,请大家务必理解透彻,后面再统一代码才会觉得理所当然。

新增挡板和右墙后的效果如下:

弹球游戏效果



大家可以根据自己喜好调整颜色、宽度等等。下节我们开始控制挡板移动,加油~

点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)