Aİ Script (araç yapay zekası) kodu [js]

28 Ocak 2015
95
0
Arkadaşlar Merhaba

yarış oyunu yapmak için waypointimizi hazırladık ve haritamızı çizdik şimdi aracın yeşil topları izlemesi için kodumuzu ekleyeceğiz

waypoint konusuna gitmek için tıklayın


şimdi ben sizin zamanınızı boşa harcamıyım direk konuya geçiyim :)


elinizdeki araç modelini terraine bırakın ve her tekere bir wheel collider ekleyin

bunu yapmak için boş bir obje oluşturun ve wheel collider componenti ekleyin yuvarlak bir çizgi gelcek yuvarlak çizgileri tekerlere göre ayarlayıp üzerine koyun ve bu colliderleri hierarchy bölümünden araca atın araçta sabit kalsın

ve alttaki kodu .js olcak şekilde kaydetip araca atın ve colliderleri sağ bölümden atın


Colliderleri araca sırasıyla şöyle atın :

wheelFl ye Ön Sol collideri ekleyin
wheelFR ye Ön Sağ collideri ekleyin

wheelRl ye Arka Sol collideri ekleyin
wheelRR ye Arka Sağ collideri ekleyin



Kod:
Kod:
var centerOfMass : Vector3;  
var path : Array;  
var pathGroup : Transform;  
var maxSteer : float = 15.0;  
var wheelFL : WheelCollider;   
var wheelFR : WheelCollider;  
var wheelRL : WheelCollider;   
var wheelRR : WheelCollider;  
var currentPathObj : int;  
var distFromPath : float = 20;  
var maxTorque : float = 50;  
var currentSpeed : float;  
var topSpeed : float = 150;  
var decellarationSpeed : float = 10;  
  
  
function Start () {  
rigidbody.centerOfMass = centerOfMass;  
GetPath();  
}  
  
function GetPath (){  
var path_objs : Array = pathGroup.GetComponentsInChildren(Transform);  
path = new Array();  
  
for (var path_obj : Transform in path_objs){  
 if (path_obj != pathGroup)  
  path [path.length] = path_obj;  
}  
}  
  
  
function Update () {  
GetSteer();  
Move();  
}  
  
function GetSteer(){  
var steerVector : Vector3 = transform.InverseTransformPoint(Vector3(path[currentPathObj].position.x,transform.position.y,path[currentPathObj].position.z));  
var newSteer : float = maxSteer * (steerVector.x / steerVector.magnitude);  
wheelFL.steerAngle = newSteer;  
wheelFR.steerAngle = newSteer;  
  
if (steerVector.magnitude <= distFromPath){  
currentPathObj++;  
if (currentPathObj >= path.length)  
currentPathObj = 0;  
}  
  
}  
  
function Move (){  
currentSpeed = 2*(22/7)*wheelRL.radius*wheelRL.rpm * 60 / 1000;  
currentSpeed = Mathf.Round (currentSpeed);  
if (currentSpeed <= topSpeed){  
wheelRL.motorTorque = maxTorque;  
wheelRR.motorTorque = maxTorque;  
wheelRL.brakeTorque = 0;  
wheelRR.brakeTorque = 0;  
}  
else {  
wheelRL.motorTorque = 0;  
wheelRR.motorTorque = 0;  
wheelRL.brakeTorque = decellarationSpeed;  
wheelRR.brakeTorque = decellarationSpeed;  
}  
}


Not: burdaki yazıların hepsini ben yazdım ve tamamen bana aittir alıntı yapılmadan paylaşılması yasaktır


BİR TEŞEKKÜRÜ ÇOK GÖRMEYELİM EMEĞE SAYGI !
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.