今天主要工作为修改昨天的碰撞引擎不符合预期的部分。

经过了昨天的工作,碰撞算法已经初见雏形。但是主要有两个问题:

  • 碰撞反弹的方向与预期不符合
  • 碰撞后球与机器人存在一个“黏在一起”的时间。后经过控制台输出的Debug过程发现是相遇时发生了多次碰撞。这是与预期严重不符的。

    第一个问题很快得到了解决:

    即算法中一个减号误写成加号引起的(说来容易,还是找了很久)。

    第二个问题很久没有得到解决。

    一开始考虑到是步长太长导致球“嵌入”机器人内部,遂减小步长。同时为了维持球速相应的缩短了线程循环的时间间隔。未能解决问题,同时貌似出现了线程冲突的问题导致了球速的不稳定。

    然后,依然按照防止球“嵌入”的角度考虑,设置一个缓冲区。设计算法,使球的边缘在缓冲区内立即反弹,超出缓冲区时不反弹。想法复杂但是未能结局问题。

    最后,依靠汤松岩的经验解决了问题。他告诉我这个问题有可能是类型转换后精度损失引起的。我马上明白问题出现在哪里了:汤给我的框架中,获取球、机器人坐标的GetX()和GetY()函数的返回值是int。而我自己设计的引擎中大量使用这两个函数进行速度计算,而速度的类型是float。经过组长的肯定,我将框架中的函数返回值改为float,问题解决,实在不容易。很多想法虽重要,少了经验还是不行。开发的过程中还是要多请教有经验的人,不可过于盲目地“独立思考”,以免陷入自身的局限性。

    最后,把我的Beta Version Push到了Github上,如果有问题再继续解决。第一阶段工作告一段落。收货颇多!

开发日志_Jan.9的更多相关文章

  1. 开发日志_Jan.6.2017

    Github Jan.2 接到了汤松岩的GUI框架,开始复习和学习C++的使用方法(之前的开发经历主要使用的Java,对C++和QT环境都需要一个再了解). Jan.3 正式开始工作.开始在Ubunt ...

  2. 开发日志_Jan.8.2017

    这两天继续着手开发碰撞部分. 主要工作是写碰撞类和运动线程类.碰撞主要在于算法,运动线程只要管理好就行了. 之前碰撞测试中(即还未添加完整碰撞算法时)遇到各种bug,疑似机器人和小球的定位点不明所造成 ...

  3. 《Invert》开发日志05:终止

    今天终于看了久闻大名的<独立游戏大电影>,然后我就做了一个坑爹的决定:终止“Invert”项目的开发.没错,在还没正式开工之前,我就决定停掉这个项目,而且是永久终止.做这个决定并不是因为觉 ...

  4. [课程设计]任务进度条&开发日志目录

    任务进度条&开发日志目录 周期 时间 任务 Sprint One   11.14     ●  Scrum团队分工及明确任务1.0    Sprint One   11.15   ●  Scr ...

  5. NET-SNMP开发——日志输出

    NET-SNMP开发——日志输出 net-snmp的日志输出功能是很强大的,与日志输出相关函数声明在net-snmp-5.7.3\include\net-snmp\library\snmp_loggi ...

  6. 仿酷狗音乐播放器开发日志十九——CTreeNodeUI的bug修复二(附源码)

    转载请说明原出处,谢谢 今天本来打算把仿酷狗播放列表的子控件拖动插入功能做一下,但是仔细使用播放列表控件时发现了几个逻辑错误,由于我的播放 列表控件是基于CTreeViewUI和CTreeNodeUI ...

  7. .NET Core开发日志——Entity Framework与PostgreSQL

    Entity Framework在.NET Core中被命名为Entity Framework Core.虽然一般会用于对SQL Server数据库进行数据操作,但其实它还支持其它数据库,这里就以Po ...

  8. .NET Core开发日志——RequestDelegate

    本文主要是对.NET Core开发日志--Middleware的补遗,但是会从看起来平平无奇的RequestDelegate开始叙述,所以以其作为标题,也是合情合理. RequestDelegate是 ...

  9. Chino 操作系统开发日志 (1) - 为 IoT 而生

    引言 很多人都听说过 IoT (物联网)这个词,越来越多的人在装修时开始选择智能家居,很多人也购买智能音箱做智能家居控制,想必未来一定是 AI + 物联网的时代. 一种技术要发展并走向成熟必须要降低门 ...

随机推荐

  1. QT5控件-QDateTimeEdit和类QDateTime

    #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QDateTime> #i ...

  2. QT学习篇: 入门(二)

    库存订单界面: (1)包括序号.订单代码.订单名称.产品代码.产品类型.计划加工数量.最晚完工日期. (2)model增加临时map,用于存储库存订单. (3)后台计算完成后,会将库存订单推送给前台, ...

  3. HTML5 canvas文本属性与方法

    文本属性和方法 font                        设置或返回文本内容的当前字体属性 textAlign                设置或返回文本内容的当前对齐方式 start ...

  4. HTML5 web开发时遇到的一个奇葩问题。

    昨天做了一个手机端的H5 页面. 首先就是各种兼容测试,调整修复..一系列操作之后,拿过来N多手机神马华为.小米.三星.水果5.6.plus,一番测试之后.嗯,还不错,稍作等待之后就上线了. 这是分割 ...

  5. javascript 不用ajax 用 iframe 子域名下做到ajax post数据

    最近在一个项目中遇到了ajax跨域的问题,情况如下.有三个域名分别是 a.xx.com b.xx.com c.xx.com 这三个域名都会用用ajax post方式相互读取数据.文笔不好, 不写了妈蛋 ...

  6. javascript控制图片等比例缩放

    <SCRIPT language="JavaScript"> function DrawImage(ImgD,FitWidth,FitHeight){ var imag ...

  7. .Net冷知识之动态查找类型时的程序集路径问题

    今天就说说.Net中通过反射取得某个类型时,我们怎么知道这个类型在硬盘上的哪个角落?比如说,假如我们需要要求服务端动态载入某个数据源,那服务端怎么知道数据源在哪? 网上大部分的教程都写着,可以使用As ...

  8. 在选择“Add Library Package reference”时提示:无法加在一个或多个请求的类型,有关更多信息,请检索LoaderException属性

  9. 超级列表框List Ctrl

    LVCFMT_CENTER居中对齐 LONG styles; CListCtrl *str=new CListCtrl; str->Create(LVS_ICON, CRect(,,,), ); ...

  10. XP系统显示文件夹选项属性被删除解决注册表

    Title:XP系统显示文件夹选项属性被删除解决注册表 -- 2010-11-18 13:17 昨天中了个毒窝,还有恶意软件,十分不爽. 开始恶意软件把显示所有文件夹给删除了,去找了个注册表,重新注册 ...