Хобрук: Ваш путь к мастерству в программировании

Unity не примет мой поплавок (JS, 2d)

Я делаю игру типа «atari» сверху вниз, и недавно у меня возникла небольшая проблема, я использую transform.position для изменения моей координаты на экране, но с помощью GetKey перемещается слишком быстро, поэтому я попытался использовать float для замедлить прогресс и теперь он вообще не движется... вот мой код

 #pragma strict
 var xCoor = 0;
 var yCoor = 0;    


 function Start () {
 }

 function Update () {    

     if(Input.GetKey (KeyCode.D))
         xCoor += 0.5;
         transform.position = Vector2(xCoor,yCoor);
     if(Input.GetKey (KeyCode.W))
         yCoor += 0.5;
         transform.position = Vector2(xCoor,yCoor);
     if(Input.GetKey (KeyCode.A))
         xCoor += -0.5;
         transform.position = Vector2(xCoor,yCoor);
     if(Input.GetKey (KeyCode.S))
         yCoor += -0.5;
         transform.position = Vector2(xCoor,yCoor);
 }

Как вы, вероятно, можете сказать, что я новичок в Unity, поэтому, если есть лучший способ, поделитесь им! Спасибо ;)

14.04.2015

  • Вероятно, это не связано, но у вас отсутствуют фигурные скобки во всех if. Должно быть примерно так: if(Input.GetKey (KeyCode.D)) { xCoor += 0,5; transform.position = Vector2 (xCoor, yCoor); 14.04.2015
  • Вы можете сделать это в любом случае, это был быстрый код, который я собирал вместе, я понимаю, что скобки - это хорошая практика. 14.04.2015
  • @DanielBickerdike, ваш код работает, но почти случайно, лол. Поскольку у вас нет скобок, вы всегда устанавливаете transform.position (независимо от условного). 15.04.2015

Ответы:


1

Я не уверен, но я считаю, что ваш xCoor имеет тип int. Поэтому, когда вы пытаетесь добавить к нему поплавок, он не меняется.

Измените определение xCoor и yCoor на 0,0 вместо 0 и посмотрите, работает ли это.

#pragma strict
var xCoor = 0.0;
var yCoor = 0.0;   

Кроме того, как было указано в комментариях, вам действительно следует ставить фигурные скобки после операторов if, чтобы получить нежелательные результаты.

function Update () {    
    if(Input.GetKey (KeyCode.D)) {
        xCoor += 0.5;
        transform.position = Vector2(xCoor,yCoor);
    }

    if(Input.GetKey (KeyCode.W)) {
        yCoor += 0.5;
        transform.position = Vector2(xCoor,yCoor);
    }

    if(Input.GetKey (KeyCode.A)) {
        xCoor += -0.5;
        transform.position = Vector2(xCoor,yCoor);
    }

    if(Input.GetKey (KeyCode.S)) {
        yCoor += -0.5;
        transform.position = Vector2(xCoor,yCoor);
    }
}
14.04.2015
  • Большое спасибо!!!! Это сработало :) Я не знал, что вам нужно поставить 10-е, чтобы оно стало плавающим. 14.04.2015
  • @DanielBickerdike Нет проблем :-). Я добавил правку, чтобы немного помочь вам. Если это все, что вам нужно, можете ли вы отметить мой ответ как правильный? 14.04.2015
  • var xCoor: float = 0.0f; var yCoor:float = 0.0f; тоже будет работать. Инициализируйте переменные как с плавающей запятой для начала, если хотите. 15.04.2015
  • var xCoor: float = 0 сам по себе не работает. Или вам нужно удвоить объявление его поплавком? 23.04.2015
  • Новые материалы

    Решения DBA Metrix
    DBA Metrix Solutions предоставляет удаленного администратора базы данных (DBA), который несет ответственность за внедрение, обслуживание, настройку, восстановление базы данных, а также другие..

    Начало работы с Блум
    Обзор и Codelab для генерации текста с помощью Bloom Оглавление Что такое Блум? Некоторые предостережения Настройка среды Скачивание предварительно обученного токенизатора и модели..

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

    Как построить любой стол
    Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...