制作简单汽车游戏

unity3d论坛教程

1.现实中的车不是那么好漂移的,漂移需要轮胎与地面的低摩擦和良好的悬挂系统配合。

2.游戏里完全模拟力学引擎也是不现实的,因为漂移在现实中需要高超的技能,你不能指望玩家能有专业的技能水平去操控或者改装你的车吧,万一拐弯忘拉手刹,或者拉太久。而且完全的物理模拟,不仅费人脑去创意工业设计,也费电脑资源去运算。再说了,开发的不是微软模拟飞行这样的专业级模拟游戏。

3.在无数次失败的代码后发现,高速移动的赛车3d模型忽然间的转弯是会侧翻的,这个不是游戏引擎问题,我查了很多的汽车侧翻事故,这个东西是客观存在的,也就是说能漂移的汽车,需要有稳定精确的汽车架构,很低的底盘(我试过这个,但是在u3d里不管用,重心和底盘都快贴到地上了,依然高速运动下转弯会侧翻),专业级的悬挂系统(这很重要,这也是游戏里模拟不出来的),每个部件精确的调试,还有一大堆的汽车辅助系统(这个后面说)。

4.侧翻不可避免,但游戏里不允许玩家稍微操控失误就侧翻,这会大大影响游戏性。我试过用加大重力的方法来防止侧翻,但是加大重力也就加大了摩擦力,使用物理引擎去模拟漂移就更加的困难。

5.自动稳定杆系统(ASBS)能有效防止侧翻,但是为了一款游戏有必要这么麻烦么?

经过几天的研究,我研究出几套漂移的解决方案(我开发采用的是最后一种,重点介绍最后一种)

方案一:整个赛车干脆都用translate做坐标移动,这个就是无视wheelcollider物理引擎的做法,新手适用,简单方便,但之后的开发上会有很多问题需要解决(如果你想解决这些问题的话)。

方案二:用wheelcollider的悬挂设置和摩擦力设置做。这个应该是最标准的,但是我一直没研究出来他的Forward Friction和Sideways Friction怎么设置,并且这些设置有什么效果(官方的赛车例子根本不会漂移)。当然这个做法的移动是使用wheelcollider的motorTorque做移动的。

方案三:轮子一样还用wheelCollider,但汽车移动的动力不使用轮子的motorTorque,而是在汽车的rigidbody上施加Force来传动(官方的例子是这样的,这也是令我匪夷所思的,只能说明官方也知道他的wheelcollider引擎还有问题)。用Force有个好处,你可以在拐弯的时候做受力分析,计算出最后侧滑的合力方向和大小,实时计算赛车动力方向和侧滑判定。这个唯一的问题就是汽车稳定性问题,在高速运动的汽车中很难保证他的稳定,自己开发ASBS系统也不太可能吧。

方案四:这个是我的方法,用wheelcollider和translate混合处理。首先一点重要的,所有汽车移动,转弯都必须使用wheelcollider提供的函数(至于为什么参看我关于wheelcollider的日志),用wheelcollider方法可以保证车子正常运动,但不会漂移(要么过快车速侧翻,要么就直接转弯过去了),判断漂移只需要判断玩家点击手刹的时候,计算车子拉手刹一瞬间的转弯角和惯性方向,使用transform.translate来实现甩尾,有效规避掉不必要的摩擦判断和物理判断。

由于手刹后前后轮抱死产生的摩擦和离心力的作用改变了整辆车合力的方向,所以导致汽车运动方向的改变,产生漂移。那我们假设他拉得不是手刹,而只是普通的制动闸,只有制动减速效果,所以先用wheelcollider做正常的拐弯减速运动,然后单独写一个traslate按预计漂移方向做物体移动,并判断当手刹按钮按下后再进行强行物体移动加以模拟减速移动来产生漂移的摩擦衰减效果(transform的坐标移动是不受物理引擎影响的,所以写起来就很简单。)

这样最后综合起来的效果就能产生漂移效果的最初框架了。玩家操作简单,开发者开发也简单,何乐而不为。最后剩下的工作就是要去慢慢调试一些数据来改变用户体验了。

时间: 2024-08-25 11:53:48

制作简单汽车游戏的相关文章

怎样用HTML5 Canvas制作一个简单的游戏

为了让大家清楚HTML5制作游戏的简单流程,所以先了制作一个非常简单的游戏,来看一看这个过程.   游戏非常简单,无非就是英雄抓住怪物就得分,然后游戏重新开始,怪物出现在地图的随机位置,英雄初始化在地图的中间.点击[这里](../simple_canvas_game-master/index.html "simple_canvas_game"),我们可以直接先玩玩这个游戏 ![simple_game](Figure/1_simple_game.png) ## 1. 创建一个Canvas

用Phaser来制作一个html5游戏——flappy bird (一)

Phaser是一个简单易用且功能强大的html5游戏框架,利用它可以很轻松的开发出一个html5游戏.在这篇文章中我就教大家如何用Phaser来制作一个前段时间很火爆的游戏:Flappy Bird,希望大家看后也能做出自己的html5游戏.大家可以先点击这里来试玩一下我已经做好的这个游戏,感受一下Phaser的游戏效果,游戏的完整代码我已经放到github上了.支持的浏览器:IE9+.Firefox.Chrome.Opera.Safari以及移动端的能支持html5的浏览器,推荐使用谷歌浏览器,

【教程】原创:历上最简单的游戏编程入门教程(基于cocos2d-js)

前言: 大家好.我是一个游戏开发者.曾就职于cocos2d-x这个手机游戏引擎的开发的公司. 在这边我准备了一个最简单的教程,想告诉大家制作一个游戏有多简单. 回忆起当年刚刚步入游戏这个行业,我也抱着非常多的疑问. 所以如果大家对游戏有兴趣的朋友,可以在下面留言. 这个教程我会讲的非常通俗易懂.争取几句话之内就让你看到一个效果. 另外教程里面有丰富的图文讲解.我保证你学完之后掌握了做游戏的真髓. 你完全可以马上开始做自己的游戏.并且能够让你的游戏在网页上,ios,android 还有pc平台上跑

Unity3D游戏开发从零单排(四) - 制作一个iOS游戏

提要 此篇是一个国外教程的翻译,虽然有点老,但是适合新手入门.自己去写代码,debug,布置场景,可以收获到很多.游戏邦上已经有前面两部分的译文,这里翻译的是游戏的最后一个部分. 欢迎回来 在第一篇中,我们学会了怎么在Unity中搭建游戏的场景,并且设置模型的物理属性. 在第二篇中,我们学会了怎么在unity中使用脚本,并且创建了大部分的游戏逻辑,包括投球和得分! 在这最后一节中,我们将会为用户创建一个菜单系统,并且和GameController进行交互,我们开始吧. 在设备上测试 到目前为止,

制作腾讯游戏选择

到我们玩腾讯游戏的时候,会有很多选择,比如选择什么区,什么人物等.下面简单制作腾讯游戏选择. <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus®"> <meta name="Author"

一、Unity3D 5.0.1-示例项目“汽车游戏”的展示及开发准备

学习之前首先给大家提供一下Unity3D 5.0.1的各操作系统的安装文件及示例项目等下载地址: Win版: 32位: http://netstorage.unity3d.com/unity/5a2e8fe35a68/Windows32EditorInstaller/UnitySetup32.exe 链接:http://pan.baidu.com/s/1mgBpsLi 密码:x548 64位: http://netstorage.unity3d.com/unity/5a2e8fe35a68/Wi

Love2D游戏引擎制作贪吃蛇游戏

代码地址如下:http://www.demodashi.com/demo/15051.html Love2D游戏引擎制作贪吃蛇游戏 内附有linux下的makefile,windows下的生成方法请查看: for windows 预览游戏 love2d游戏引擎重要函数 详情: love2d wiki love.load:当游戏开始时被调用且仅调用一次 love.draw:回调函数,每帧更新一次游戏画面 love.update:回调函数,每帧更新一次游戏状态 love.keypressed:回调函

使用AxureRP7.0制作经典小游戏"大家来找茬"

本案例是<网站蓝图AxureRP7.0从入门到精通视频教程>中的最后一节,适用于对Axure基础知识掌握比较熟练的同学:教程由axure原型库网站录制,转载请注明出处!相信很多刚接触Axure或者学习了一段时间但并没有深入的同学们,看到这个案例一定很惊讶,使用Axure竟然能做出如此逼真的交互效果!通过此案例也可以激发广大同学们学习Axure的热情和信心!试想一下,如果你有情侣的话,把你们珍藏的合影拿出来处理几张,做成大家来找茬的小游戏,不但锻炼了自己的技能,还能给对方一个惊喜,岂不是一举两得

JSP制作简单登陆

JSP制作简单登陆界面 运行环境 eclipse+tomcat+MySQL 不知道的可以参考Jsp运行环境--Tomcat 项目列表 这里我先把jsp文件先放在Web-INF外面访问 需要建立的几个文件在图上.jsp 还要导入MySQL的jar包mysql-5.0.5.jar,导到WEB-INF中的lib文件夹就可以不需要Bulid Path 开始编写代码: 代码演示: index.jsp就好像一般网站的首页一样感觉,将header.jsp和footer.jsp引入其中 <%@ page lan