gpt4 book ai didi

java - 一些碰撞检测建议

转载 作者:行者123 更新时间:2023-12-01 13:45:24 25 4
gpt4 key购买 nike

我正在开发一款基于图 block 的平台游戏,该游戏当前使用边界框和重叠检查来进行碰撞检测。我发现这种方法不灵活。我希望根据图 block 的类型有不同的碰撞响应。

我的新想法是使用围绕我的玩家对象的 9 个点,并检查其中哪些点位于图 block 的边界内。每个角、每侧各一个点,中心各一个点。每种图 block 类型将使用一组不同的规则来进行碰撞处理。

但是,每种图 block 类型都必须使用一组复杂的条件语句进行碰撞测试 - 也许过于复杂。有什么指导吗?

最佳答案

这听起来像是策略模式的一个例子:http://en.wikipedia.org/wiki/Strategy_pattern

定义一个“进程碰撞”接口(interface),然后为不同的碰撞规则定义该接口(interface)的多个实现。

对于每个图 block ,您只需setCollisionStrategy(MyRuleHere)

要检查碰撞,您只需识别图 block 即可

if (tile.getCollisionStrategy.collide(player)) {
// Collision
}

碰撞方法甚至可以返回不同类型碰撞的枚举 - 或者返回更复杂的对象 - 甚至处理碰撞本身并在播放器中进行更改。正确的方法取决于您的整体架构。

关于java - 一些碰撞检测建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20404693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com