用EasyX绘制多球碰撞中的碰撞代码
来源:互联网 发布:linux延时函数usleep 编辑:程序博客网 时间:2024/06/06 19:15
float minDistances2[BallNum][2]; // 记录某个小球,距离它最近的小球的距离,这个小球的下标 for (i=0;i<BallNum;i++) { minDistances2[i][0] = 9999999; minDistances2[i][1] = -1; } // 求解所有小球两两之间的距离平方 for (i=0;i<BallNum;i++) { for (j=0;j<BallNum;j++) { if (i!=j) // 自己和自己不需要比 { float dist2; dist2 = (ball_x[i] - ball_x[j])*(ball_x[i] - ball_x[j]) + (ball_y[i] - ball_y[j])*(ball_y[i] - ball_y[j]); if (dist2<minDistances2[i][0]) { minDistances2[i][0] = dist2; minDistances2[i][1] = j; } } } } // 判断球之间是否碰撞 for (i=0;i<BallNum;i++) { if (minDistances2[i][0]<=4*radius*radius) // 最小距离小于阈值,发生碰撞 { j = minDistances2[i][1]; // 交换速度 int temp; temp = ball_vx[i]; ball_vx[i] = ball_vx[j]; ball_vx[j] = temp; temp = ball_vy[i]; ball_vy[i] = ball_vy[j]; ball_vy[j] = temp; minDistances2[j][0] = 999999999; // 避免交换两次速度,又回去了 minDistances2[j][1] = -1; } }
阅读全文
0 0
- 用EasyX绘制多球碰撞中的碰撞代码
- 多球碰撞
- 碰撞
- 碰撞
- 碰撞
- 碰撞
- 碰撞
- 碰撞
- 碰撞
- 碰撞
- 碰撞
- Unity3D多物体碰撞关键代码
- JAVAAPPLET游戏碰撞代码
- 一段碰撞检测代码
- ode中的碰撞
- Ogre中的碰撞检测
- Ogre中的碰撞检测
- Ogre中的碰撞检测
- 将逗号分隔的字符串转换为List以及List转逗号分隔的字符串
- Java GUI弹出对话框中的几种方式
- Linux中Nginx的下载安装与配置
- python启动应用程序和终止应用程序
- 秒杀系统架构分析与实战
- 用EasyX绘制多球碰撞中的碰撞代码
- Git的使用说明
- SQL server2008获取创建表里各列的属性
- LeetCode #27
- 1819: [JSOI]Word Query电子字典
- AIX系统NONCOMP内存占比过高导致换页内存使用过多问题
- SQLServer 镜像配置操作
- android集成微信分享
- JDK8日期处理API