Как создать случайный # между -10 и 10 и добавить это значение к каждому объекту в позиции списка Vector2 - PullRequest
1 голос
/ 20 февраля 2012

Я делаю программу на C #, которая создает список объектов дерева с графикой, которая отображает их все в виде сетки.После их создания у меня будет место, куда каждое отдельное дерево перемещается на произвольное расстояние между -10 и 10 по осям x и y;мы надеемся, что это создаст вид рассеянных деревьев.Я все еще новичок в C #.

Мои основные проблемы:

Я не уверен, что возможно сгенерировать число в диапазоне от -10и 10 с моим методом

int randX = RandomClass.Next(-10, 10);

Когда я "косо" (косо - это свободный термин, который я использовал для обозначения "двигаться" в этом контексте, ничего не буквально) позиция каждого дереваПохоже, что я применяю сохраненную величину вертикального и горизонтального движения ко многим деревьям, а не к одному отдельному дереву.

public void SkewTrees() 
        {
            if (skewed == false)
            {
                Vector2 emptyVector = Vector2.Zero;

                int randX = RandomClass.Next(0, 100);
                int randY = RandomClass.Next(0, 100);
                Vector2 randSkew = new Vector2(randX , randY);

                position=new Vector2(position.X+randSkew.X, position.Y+randSkew.Y);
                skewed = true;
            }
        }

Полный код со ссылкой на фактический вывод: http://pastebin.com/zZ246t7U

Ответы [ 2 ]

1 голос
/ 20 февраля 2012

Для случайного числа от -10 до 10 попробуйте что-нибудь следующим образом:

int rand = RandomClass.Next(1, 10) - RandomClass.Next(1, 10);

Или

 int rand = RandomClass.Next(0, 20) - 10;

Или

int rand = RandomClass.Next(-10, 10);

Работает тоже.1010 *

0 голосов
/ 20 февраля 2012

Случайный класс производит детерминированную и воспроизводимую последовательность чисел. Он берет свое семя из Environment.TickCount, который изменяется примерно каждые 15 мс. Следовательно, каждый случайный случай, который вы строите в течение такого 15-мсекундного интервала, будет давать точно такие же числа.

Для исправления вашего кода вам необходимо убедиться, что вы используете хорошее начальное значение или повторно используете один класс Random.

Я рекомендую вам создать статическую переменную с одним экземпляром Random. Вся ваша программа может повторно использовать эту переменную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...