Easyx GetAsyncKeyState 实现小球移动 防止出界 设置界限 边界设定(easyx | vs2022 | c / c++)
·
刚刚在学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;
}
更多推荐
所有评论(0)