Помогите перевести код из C# в JS

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Помогите перевести код из C# в JS

Сообщение Black_hole 25 апр 2011, 18:35

Я нашёл хороший урок по созданию машины, но к моему сожалению автор писал скрипты на шарпе :(
Короче я начал переводить скрипт на (js), так как решил писать на нём. Вначале всё получалось, к моему удивлению :), но на следующей функции я застрал!
Вот ссылка на тот урок: http://habrahabr.ru/blogs/gdev/115557/
Вот скрипт на шарпе:
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class CarController : MonoBehaviour {
       
        public WheelCollider[] WColForward;
        public WheelCollider[] WColBack;
       
        public Transform[] wheelsF; //1
        public Transform[] wheelsB; //1
       
        public float wheelOffset = 0.1f; //2
        public float wheelRadius = 0.13f; //2
       
        public float maxSteer = 30;
        public float maxAccel = 25;
        public float maxBrake = 50;
       
        public Transform COM;
       
        public class WheelData{ //3
                public Transform wheelTransform; //4
                public WheelCollider col; //5
                public Vector3 wheelStartPos; //6
                public float rotation = 0.0f;  //7
        }
       
        protected WheelData[] wheels; //8
       
        // Use this for initialization
       
               
        void Start () {
                rigidbody.centerOfMass = COM.localPosition;
               
                wheels = new WheelData[WColForward.Length+WColBack.Length]; //8
               
                for (int i = 0; i<WColForward.Length; i++){ //9
                        wheels[i] = SetupWheels(wheelsF[i],WColForward[i]); //9
                }
               
                for (int i = 0; i<WColBack.Length; i++){ //9
                        wheels[i+WColForward.Length] = SetupWheels(wheelsB[i],WColBack[i]); //9
                }
               
        }
       
       
        private WheelData SetupWheels(Transform wheel, WheelCollider col){ //10
                WheelData result = new WheelData();
               
                result.wheelTransform = wheel; //10
                result.col = col; //10
                result.wheelStartPos = wheel.transform.localPosition; //10
               
                return result; //10
               
        }
       
        void FixedUpdate () {
               
                float accel = 0;
                float steer = 0;
                               
                accel = Input.GetAxis("Vertical");
                steer = Input.GetAxis("Horizontal");           
               
                CarMove(accel,steer);
                UpdateWheels(); //11
        }
       
       
        private void UpdateWheels(){ //11
                float delta = Time.fixedDeltaTime; //12
               
               
                foreach (WheelData w in wheels){ //13
                        WheelHit hit; //14
                                                               
                        Vector3 lp = w.wheelTransform.localPosition; //15
                        if(w.col.GetGroundHit(out hit)){ //16
                                lp.y -= Vector3.Dot(w.wheelTransform.position - hit.point, transform.up) - wheelRadius; //17
                        }else{ //18
                               
                                lp.y = w.wheelStartPos.y - wheelOffset; //18
                        }
                        w.wheelTransform.localPosition = lp; //19
                       
                       
                        w.rotation = Mathf.Repeat(w.rotation + delta * w.col.rpm * 360.0f / 60.0f, 360.0f); //20
                        w.wheelTransform.localRotation = Quaternion.Euler(w.rotation, w.col.steerAngle, 90.0f); //21
                }      
               
        }
       
        private void CarMove(float accel,float steer){
               
                foreach(WheelCollider col in WColForward){
                        col.steerAngle = steer*maxSteer;
                }
               
                if(accel == 0){
                        foreach(WheelCollider col in WColBack){
                                col.brakeTorque = maxBrake;
                        }      
                       
                }else{
                                                               
                        foreach(WheelCollider col in WColBack){
                                col.brakeTorque = 0;
                                col.motorTorque = accel*maxAccel;
                        }      
                       
                }
               
                               
               
        }
       
}


Вот я начал переводить:
Синтаксис:
Используется javascript
var WheelFrontColl : WheelCollider[];
var WheelBackColl : WheelCollider[];

var MaxSteer = 30;
var MaxAccel = 25;
var MaxBrake = 25;

function FixedUpdate ()
{
        var accel = 0;
        var steer = 0;
       
        accel = Input.GetAxis("Vertical");
        steer = Input.GetAxis("Horizontal");
}

function CarMove(accel,steer)
{
        for (WheelCollider col in WheelFrontColl);
        {
                col.steerAngle = steer * MaxSteer;
        }
       
        if (accel == 0)
        {
                for (WheelCollider col in WheelBackColl)
                {
                        col.BrakeTorque = MaxBrake;
                }
        }      
        else
        {
                for (WheelCollider col in WheelBackColl)
                {
                        col.BrakeTorque = 0;
                        col.MotorTorque = accel * MaxAccel;
                }
        }
}      


После сохранения этого скрипта, Unity пишет Assets/CarScript.js(19,28): BCE0044: expecting ;, found 'col'. Если ставлю в конце той строки ;, то ничего не меняется. И, кстати, что такое col я не понял.
P.S. Сразу говорю,я в (js) новичок и в (c#) полный ноль. Заранее спасибо!
Black_hole
UNец
 
Сообщения: 24
Зарегистрирован: 18 апр 2011, 09:28

Re: Помогите перевести код из C# в JS

Сообщение Paul Siberdt 25 апр 2011, 18:38

Плять.. ну так надо col объявить, как это делают в JS:
var col : WheelCollider
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Помогите перевести код из C# в JS

Сообщение Black_hole 25 апр 2011, 18:39

Спасибо! Буду пробовать :)
Black_hole
UNец
 
Сообщения: 24
Зарегистрирован: 18 апр 2011, 09:28

Re: Помогите перевести код из C# в JS

Сообщение Zaicheg 25 апр 2011, 22:12

Тема перенесан
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 17