开发日志_Jan.9
今天主要工作为修改昨天的碰撞引擎不符合预期的部分。
经过了昨天的工作,碰撞算法已经初见雏形。但是主要有两个问题:
- 碰撞反弹的方向与预期不符合
碰撞后球与机器人存在一个“黏在一起”的时间。后经过控制台输出的Debug过程发现是相遇时发生了多次碰撞。这是与预期严重不符的。
第一个问题很快得到了解决:
即算法中一个减号误写成加号引起的(说来容易,还是找了很久)。
第二个问题很久没有得到解决。
一开始考虑到是步长太长导致球“嵌入”机器人内部,遂减小步长。同时为了维持球速相应的缩短了线程循环的时间间隔。未能解决问题,同时貌似出现了线程冲突的问题导致了球速的不稳定。
然后,依然按照防止球“嵌入”的角度考虑,设置一个缓冲区。设计算法,使球的边缘在缓冲区内立即反弹,超出缓冲区时不反弹。想法复杂但是未能结局问题。
最后,依靠汤松岩的经验解决了问题。他告诉我这个问题有可能是类型转换后精度损失引起的。我马上明白问题出现在哪里了:汤给我的框架中,获取球、机器人坐标的GetX()和GetY()函数的返回值是int。而我自己设计的引擎中大量使用这两个函数进行速度计算,而速度的类型是float。经过组长的肯定,我将框架中的函数返回值改为float,问题解决,实在不容易。很多想法虽重要,少了经验还是不行。开发的过程中还是要多请教有经验的人,不可过于盲目地“独立思考”,以免陷入自身的局限性。
最后,把我的Beta Version Push到了Github上,如果有问题再继续解决。第一阶段工作告一段落。收货颇多!
开发日志_Jan.9的更多相关文章
- 开发日志_Jan.6.2017
Github Jan.2 接到了汤松岩的GUI框架,开始复习和学习C++的使用方法(之前的开发经历主要使用的Java,对C++和QT环境都需要一个再了解). Jan.3 正式开始工作.开始在Ubunt ...
- 开发日志_Jan.8.2017
这两天继续着手开发碰撞部分. 主要工作是写碰撞类和运动线程类.碰撞主要在于算法,运动线程只要管理好就行了. 之前碰撞测试中(即还未添加完整碰撞算法时)遇到各种bug,疑似机器人和小球的定位点不明所造成 ...
- 《Invert》开发日志05:终止
今天终于看了久闻大名的<独立游戏大电影>,然后我就做了一个坑爹的决定:终止“Invert”项目的开发.没错,在还没正式开工之前,我就决定停掉这个项目,而且是永久终止.做这个决定并不是因为觉 ...
- [课程设计]任务进度条&开发日志目录
任务进度条&开发日志目录 周期 时间 任务 Sprint One 11.14 ● Scrum团队分工及明确任务1.0 Sprint One 11.15 ● Scr ...
- NET-SNMP开发——日志输出
NET-SNMP开发——日志输出 net-snmp的日志输出功能是很强大的,与日志输出相关函数声明在net-snmp-5.7.3\include\net-snmp\library\snmp_loggi ...
- 仿酷狗音乐播放器开发日志十九——CTreeNodeUI的bug修复二(附源码)
转载请说明原出处,谢谢 今天本来打算把仿酷狗播放列表的子控件拖动插入功能做一下,但是仔细使用播放列表控件时发现了几个逻辑错误,由于我的播放 列表控件是基于CTreeViewUI和CTreeNodeUI ...
- .NET Core开发日志——Entity Framework与PostgreSQL
Entity Framework在.NET Core中被命名为Entity Framework Core.虽然一般会用于对SQL Server数据库进行数据操作,但其实它还支持其它数据库,这里就以Po ...
- .NET Core开发日志——RequestDelegate
本文主要是对.NET Core开发日志--Middleware的补遗,但是会从看起来平平无奇的RequestDelegate开始叙述,所以以其作为标题,也是合情合理. RequestDelegate是 ...
- Chino 操作系统开发日志 (1) - 为 IoT 而生
引言 很多人都听说过 IoT (物联网)这个词,越来越多的人在装修时开始选择智能家居,很多人也购买智能音箱做智能家居控制,想必未来一定是 AI + 物联网的时代. 一种技术要发展并走向成熟必须要降低门 ...
随机推荐
- 单点登录CAS使用记(八):使用maven的overlay实现无侵入的改造CAS
前期在学习CAS部署的过程中,都是网上各种教程,各种方案不停的尝试. 期间各种侵入改源码,时间久了,改了哪个文件,改了哪段配置,增加了哪段代码,都有可能混淆不清了. 而且最大的问题是,万一换个人来维护 ...
- HTML5 canvas 绘制五星红旗
这个例子并不是自己写的,在网上找的案列,仿照写的,,,自己真的公布董这些算法,看完这个例子还是有一点模糊,,, 如果谁看的比较明白,指点一下,,,多谢!!!! <!doctype html> ...
- ubuntu 引导删除
点开始,在搜索中输入cmd,在搜到的cmd上右键以管理员身份运行,在打开的cmd中输入命令:bcdedit在命令结果中找到类似如下的版块: 实模式启动扇区---------------------标识 ...
- 成绩转换 AC 杭电
成绩转换 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- HEX和BIN文件的区别
以下的内容是从网上转载来的,原文地址:http://blog.csdn.net/zhangliang_571/article/details/8519469 在这里感谢原作者. 1,是在keil中编 ...
- $ npm install opencv ? 你试试?! 在windows环境下,使用node.js调用opencv攻略
博主之前写过一篇文章<html5与EmguCV前后端实现——人脸识别篇>,叙述的是opencv和C#的故事.最近在公司服务器上更新了一套nodejs环境,早就听闻npm上有opencv模块 ...
- 转:40多个关于人脸检测/识别的API、库和软件
文章来自于:http://blog.jobbole.com/45936/ 自从谷歌眼镜被推出以来,围绕人脸识别,出现了很多争议.我们相信,不管是不是通过智能眼镜,人脸识别将在人与人交往甚至人与物交互中 ...
- Windows内存小结(有好多图,比较清楚)
以前写过一篇理解程序内存, 当时主要是针对用户态,下面再稍微深入一点: 我们以32位程序为例(不启用AWE), 总共4G虚拟空间,其中低2G属于用户态, 高2G属于操作系统内核, 每个程序都有自己的低 ...
- FE: Responsive Web Design Overview
布局特点 1. 单列布局 vs 水平布局 手机屏幕宽度较小,因此多采用单列布局. 反观桌面网页设计,为了利用宽度,往往使用各种水平布局的组件,诸如水平导航栏,水平按钮组,水平分页等.然而水平布局 ...
- ubuntu安装使用kdevelop
vim是好用,但是有时候操作不那么人性化,用一个ide可能感觉比较好,ubuntu下面比较好的c/c++ ide出名的有kdevelop,Qt等. kdevelop安装: sudo apt-get u ...