Dotcpp  >  编程教程  >  EasyX项目实战  >  C语言绘制弹球游戏1-小球开始移动

C语言绘制弹球游戏1-小球开始移动

点击打开在线编译器,边学边练

通过前面的基础准备,我们已经可以开始实现一个简单的弹球游戏了,这一节,我们先制作一个小球下落的动态效果。


那么既然要实现动态效果,本质就是游戏动画的原理,大家可以思考,小球从一个位置变到另一个位置,本质就是原来的位置擦除,在新的位置的重绘即可,是不是这样?

接着这个思路,如果我们反复执行下面四个步骤,会怎样?

  1. 绘制一个小球

  2. 等待x秒

  3. 擦除小球

  4. 将原先小球的位置下移


大家细想每一步,然后我们开始准备我们的代码。这一次,我们把小球再弄小一些,我们再绘制小球的时候,圆心的坐标我们不必写死(即固定的数值),而是用x,y变量替代x初始化为200,y初始化为10,从x轴200的位置下落,每次下落20,即fillcircle(x,y,10);  然后利用Sleep函数让小球停留,即可实现动态下落的效果。完整代码如下:

//弹球游戏
//www.dotcpp.com
#include <graphics.h>		// 引用图形库头文件
#include <conio.h>
int main()
{
	int i;
	int x=200,y=10;				//表示小球的圆心坐标
	initgraph(640, 480);	// 创建绘图窗口,大小为 640x480 像素

	for(i=0;i<100;i++)
	{	
		//绘制小球图案
		setfillcolor(GREEN);	
		fillcircle(x,y,10);
		Sleep(100);
		//原位置擦除小球图案
		setcolor(BLACK);
		setfillcolor(BLACK);
		fillcircle(x,y,10);

		y=y+10;	//向下移动小球位置		
	}
	
	getch();				// 按任意键继续
	closegraph();			// 关闭绘图窗口
	return 0;
}


编译运行后效果如下:

小球下落1

请大家自行上机实验理解程序,并尝试将小球向右水平移动。


好,大家完成之后,接下来我们可以尝试将小球从屏幕中心的位置开始,斜着像右下角移动,我们可以首先将圆心的位置x,y设置为屏幕的一半,每次的变化由原来的只更改y轴方向变为x轴和y轴都递增,实现向右下角的移动。代码如下:

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

#define WIDTH 640
#define HIGH 480
int main()
{
	int i;
	int x=WIDTH/2,y=HIGH/2;				//表示小球的圆心坐标
	initgraph(WIDTH, HIGH);	// 创建绘图窗口,大小为 640x480 像素
	for(i=0;i<100;i++)
	{	
		//绘制小球图案
		setfillcolor(GREEN);	
		fillcircle(x,y,10);
		Sleep(50);
		//原位置擦除小球图案
		setcolor(BLACK);
		setfillcolor(BLACK);
		fillcircle(x,y,10);
		
		x=x+5;
		y=y+5;		
	}
	
	getch();				// 按任意键继续
	closegraph();			// 关闭绘图窗口
	return 0;
}


运行后效果如下:

小球下落2

请大家自行理解并尝试


本文固定URL:https://www.dotcpp.com/course/1181

C语言图形编程
第一章 easyX图形编程入门
第二章 C语言用easy画图
第三章 C语言使用EasyX绘制文本
第四章 C语言使用EasyX图形处理
第五章 EasyX项目实战
Dotcpp在线编译      (登录可减少运行等待时间)