刚刚在学easyx的时候,键盘读取,如何实现小球移动,但是小球容易出界,界限该如何判定?
可以参考我这个程序
在这里插入图片描述
如果只写if判断,小球就会卡在边界不动,解决如下。

#include <graphics.h>
#include <cstdio>
int main() {
	double x = 50, y = 50;//定义小球初始位置
	initgraph(1040, 600, SHOWCONSOLE);//设置图形边框
	while (1) {
		setbkcolor(WHITE);//设置背景颜色
		cleardevice();//
		//int x = 50, y = 50;
		double v = 0.1;//定义速度v  int 速度太快
		setfillcolor(BLUE);//设置小球颜色
		int r = 10;//小球半径 写这样方便修改
		fillcircle(x, y, r);//设置小球大小位置
		FlushBatchDraw();//结束批量绘制
		//如果到边界了  就把对于坐标返回  然后继续读取就行
		if (GetAsyncKeyState('W') && y > r)//上移
			y -= v;
		if (GetAsyncKeyState('S') && y < 600 - r)//下移
			y += v;
		if (GetAsyncKeyState('A') && x > r)//左移
			x -= v;
		if (GetAsyncKeyState('D') && x < 1000 - r)//右移
			x += v;
	}
	getchar();
	closegraph();
	return 0;
}
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐