赛车游戏的弯道以及漂移算法

afterruins 2008-12-29 03:29:53
这两天实训要做个赛车游戏!现在在弯道上犯了难,完全找不到思路。最想不通的就是弯道碰撞检测应该怎么做?flash中有hittest。

但我这个是c#+directx,希望有达人能提供点思路。还有我想做出点漂移的效果。希望大家多多帮忙,最好有代码,我有点白。。。。-_-|
...全文
783 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ayann204 2011-03-14
  • 打赏
  • 举报
回复
看看!!!!!!!!!!
ayann204 2011-03-14
  • 打赏
  • 举报
回复
看看!!!!!!!!!
afterruins 2009-01-08
  • 打赏
  • 举报
回复
非常感谢 我很喜欢这本书!
zzwu 2009-01-07
  • 打赏
  • 举报
回复
该书的附带光盘中有一款赛车游戏,原价要29美元,
能进行全自动演示,车子在不平的路上会上下振动,
车尾会喷气,经过的路上时会扬起灰尘,非常精彩,
而我人工驾驶恰完全不行!
zzwu 2009-01-07
  • 打赏
  • 举报
回复
抱歉,第一段不太通,改一下:

在《游戏编程中的人工智能技术》一书的第9章“有监督的训练方法”中
曾提到这个问题,它介绍如何训练一个神经网络来控制赛车的无人驾驶。
我把其中的一段话复制到这里,不知对你是否有启发?
zzwu 2009-01-07
  • 打赏
  • 举报
回复
在《游戏编程中的人工智能技术》一书的第9章“有监督的训练方法”中
曾提到这个问题,它介绍训练一个用人工神经网络来控制赛车的无人驾驶。
我把其中的一段话复制到这里,不知对你是否有启发?

9.4 监督学习的应用
前面提到,当已有一系列输入模式需要映射到匹配的输出模式时,
有监视的训练方法就能派得上用场。因此,我们可以把这种技术用到任
何地方去,包括弹跳类游戏、打杀类游戏,直到赛车类游戏,等等。
作为一个例子,我们假设需要制作一款赛车类游戏。你希望用一个
神经网络来驾驶一辆赛车,它能和你们公司所雇佣的、那位成天在谈论
星际迷航(Star Trek)的彩点车检验员驾驶你的汽车一样熟练。你有了
驾驶赛车的伙计,你就可以在他沿着赛程冒着强风飞速奔驰的过程中,
把相关数据纪录下来,创建一个训练集。对于每一帧结构(或每N帧结构),
你为训练集输入记录的信息大体为:

到左边界线(left curb)的距离;
到右边界线 (right curb) 的距离;
车子当前的速度;
当前轨道段(track segment)的曲率(curvature);
下一轨道段的曲率;
到最优驾驶线(best drive line)的向量。

而为输出训练集你要记录司机的响应:

向左或右驾驶的总量(amount of steering left or right);
油门总量(amount of throttle);
制动总量(amount of brake);
齿轮换挡(gear change)情况;

经历了几圈、或经历了几个不同路程段之后,你就积聚了足够多的数据可
用来训练神经网络,使它也能出现相似的行为。当给定足够的数据和进行
正确的训练,神经网络应该能够归纳推广它所学到的本领,从而能自动行
驶在以前从未到过的跑道上。怎么样?挺酷吧?
afterruins 2009-01-07
  • 打赏
  • 举报
回复
找了很多这方面的资料了!弯道还是无法实现!发现了个开源的2d赛车游戏 F1SPIRIT 做的太华丽了,造成我看代码也比较吃力!我把他编译成VC程序了,csdn上就有。可惜没有地图信息这方面的源码 他们并没有给出只是 给的地图文件
eastwoody 2009-01-06
  • 打赏
  • 举报
回复
既然是只有X坐标,那么可以把汽车简化为一个点(留好左右边界),利用近似圆-线的碰撞规律处理碰撞。
另外,直道上也有碰撞啊,也可以设置一个“汽车偏转角”来确定当前汽车碰撞的切入角。
赛道地图文件应该会比较简单,就是(赛道总段数,第一段长度,第一段角度,第二段长度,……)
以前我在文曲星上做过一个(有点低级了)
张赐 2008-12-30
  • 打赏
  • 举报
回复
弯道的话,可以在之前设置一个标志,汽车一但过了这个标志就表示进入弯道

和现实生活中的标志有点类似的
afterruins 2008-12-30
  • 打赏
  • 举报
回复
楼上的前辈说的很好,但是太过理论,我无法运用到我的程序中,我的只是一个很小的2D赛车游戏,现在我做出了直到-_-| 限制就是x 坐标的极左和极右

但如果加入弯道的话,首先的问题就是如何知道现在的道路状态-是直到还是弯道?我反编译了一些经典的flash赛车游戏!发现普遍用的是HITTEST函数,

这种方法很简单,但是我用C#+DIRECTX很难模拟出这中效果! 还请大家帮帮忙!












noenoughmemory 2008-12-29
  • 打赏
  • 举报
回复
ding
张赐 2008-12-29
  • 打赏
  • 举报
回复
我也没有做过关于赛车类的东西,

不过在弯道的碰撞检测和一般的碰撞检测是一样的,没有什么独特的地方。

关于漂移的话,更多的应该是数学和物理上的计算,把整个汽车看成是个刚体,那么漂移的时候可以看成是一个刚体运动,根据汽车的速度,加速度,挚动力,摩擦力等等来计算在弯道的时候汽车每秒的坐标,朝向等等,根据物理计算出来的话,效果自然就是漂移了。
引力场变动源 2008-12-29
  • 打赏
  • 举报
回复
没有做过赛车游戏……
赛道碰撞检测的时候,弯道直道应该一样的计算才对,一般可以简化为包围盒与平面的碰撞。
漂移……啥叫漂移?我没玩过赛车游戏……

8,325

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧