![]() |
Ответ: Вопросы по XNA.
Спасибо.
Вот как раз вопрос по инициализации новых вещей. Возьмем к примеру класс Random. Почему, если в самом классе Game1 написать Random rnd; , а затем в методе Initialize() Random rnd= new Random(); то инициализация будет не полной, что ли. То есть в том же методе Update() уже нельзя будет написать rnd.Next(), будет писать что rnd null. А если написать в классе game1 random rnd=new random(), то уже и в методе update() можно использовать rnd? |
Ответ: Вопросы по XNA.
вероятно надо объявлять как Random rnd = null;
Если ругается компилятор, то строка выше это поправит, если ошибка рантаймовая, то получается, что Update вызывается раньше Initialize() PS: было бы хорошо приводить текст ошибки ;) |
Ответ: Вопросы по XNA.
а зачем тебе глобальная ссылка на объект рандом если ты его создаешь все равно для каждого случая отдельно?
|
Ответ: Вопросы по XNA.
Если я его для каждого случая отдельно создавать буду, какой же это рандом. Он одно и то же число выдавать будет.
|
Ответ: Вопросы по XNA.
Для разных чисел надо задавать разный сид.
|
Ответ: Вопросы по XNA.
Цитата:
пили тогда сразу Random rnd = new Random() глобально. Но, когда ты создаешь новый объект Random, он и так сбивается. Можешь вручную сбивать на time*1000. |
Ответ: Вопросы по XNA.
Я не создаю для каждого случая отдельно. Создаю глобально. Мне не выгодно заново создавать, так как придется уж слишком много раз это делать:)
|
Ответ: Вопросы по XNA.
Рандом можно инициализировать примерно так:
PHP код:
|
Ответ: Вопросы по XNA.
А если просто New Random()? Разве там автоматически сид не выставляется на текущее время?
|
Ответ: Вопросы по XNA.
Если два раза подряд создать рандом, там будут одинаковые сиды, вот можно посмотреть пример с результатами:
http://msdn.microsoft.com/ru-ru/library/ctssatww.aspx (третий по счету) Но да, он инициализируется текущим временем, если требуется точное не совпадение, лучше задавать вручную. |
Ответ: Вопросы по XNA.
Ну ладно, с этим пока что всё нормально. Однако опять появился вопрос. Зачем использовать const? Это как-то память экономит, или просто для того, чтобы случайно не изменить?
|
Ответ: Вопросы по XNA.
просто конструктор по умолчанию для рандома сбивает рандом по милисекундам. и поэтому если в одну и туже милисекунду создать, будут одинаковые числа. А если инициализировать тысячными милисекунды, то все норм в принципе =)
Цитата:
а rnd = new Random() в функциях типа Update пишешь. |
Ответ: Вопросы по XNA.
Существует ли команда для сдвига одномерного массива?
К примеру, есть массив {1,2,2,2,0,1}, а мне нужно получить {1,2,2,2,1}. Или всё же нужно делать ручками? |
Ответ: Вопросы по XNA.
Проще всего скопировать данные в новый массив, в любом случае надо новый размер массива. Так что Array.Copy
|
Ответ: Вопросы по XNA.
Можете подсказать, как изменить размер текстуры? Не скейл, а именно удалить из нее пиксель.
|
Часовой пояс GMT +4, время: 09:07. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot