栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

弹来弹去球——C语言

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

弹来弹去球——C语言

1.首先安装好Visual Studio, EasyX图形库。

2.打开VS,创建C++空项目。

3.在到项目源文件文件夹里添加新项(.cpp源文件),用来写程序(ball.cpp)

#include 
#include 
#include 

#define WIDTH 600 // 窗口宽
#define HEIGHT 600 // 窗口高
#define RADIUS 20 // 球的半径
#define INTERVAL 10 //暂停间隔(毫秒)
#define AX -0.1 // 球所受水平阻力的加速度(0.1的整数倍)
#define G 0.5 // 重力加速度

int main() {
	float y = 100; // 球的y坐标
	float x = 20; // 球的x坐标
	float vx = 50; // 球水平初始速度(向右为正)
	float vy = 0; // 球垂直初始速度(向下为正)
 
	initgraph(WIDTH, HEIGHT); // 初始化窗口
	while (1) {
		cleardevice(); // 清除之前绘制内容
		vy += G; // 更新垂直速度
		y += vy; // 更新y坐标

		if (int(vx/0.1) != 0) {
			vx += (vx > 0 ? AX : -AX); // 保持水平速度与水平加速度方向相反并更新
		}
		else {
			vx = float(0); // 如果水平速度为0,停止x轴方向运动
		}
		x += vx; // 更新x坐标
		

		if (y >= HEIGHT - RADIUS) // 球从地面反弹,Vy方向改变且变小
			vy *= -0.95;
		if (x >= WIDTH - RADIUS || x <= RADIUS) // 球从两边墙壁反弹
			vx *= -1;

		if (x > WIDTH - RADIUS) // 控制球不出界
			x = WIDTH - RADIUS;
		if (x < RADIUS) // 控制球不出界
			x = RADIUS;
		
		if (y > HEIGHT - RADIUS) // 控制球不出界
			y = HEIGHT - RADIUS;
		fillcircle(x, y, RADIUS); // 绘制球
		Sleep(INTERVAL); // 间隔暂停
	}
	// _getch(); // 等待按键
	closegraph(); // 关闭窗口
	return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/862422.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号