Outerra Tech Demo download. Help with graphics driver issues
//vehicle script file//see http://xtrac.outerra.com/index.fcgi/wiki/vehicle for example and documentationvar turret,mantlet,barrel;const MaxTurretXSpeed = 10; //deg/sconst MaxTurretYSpeed = 20; //deg/sconst MaxTurretXAccel = 120;//deg/s^2const MaxTurretYAccel = 160;//deg/s^2const MinTurretAngle = -8; //in deg gun depressionconst TurretAngleSpan = 18; //in deg gun elevationconst TurningBoost = 0.4; //boost coefficient to help with turning at speedconst TurnForceCoef = 0.8; //portion of engine force for neutral turnsconst RollingFriction = 1000;//force that needs to be overcome to get wheels turningconst EF = 25000.0; //engine forceconst BF = 20000.0; //braking forceconst EFr = 0.02; //engine force reduction coef with speedconst maxkmh = 40; //top speedfunction radians(v){ return v*Math.PI/180.0;}//invoked only the first time the model is loaded, or upon reloadfunction init_chassis(){ var wheelparam = { radius: 0.50, width: 0.20, suspension_max: 0.25, suspension_min: -0.25, //ride height suspension_stiffness: 3.9, damping_compression: 0.5, damping_relaxation: 0.4, slip: 4, slip_lateral_coef: 0.3, roll_influence: 0.1 //rotation: -1 }; this.add_wheel('wheel1', wheelparam); this.add_wheel('wheel2', wheelparam); this.add_wheel('wheel3', wheelparam); this.add_wheel('wheel4', wheelparam); this.add_wheel('wheel5', wheelparam); this.add_wheel('wheel6', wheelparam); this.add_wheel('wheel7', wheelparam); this.add_wheel('wheel8', wheelparam); this.add_wheel('wheel9', wheelparam); this.add_wheel('wheel10', wheelparam); this.add_wheel('wheel11', wheelparam); this.add_wheel('wheel12', wheelparam); this.add_wheel('wheel13', wheelparam); this.add_wheel('wheel14', wheelparam); this.add_wheel('wheel15', wheelparam); this.add_wheel('wheel16', wheelparam); this.load_sound("panther_eng_starter.ogg"); this.load_sound("panther_trans_01.ogg"); this.add_sound_emitter("turret"); var geom = this.get_geomob(0); turret = geom.get_joint('turret'); mantlet = geom.get_joint('Mantlet'); barrel = geom.get_joint('barrel'); return {mass:11500, com:{z:0.5,y:0.5}, steering:2.0, steering_ecf:60, centering: 100, centering_ecf:20, turretx_speed: radians(MaxTurretXSpeed), turrety_speed: MaxTurretYSpeed/TurretAngleSpan, turretx_accel: radians(MaxTurretXAccel), turrety_accel: MaxTurretYAccel/TurretAngleSpan, };}//invoked for each new instance of the vehiclefunction init_vehicle(){ this.set_fps_camera_pos({x:-0.5,y:0.00,z:3.40}); this.snd = this.sound(); this.geom = this.get_geomob(0); this.turx = this.tury = 0.0;}//invoked when engine starts or stopsfunction engine(start){ if(start){ this.snd.play(0, 0, false, false); this.snd.play(0, 1, true, true); } else this.snd.stop(0); this.started = start;}//handle extra actionsfunction action(k,v,dt){ switch(k){ case ATurretX: this.geom.rotate_joint_orig(turret, v, {x:0,y:0,z:-1}); break; case ATurretY: this.geom.rotate_joint_orig(mantlet, radians(TurretAngleSpan*0.5*(1+v)+MinTurretAngle), {x:1,y:0,z:0}); break; }}const forceloss = 1.0 / (EFr*maxkmh + 1);//invoked each frame to handle the inputs and animate the modelfunction update_frame(dt, engine, brake, steering){ var kmh = this.max_tire_speed()*3.6; //reduce engine force with speed (hack) var esign = engine<0 ? -1 : 1; engine = EF*Math.abs(engine); var force = (esign>0) == (kmh>=0) ? 1.0/(EFr*Math.abs(kmh) + 1) : 1.0; force -= forceloss; force = esign*Math.max(0.0, Math.min(force, 1.0)); engine *= force; this.snd.set_pitch(0, 1+0.01*kmh); //if(steering!=0) engine *= 1.5; //var el = steering>0 ? 0 : engine; //var er = steering<0 ? 0 : engine; var df = EF*TurnForceCoef*force; var el=engine,er=engine; var spd = 1 + TurningBoost*this.speed(); if(this.started){ if(steering>0){ el-=spd*df; er+=df; } else if(steering<0){ er-=spd*df; el+=df; } } this.wheel_force(-2, el); this.wheel_force(-3, er); brake *= BF; brake += RollingFriction; this.wheel_brake(-1, brake); //this.log_inf("L:"+el+" R:"+er+" B:"+brake+" SPD:"+kmh); //this.geom.rotate_joint_orig(turret, this.turx, {x:0,y:0,z:-1}); //this.geom.rotate_joint_orig(mantlet, this.tury, {x:1,y:0,z:0}); this.animate_wheels();}
I will kill anyone you want for that Tiger 1 with a movable turret..{anyone}