libgdx, contact 接触的调用情况分析

背景:想要实现body1与body2接近到一个距离s后,将两者合并。

想法1:调用在回调函数:beginContact 中完成,但最终没能实现想要的效果。这个函数只在fixture1与fixture2发生接触的瞬间被调用。只要两个fixture没有分离,无论怎么移动body2,这个函数是不会再被调用的了,所以我的想法失败了。

endContact函数,在两个fixture分离时被调用一次;

preSolve,postSolve函数在两fixture碰撞时调用,且是成对出现。

如果想要“两个fixture有接触时就进行合并的效果”,那可以使用想法1。且在实验时发现,当beginContact函数被调用时,body1与body2之间的距离s的值不完全相同。产生不同的原因有2:第一,这个接触的时机与step()函数有关;第二,我计算的是两个body之间的position的距离,而beginContact函数被调用的时机是两个fixture的接触。换句话说,是两个圆形的话,则beginContact被调用时,这个距离的值应该是一样的。

想法2:在body2被拖动的过程中判定body1与body2的距离s,然后判断是否满足需求;

想法3:在渲染函数中判定body1与body2的距离s,在step函数之后;

个人偏向使用这种,因为body的属性修改及body对象的删除都在这里进行操作,否则可能会异常。

但这个渲染函数的调用是相当频繁的,则为了提高性能,在beginContact与endContact之间进行距离s的判定!

libgdx, contact 接触的调用情况分析

时间: 2024-11-06 16:45:55

libgdx, contact 接触的调用情况分析的相关文章

Android群英传笔记——第八章:Activity与Activity调用栈分析

Android群英传笔记--第八章:Activity与Activity调用栈分析 开篇,我们陈述一下Activity,Activity是整个应用用户交互的核心组件,了解Activity的工作模式,生命周期和管理方式,是了解Android的基础,本节主讲 Activity的生命周期与工作模式 Activity调用栈管理 一.Activity Activity作为四大组建出现平率最高的组件,我们在哪里都能看到他,就让我们一起先来了解一下他的生命周期 1.起源 Activity是用户交互的第一接口,他

Transition 调用方法分析

Transition 调用方法分析 TransitionManager.transitionTo(Scene) /** * Change to the given scene, using the * appropriate transition for this particular scene change * (as specified to the TransitionManager, or the default * if no such transition exists). * *

循环开协程情况分析

循环开协程情况分析 代码 package main import( "fmt" "runtime" "sync" ) //for循环只是用来创建协程而已,当协程创建完成之后,就不再受for控制 func main(){ runtime.GOMAXPROCS(1) wg := sync.WaitGroup{} wg.Add(60) for a:=0;a<10;a++{ fmt.Println("这里先运行",a) go f

复旦大学2015--2016学年第二学期高等代数II期末考试情况分析

一.期末考试成绩班级前几名 胡晓波(90).杨彦婷(88).宋卓卿(85).唐指朝(84).陈建兵(83).宋沛颖(82).王昊越(81).白睿(80).韩沅伯(80).王艺楷(80).张漠林(80).张子涵(80) 二.总成绩计算方法 平时成绩根据交作业的次数决定,本学期共交作业12次,10次以上(包括10次)100分,少一次扣10分. 总成绩=平时成绩*20%+期中考试成绩*20%+期末考试成绩*60% 三.最终成绩及人数 最终成绩 人数 A 26 A- 1 B+ 14 B 16 B- 20

复旦大学2016--2017学年第二学期高等代数II期末考试情况分析

一.期末考试成绩班级前十五名 林晨(93).朱民哲(92).何陶然(91).徐钰伦(91).吴嘉诚(91).于鸿宝(91).宁盛臻(90).杨锦文(89).占文韬(88).章俊鑫(87).颜匡萱(87).王旭磊(87).王泽斌(87).沈伊南(86).李飞虎(86) 二.总成绩计算方法 平时成绩根据交作业的次数决定,本学期共交作业13次,10次以上(包括10次)100分,少一次扣10分. 总成绩=平时成绩*15%+期中考试成绩*15%+期末考试成绩*70% 三.最终成绩及人数 最终成绩 人数 A

基于数据仓库星形模式的广东省高速公路一张网资金结算情况分析系统

基于数据仓库星形模式的广东省高速公路一张网资金结算情况分析系统 马根峰                               (广东联合电子服务股份有限公司  广州 510300) 摘要    星形模式是基于关系数据库的数据仓库中的一个著名概念,由于星形连接模式的设计思想能够满足人们从不同观察角度(维)分析数据的需求,所以在基于关系数据库的数据仓库的设计中广泛地使用了星形模式.本文主要介绍<广东省高速公路一张网资金结算情况分析系统>中的数据仓库技术. 关键词    数据仓库:星形模式:维

android内核剖析系列---JNI调用机制分析

为什么需要JNI? android这个庞大的系统从下到上主要由linux内核,C/C++库,java应用程序框架,java应用程序组成.这就涉及到一个问题,C/C++库如何与java应用有交集,或者说能相互调用,要解决这个问题,就需要JNI登场了. JNI调用机制分析 JNI--java native interface,翻译成中文是java本地接口,所谓的"本地"是指C/C++库一层的C/C++语言(以下统称C).

思达BI软件StyleIntelligence实例教程—食品平均价格变动情况分析

教程视频:http://v.youku.com/v_show/id_XMTI4MzYxNDY0OA==.html 本文使用思达商业智能平台Style Intelligence对50个城市主要食品平均价格变动情况进行分析. 新建工作表,导入数据.本例数据为14年5月上旬50个城市主要食品平均价格变动情况. 主要食品平均价格分析.拖拽图标控件到编辑区,绑定数据源.如图: 价格变动情况分析.拖拽图标控件到编辑区,绑定数据源.如图: 与食品平均价格环比增长率图表结合.

递归调用的分析

摘自 编程之美 编程之美的第3.8题求二叉树中节点的最大距离中,在总结的时候,作者讲了一个分析递归问题的体会: 1.首先弄清楚递归的顺序. 在递归的实现中,往往需要假设后续的调用已经完成,在此基础之上,才实现递归的逻辑. 2.分析清楚递归体的逻辑然后写出来. 3.考虑清楚递归退出的边界条件.也就是说,那些地方应该写return. 递归调用的分析